接口说明

本文详细介绍了移动应用进行安全加固的开放接口。

获取上传文件 token

请求 - GetFileTokenForUploadToMsaRequest

参数名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

onexFlag

Boolean

固定传值为 true

返回值 - GetFileTokenForUploadToMsaResponse

{
    "resultContent":{
        "content":{
            "accessid":"LTAI****************",
            "dir":"mds/tempFileForOnex/ONEXE9B092D/test/PUQYHL/8b574cb7-3596-403f-a0e9-208660fc2081/",
            "expire":"1584327372",
            "host":"https://mcube-test.oss-cn-hangzhou.aliyuncs.com",
            "policy":"QwM2YtYTBlOS0yMDg2NjBmYzIwODEvIl1dfQ==",
            "signature":"kisfP5YhbPtmES8+w="
        },
        "resultMsg":"",
        "success":true
    },
    "requestId":"8BAA3288-662E-422C-9960-2EEBFC08369F",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

ResultContent.Content

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

通知 MSA 开始处理已经上传到 OSS 的应用

请求 - UploadUserAppToMsaRequest

参数名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

fileUrl

String

文件上传后的地址。

useYShield

Boolean

若使用 Android 专业版、iOS 安装包加固或鸿蒙应用加固,则设置为 true

返回值 - UploadUserAppToMsaResponse

{
    "resultContent":{
        "data":{ 
            "id": 12345,
            "enhanceTaskId": 12345,
            "progress": 10,
            "status": 0
        },
        "resultMsg":"",
        "success":true
    },
    "requestId":"637D5BE0-0111-4C53-BCEE-473CFFA0DBAD",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

resultContent

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

data.id

Integer

上传任务的 ID,如果加固没有完成需要轮询检查。

data.enhanceTaskId

Integer

上传完成之后,会返回一个加固任务 ID,利用这个 ID 启动加固任务。

data.progress

Integer

加固的进度,范围 0 - 100。

data.status

Integer

上传状态。

  • -1:失败

  • 0 :处理中

  • 1 :上传成功

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

查询处理上传应用状态

请求 - GetUserAppUploadProcessInMsaRequest

参数名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

id

Long

上传任务 ID。

返回值 - GetUserAppUploadProcessInMsaResponse

{
    "resultContent":{
        "data":{ 
            "id": 12345,
            "enhanceTaskId": 12345,
            "progress": 10,
            "status": 0
        },
        "resultMsg":"",
        "success":true
    },
    "requestId":"637D5BE0-0111-4C53-BCEE-473CFFA0DBAD",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

resultContent

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

data.id

String

上传任务的 ID,如果加固没有完成需要轮询检查。

data.enhanceTaskId

String

上传完成之后,会返回一个加固任务 ID,利用这个 ID 启动加固任务。

data.status

Integer

上传状态。

  • -1 :失败

  • 0 :处理中

  • 1 :上传成功

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

启动加固任务

请求 - StartUserAppAsyncEnhanceInMsaRequest

Android

标准版

名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

id

Long

加固任务 ID。

taskType

String

任务类型,有 shellenhance_shell 两种,shell 是加壳,enhance_shell 搭配 Java2C 使用。

useAShield

boolean

true 为启动新加固工具链加固任务。不传或者传 false 为启动老加固工具链加固任务。

classes

String

设置需要 Java2C 加固的核心类,应当只添加关键核心类,使用英文逗号(,)隔开,如 com.a.a,com.b.b,如果设置了这个值,那么 taskType 需要为 enhance_shell,个别类不适配可能会导致加固失败。

totalSwitch

boolean

总开关,设置为 true,下面的开关才生效。

javaHook

Integer

防 Java Hook 能力,0 为 KillSelf,1 为 Warning。

memoryDump

Integer

防 memory dump 能力,0 为 KillSelf,1 为 Warning。

emulatorEnvironment

Integer

防模拟器能力,0 为 KillSelf,1 为 Warning。

nativeHook

Integer

防 Native Hook 能力,0 为 KillSelf,1 为 Warning。

dalvikDebugger

Integer

防 Java 调试能力,0 为 KillSelf,1 为 Warning。

nativeDebugger

Integer

防 Native 调试和 Root 能力,0 为 KillSelf,1 为 Warning。

专业版

名称

类型

说明

示例

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

id

Long

加固任务 ID。

useAShield

boolean

若使用 Android 专业版、iOS 安装包加固或鸿蒙应用加固,则设置为 true

newShieldConfig

JSONString

Android 专业版加固参数,以下均为加固参数。

{\"anti_dual\":1,\"antirepack\":{\"include\":\"E10ADC3949BA59ABBE56E057F20F883E\\n698D51A19D8A121CE581499D7B701668\"}}

antiHookFramework

int

防 HOOK 框架。

1 为开启,其他为关闭

antiroot

int

防 ROOT。

1 为开启,其他为关闭

antiemulator

int

防模拟器

1 为开启,其他为关闭

antidbg

int

防动态调试

1 为开启,其他为关闭

antidump

int

防内存 DUMP

1 为开启,其他为关闭

antirepack

String

防二次打包

白名单配置格式:签名 MD5(多个签名值使用 \n 分割 )

{\"include\":\"E10ADC3949BA59ABBE56E057F20F883E\n698D51A19D8A121CE581499D7B701668\"}

anti_dual

int

防多开

1 为开启,其他为关闭

iOS

安装包加固

名称

类型

说明

示例

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

id

Long

加固任务 ID。

useAShield

boolean

若使用 Android 专业版、iOS 安装包加固或鸿蒙应用加固,则设置为 true

newShieldConfig

JSONString

iOS 安装包加固参数,以下均为加固参数。

{\"-iosAntiRoot\":1,\"-iosAntiProxy\":1}

-iosAntiRoot

int

防越狱

1 为开启,其他为关闭

-iosAntiRepack

int

防二次打包

1 为开启,其他为关闭

-iosAntiProxy

int

防代理

1 为开启,其他为关闭

-iosAntiDual

int

防多开

1 为开启,其他为关闭

-iosAntiInject

int

防注入

1 为开启,其他为关闭

-iosAntiHook

int

防 HOOK

1 为开启,其他为关闭

-iosStringEnc

int

字符串加密,需要跟仅加密 ustring 同时开启。

1 为开启,其他为关闭

-ustring

int

仅加密 ustring,需要跟字符串加密同时开启。

1 为开启,其他为关闭

-iosAntiDebug

int

防动态调试

1 为开启,其他为关闭

-iosScreenShield

int

界面截录保护(防录屏、防截屏、防投屏)

1 为开启,其他为关闭

鸿蒙

名称

类型

说明

示例

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

id

Long

加固任务 ID。

useAShield

boolean

若使用 Android 专业版、iOS 安装包加固或鸿蒙应用加固,则设置为 true

newShieldConfig

JSONString

鸿蒙安装包加固参数,以下均为加固参数。

{\"obfuse\":{\"include\":\".*entryclass.*\",\"exclude\":\".*methodname.*\"},\"strencrypt\":{\"include\":\".*entry.*\",\"exclude\":\".*name.*\"}}

obfuse

String

代码混淆。

  • 白名单:用正则表达式配置需要混淆的类名和函数名,如:*entryclass.*methodname.*

  • 黑名单:用正则表达式配置不需要混淆的类名和函数名,如:*entryclass.*methodname.*

{\"obfuse\":{\"include\":\".*entryclass.*\",\"exclude\":\".*methodname.*\"}}

strencrypt

String

字符串加密。

  • 白名单:用正则表达式配置需要加密的字符串。

  • 黑名单:用正则表达式配置需要不加密的字符串。

{\"strencrypt\":{\"include\":\".*entry.*\",\"exclude\":\".*name.*\"}}

返回值 - StartUserAppAsyncEnhanceInMsaResponse

{
    "resultContent":{
        "data":{
            "afterMd5": "aaaaaaaa",
            "afterSize": 1000,
            "appCode": "ONEXxxxx",
            "appPackage": "com.example.app",
            "beforeMd5": "bbbbbb",
            "id": 1,
            "label": "支付宝",
            "progress": 0,
            "status": 2,
            "taskType": "shell",
            "versionCode": 1,
            "versionName": "1.0.0",
            "enhancedClasses": ["aaa", "bbb"]
        },
        "resultMsg":"",
        "success":true
    },
    "requestId":"F9C681F2-6377-488D-865B-1144E0CE69D2",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

resultContent

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

data.afterMd5

String

加固后 文件 的 MD5。

data.afterSize

Long

加固后 文件 的大小。

data.id

Long

加固任务的 ID,后续用来轮询调用。

data.label

String

文件 的 label 字段。

data.progress

Integer

加固的进度,范围 0 - 100。

data.status

Integer

加固任务的状态: 0 未开始,1 已提交任务,2 加固中,3 加固成功,4 加固失败。

data.taskType

String

加固任务类型。

data.enhancedClasses

String[]

Java2C 选择的类。

查询加固任务进度

请求 - GetUserAppEnhanceProcessInMsaRequest

名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 workspace。

tenantId

String

所属的租户。

id

Long

加固任务 ID。

返回值 - GetUserAppEnhanceProcessInMsaResponse

{
    "resultContent":{
        "data":{
            "afterMd5": "aaaaaaaa",
            "afterSize": 1000,
            "appCode": "ONEXxxxx",
            "appPackage": "com.example.app",
            "beforeMd5": "bbbbbb",
            "id": 1,
            "label": "支付宝",
            "progress": 0,
            "status": 2,
            "taskType": "shell",
            "versionCode": 1,
            "versionName": "1.0.0",
            "enhancedClasses": ["aaa", "bbb"]
        },
        "resultMsg":"",
        "success":true
    },
    "requestId":"F9C681F2-6377-488D-865B-1144E0CE69D2",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

resultContent

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

data.afterMd5

String

加固后 文件 的 MD5。

data.afterSize

Long

加固后 文件 的大小。

data.id

Long

加固任务的 ID,后续用来轮询调用。

data.label

String

文件 的 label 字段。

data.progress

Integer

加固的进度,范围 0 - 100。

data.status

Integer

加固任务的状态: 0 未开始,1 已提交任务,2 加固中,3 加固成功,4 加固失败。

data.taskType

String

加固任务类型。

data.enhancedClasses

String[]

Java2C 选择的类。

查询加固后的产物下载链接

请求 - GetUserAppDownloadUrlInMsaRequest

参数名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 workspace。

tenantId

String

所属的租户。

taskId

String

加固任务 ID。

返回值 - GetUserAppDownloadUrlInMsaResponse

{
    "resultContent":{
        "data": { "url": "https://xxxx"},
        "resultMsg":"",
        "success":false
    },
    "requestId":"8F76783A-8070-4182-895D-14E5D66F8BA3",
    "resultCode":"OK"
}

返回值说明

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

checkRsaKeyResult

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

data.url

String

文件 下载链接。

data.filename

String

文件名。

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。

查询加固日志

请求 - GetLogUrlInMsaRequest

参数名称

类型

说明

appId

String

所属的 App。

workspaceId

String

所属的 Workspace。

tenantId

String

所属的租户。

taskId

String

加固任务 ID。

返回值 - GetLogUrlInMsaResponse

{
    "resultContent":{
        "data": { "url": "https://xxxx"},
        "resultMsg":"",
        "success":false
    },
    "requestId":"8F76783A-8070-4182-895D-14E5D66F8BA3",
    "resultCode":"OK"
}

返回值说

返回值名称

类型

说明

requestId

String

标识请求的 ID。

resultCode

String

正常情况下,请求返回的 code 是 OK。若有其他情况,则表明 API 请求异常。

resultContent

Object

返回的具体对象,具体含义见下表。

在返回的对象中,包含的字段含义如下:

名称

类型

说明

data

String

log 下载链接。

resultMsg

String

查询失败后的返回值。

success

Boolean

查询是否成功。