文档

iOS 应用安全加固

本文引导您使用移动应用安全加固对 iOS App 进行加固。使用 iOS 安全加固前请阅读使用须知并完成前置条件中的操作。

使用须知

使用 mPaaS 应用安全加固前请阅读以下使用须知,并保证您的工程满足相关要求,否则可能导致加固失败或加固效果受损。

  • 目前支持 X86/M1 机器。您可从屏幕角落的苹果菜单中选取 关于本机,查看 Mac 的概览信息,包括处理器信息。其显示为 Intel 处理器即表明您的 Mac 为 X86 架构。

  • 目前支持 Xcode 14.1/14.2。由于 iOS 加固会对编译器进行处理,需要对特定 Xcode 进行适配,所以使用 iOS 加固时需要使用特定版本的 Xcode,如需要使用更高版本 Xcode,请联系 mPaaS 技术支持团队。

  • 建议相关待加固代码采用 C、C++ 编写。iOS 加固对 C、C++ 的支持更好更稳定,此外部分支持 Ojective-C,不支持 Swift。

  • 请确保 App 工程的工作空间设置为 New Build System。检查路径为Xcode > File > Project Settings > Build System

  • 加固会带来性能损耗和理论上的稳定性风险提高,建议只对需要保护的核心代码进行加固,将需要保护的 C、C++ 代码抽离到一个单独的 Framework 中,然后进行加固。

前置条件

iOS 安全加固依赖于后端系统,使用安全加固时 Xcode 编译器会将工程中的代码编译后的中间代码上传到后端系统,后端服务器会对中间代码进行加固处理并返回给编译器,Xcode 会对所有返回的中间代码进行相应合并处理生成 Framework 或 ipa。

操作步骤

  1. 配置环境文件。按照以下方法生成 MSAConfig.json文件,并放到 $HOME目录下。在 Mac 机器下打开命令行输入 echo $HOME,即可得到 $HOME 目录,使用时替换为真实值即可,字段如下:

    {
        "appId": "应用 appId",
        "workspaceId": "应用 workspaceId",
        "tenantId": "应用 tenantId",
        "accessKeyId": "阿里云账号 accessKeyId",
        "accessKeySecret": "阿里云账号 accessKeySecret",
        "license": "目前空即可",
        "domain":"xxx"
    }
    说明
  2. 安装加固工具。

    1. 下载加固工具 下载加固工具 xcodeplugin-x86_64-5.7.2 或 xcodeplugin-arm64-5.7.2,解压后进入目录 toolsxcode

      说明

      hh

    2. 打开 insertdylib 文件,并在确认弹窗中单击 Open

    3. 执行以下命令。

      sh ./tools/xcode/install.sh
      说明

      该命令会自动查找与替换 /Applications/Xcode.app/的编译器,如需要恢复可执行 sh ./tools/xcode/uninstall.sh命令。

  3. 使用 Xcode 打开 Framework/ipa 工程,执行 Build/Archive命令,暂不支持动态库。

    重要

    工程路径名称中不能有空格或中文,否则可能导致编译报错。

  4. (可选)处理完成后进行反编译查看加固效果,使用以下命令验证加固,加固成功则输出不为空。

    nm ./BinaryPath | grep obfuscator

后续步骤

加固后,请务必检查关键组件功能是否正常,如果安装包在加固后功能异常,请 提交工单 或搜索群号 33417739 加入钉钉群进行咨询交流。

  • 本页导读 (0)
文档反馈