Professional Documents
Culture Documents
北京梆梆安全科技有限公司
用户使用手册
(源到源加固版)
北京梆梆安全科技有限公司
梆梆安全 IOS 应用加固用户使用手册
目录
1. 引言....................................................................................................................5
1.1. 目的.............................................................................................................................................5
1.2. 范围..........................................................................................................................................5
1.3. 运行环境..................................................................................................................................5
1.4. 术语和定义..............................................................................................................................5
2. 桌面客户端(GUI)使用说明...........................................................................6
2.1. 安装与运行..............................................................................................................................6
2.1.1. 安装注意事项..................................................................................................................6
2.1.2. 安装客户端......................................................................................................................6
2.1.3. 运行客户端......................................................................................................................6
2.2. 登录..........................................................................................................................................7
2.2.2. 登录本地部署的加固系统..............................................................................................8
2.2.3. 离线登录..........................................................................................................................9
2.3.1. 创建/打开加固任务......................................................................................................11
2.3.2. 创建新任务....................................................................................................................11
2.3.3. 高级配置说明................................................................................................................15
2.3.3.1. 加固策略配置......................................................................................................................15
2.3.3.2. 扩展策略配置......................................................................................................................19
2.3.3.3. 文件范围配置......................................................................................................................24
2.3.3.4. 符号混淆配置......................................................................................................................26
2.3.4. 提交加固........................................................................................................................27
2.3.5. 停止加固........................................................................................................................28
2.4. 任务列表管理........................................................................................................................28
2.4.1. 重新加固........................................................................................................................31
2.4.2. 删除任务........................................................................................................................31
/ 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
2.4.3. 任务详情........................................................................................................................31
2.5. 客户端设置...............................................................................................................................32
2.5.1. 修改登录语言................................................................................................................32
2.5.2. 修改登录密码................................................................................................................33
2.5.3. 更新说明........................................................................................................................34
3. 命令行(CLI)使用说明..................................................................................34
3.1.1. 授权文件导入................................................................................................................35
3.1.2. 加固配置........................................................................................................................35
3.1.3. 加固配置文件格式........................................................................................................36
3.1.3.1. 示例......................................................................................................................................36
3.1.3.2. 简介......................................................................................................................................38
3.1.3.3. 节点解释..............................................................................................................................39
3.1.4. 执行加固........................................................................................................................43
3.2. 已知问题和限局性................................................................................................................44
3.2.4. 符号混淆潜在风险........................................................................................................44
/ 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
1. 引言
1.1. 目的
1.2. 范围
1.3. 运行环境
1.4. 术语和定义
术语/定义 说明
源到源加固 输入源代码工程文件,加固处理后仍然输出源代码工程文
件。
usc.an110.com 梆梆安全 SaaS 安全云服务平台。
GUI 图形用户界面,本文档内用于指代 iOS 应用加固桌面客户端
软件。
4 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
2. 桌面客户端(GUI)使用说明
2.1. 安装与运行
2.1.1. 安装注意事项
如下确认:
3. 加固前,请确认待加固工程可以编译成功。
2.1.2. 安装客户端
可。
具体步骤如下:
3. 如果使用过老版本的客户端,请先手动删除 “~/Documents/SCShield”(文稿
/ SCShield)下的所有文件。
2.1.3. 运行客户端
请在 Mac 启动台里选择“SCShieldClient”应用并运行:
5 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
2.2. 登录
具体步骤:
1、运行“SCShieldClient”应用;
IP 地址:https://usc.an110.com,端口为:443。
6 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
3、配置正确会返回服务器平台版本信息,点击“确定”保存。
2.2.2. 登录本地部署的加固系统
具体步骤:
1、运行“SCShieldClient”应用;
2、点击“设置”,配置本地部署的服务器地址:
例如:IP 地址:http://192.168.139.47,端口为:8000。
输入过程,软件会自动测试配置参数是否正确,错误的信息无法连通。
7 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
3、配置正确会返回服务器平台版本信息,点击“确定”保存。
统。
2.2.3. 离线登录
具体步骤:
1、运行“SCShieldClient”应用;
2、点击“离线登录”按钮直接进入离线使用模式,无需设置、无需输入用户名和密
码。
1)点击“设置与帮助”按钮
8 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
9 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
源代码层面的混淆技术,可以有效防止单点绕过,增加对加固后代码的安全审阅能力,
可以快速实现基于源代码的问题定位分析。
2.3.1. 创建/打开加固任务
登录后会默认打开“创建加固任务”窗口,用户可以创建新任务或者打开近期使用的
任务,如下图所示:
2.3.2. 创建新任务
点击“创建新任务”按钮,则会进入新建加固任务界面,如下图所示:
10 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
相关说明如下:
选项 说明
任务名称 输入的任务名称仅支持英文、数字、下划线和括号,长度不超过
15 个字符,且任务名称不可重复
选择 iOS 平台,输入并提交加固任务名称后,跳转至加固任务配置界面,如下图所示 :
11 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
相关说明如下:
选项 说明
12 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
的目录下创建文件 xctool_parse.flg。
配置 configuration 您 工 程 中 所 配 置 的 configuration , 选 择 您 所 需 要 加 固 的
configuration,如果不确定,则可以不填写,默认 Release 模
式。
输出路径 是您加固后输出的工程文件路径,格式为:工程路径/工程文件
名_sec,路径名称只能为英文。(不支持修改)
高级配置 高级配置包括加固策略配置、扩展策略配置、文件配置、符号混
淆配置。
1、加固策略配置,包括设定加固强度、选择高级功能(完整性
保护、防调试、字符串加密、防 hook、防注入等)、选择附加
功能(生成加固日志、验证加固结果、原位置混淆、优化编译时
间);
2、扩展策略配置 ,包括防二次打包 、防设备越狱 、防 Frida
hook 增强、app 模糊化、防日志泄漏、防 AirPay 投屏、Fish
hook 关键函数防护,防代理,防模拟器,防虚拟定位,https 证
书校验等;
3、文件配置,包括文件过滤列表、文件混淆列表。文件过滤列
表表示对列出的文件不被加密;文件混淆列表表示对列出的文件进
行加密;
4、符号混淆,用于对 object-c 函数类名、方法名、属性名、类
别进行混淆。
2.3.3. 高级配置说明
进行配置。
2.3.3.1. 加固策略配置
13 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
相关说明如下:
14 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
不开启。
原理:混淆器读入代码
文件,生成抽象语法树 建议数值为
(AST),根据 AST 分
60-80
析代码的控制流并拆分
出代码块(block),然
后对代码块进行重排,
放 入 switch case 结 构
中,从而实现控制流平
坦化。
字符串为随机字符串解
密函数
15 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
影响 (不支持客户自定义
原理:撒点的方式,对
的调用相关代码进行嵌
入,当运行到此处时,
进行检查
原理:通过在源代码的 影响 (不支持客户自定义
校验代码(对代码段分
段进行校验),防止恶
frida、Cycript、Reveal SwizzlingH
16 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
应将此项取
消勾选。
防 Cycript
注入功能,
请 按 需 开
启。
的调用,进行是否被调
试检查。
的方式,进行完整性检 响应事件)。
查(对整个代码段进行
校验)。
的方式,进行是否被 件)。
hook 检查(检测函数开
头的字节码)
17 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
志 于定位问题 按需开启
果 次,
按需关闭
置进行混淆。
按需开启
时间 程不再进行生成汇编指
按需开启
令、链接、生成 macho
等流程。
名 使用签名,用于消除加 误
按 需 开 启
固时发生签名的错误
(仅在加固
发生签名相
关错误时打
开)
静态防调的优势:添加防调试校验因子到各个函数内,即使攻击者破解了某个函数,也不
18 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
2.3.3.2. 扩展策略配置
相关说明如下:
次打包:
绑定的包名、签名
必须同时配置,只
19 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
支持绑定当前工程
app 的包名签名。
原理:获取包名和
签名,判断与客户
指定的是否一致
无影响 调函数里自定义处理行
原理:通过权限、
为。
路径等特征检测是
否 root
断 响; 调函数里自定义处理行
为。
原理:基于内存深 此功能会损耗性能
度扫描 frida 特征
日志输出进行屏
蔽 ,防 止敏 感信 息
泄漏。
20 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
原 理 : 对
stdout 、 stderror
进行重定向
制 软 件 的 共 享 阻 无影响 理行为。
断 。测 试过 的软 件
包括爱思助手投
屏,腾讯会议投
屏 ,向 日葵 远程 投
屏 , Todesk 远 程
投 屏 。 2、支 持阻
断 AirPlay 投屏,防
止信息泄漏。
原理:1、通过遍历
AVAudioSession
的 通道 ,检 测是 否
存在屏幕共享通
道 ,并 根据 屏幕 捕
获 相关 方法 ,来 判
断 是否 存在 第三 方
sdk 的 录 屏 投 屏 行
为。
2 、 通 过 遍 历
AVAudioSession
的 通道 ,检 测是 否
存在 AirPlay 通道,
21 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
并 根据 相关 系统 消
息 通 知 , 通 报
AirPlay 投屏行为。
保护 台 切换 过程 的屏 幕 能,对包体大小、性能 态,不做任何其他处理。
模 糊化 ,防 止信 息 无影响
泄漏。
原 理: 根据 系统 通
知 , 判 断 app 状
态 ,并 添加 相应 的
UI
功能:检测
Fish hook 此 为 静 态 库 提 供 的 功 默认按闪退阻止,客户可 按需开启
getenv、open、s
关键函数保 能,对包体大小、性能 以在回调函数里自定义处
ysctl、dlsym、sys
护 无影响 理行为。
call 等 5 个常用的
关键系统函数,对
Fish hook 行 为 进
行阻断。
原 理: 检测 函数 地
址 是否 在系 统库 的
代码段
配 置, 防止 中间 人 无影响 理行为。
攻击。
22 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
原理:对本地 ca 证
书 以及 服务 器获 取
到 证书 的公 钥进 行
匹配
法 通过 代理 方式 对 能,对包体大小、性能 以在回调函数里自定义处
行 抓包 分析 。禁 止
网 络代 理 ,可 以有
效 对抗 抓包 分析 攻
击。
原 理: 系 统提 供了
CFNetworkCopyS
ystemProxySettin
gs 函数,可以获取
到 系统 代理 配置 信
息。
*说明:仅对抓包代
理 进行 了防 护, 对
VPN 代理没有做防
护。
并 运行 (实 际上 加 无影响 理行为。
固 后工 程并 不支 持
以 ios Simulator
23 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
target 运 行 , 这 里
指 防止 运行 到 包 括
x86 以 及 M1/M2
芯 片 Mac 设 备
上 ), 以防 止运 行
到 Mac 设备上后带
来 的一 系列 风险 ,
包 括数 据泄 露, 伪
造运行轨迹等。
原 理: 根据 运行 时
环 境变 量以 及硬 件
设 备信 息判 断当 前
是 否运 行于 模拟 器
( 任 意 架 构 的
Mac)环境。
*说明:首先说明加
固 后的 工程 不支 持
以 ios Simulator 为
target 运 行 , 防 模
拟器的是对 app 在
mac m1 和 mac
m2 设 备 上 直 接 运
行进行的防护。
备上运行。
24 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
原 理: 根 据运 行时
CLLocation 类型以
及 获取 到的 地理 位
置 数据 频次 、数 值
特 征判 断当 前地 理
位置是否被修改。
*说明:通过调用
com.apple.simulat
elocation 服务,实
现 防虚 拟定 位, 例
如可以防护使用
Xcode 通过 GPX 虚
拟 定位 ,以 及使 用
爱思助手虚拟定
位 。该 功能 不会 自
行 申请 位置 权限 ,
且 防 护 仅 在 该 app
存 在位 置权 限时 才
会生效。
扩展策略的响应事件自定义方法:
以下扩展功能支持客户自定义响应事件,包括:
· 防二次打包:默认保护策略,检测到二次打包行为,APP 闪退处理。
· 防设备越狱:默认保护策略,检测到越狱设备,APP 闪退处理。
25 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
理。
客户可以通过修改加固配置文件,自定义相关安全功能的响应事件:
App 加固完成之后,请查找并编辑当前加固的源工程路径(根目录)下面的
SecureUtilityPlusConfig.m 加固配置文件。
配置文件里默认的处理扩展策略的代码,如下:
身需要执行自定义的安全响应行为,比如弹出提醒信息等,请按照下来说明修改配置文件。
+(void)load{
26 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
initWithObjectsAndKeys:teamID,@"teamID",bundleID,@"bundleID",disableLog,@"disableLog",sceenBlurShift,@"sceenBlurShift",
secureUtil.shouldDoAppResignCheck = shouldAppResignCheck;
secureUtil.shouldDoJailbreakCheck = shouldJailbreakCheck;
secureUtil.shouldDoSslPinningCheck = shouldSslPinningCheck;
secureUtil.shouldDoAirPlayCheck = shouldAirPlayCheck;
secureUtil.shouldDoFridaCheck = shouldFridaCheck;
secureUtil.shouldDoDebugCheck = shouldDebugCheck;
secureUtil.shouldDoSwizzlingHookCheck = shouldSwizzlingHookCheck;
secureUtil.shouldDoInlineHookCheck = shouldInlineHookCheck;
secureUtil.shouldDoAppIntegrityCheck = shouldAppIntegrityCheck;
secureUtil.shouldDoNetworkProxyCheck = shouldCheckNetworkProxy;
secureUtil.shouldDoFishHookCheck = shouldFishHookCheck;
secureUtil.shouldDoLocationFakeCheck = shouldLocationFakeCheck;
secureUtil.shouldDoSimulatorCheck = shouldSimulatorCheck;
/*
检测网络代理、Fish Hook、防位置模拟功能、防模拟器运行功能,默认按闪退处理。
*/
/*
if(isAppResigned){
for_example_showAlert(NULL,@"应用已被重签名",NO);
};
27 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
if(isRoot){
for_example_showAlert(NULL,@"此设备已越狱",YES);
};
if(isAttacked){
for_example_showAlert(NULL,@"应用运行过程中,存在被中间人攻击现象",NO);
};
if(isAirPlayOutput){
};
if(isFridaAttack){
};
if(isDebug){
for_example_showAlert(NULL,@"应用运行过程中,存在被调试现象",NO);
};
28 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
if(isSwizzlingHook){
};
if(isInlineHook){
};
if(isIntegrityBroken){
for_example_showAlert(NULL,@"应用运行过程中,存在代码段完整性被破坏现象",NO);
};
if(networkProxyExists){
for_example_showAlert(NULL,@"应用运行过程中,检测到网络代理",NO);
};
if(isFishHook){
};
29 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
if(isLocationFaked){
for_example_showAlert(NULL,@"应用运行过程中,存在位置模拟现象",NO);
};
if(isRunInSimulator){
for_example_showAlert(NULL,@"应用存在模拟器运行现象",NO);
};
*/
2.3.3.3. 文件范围配置
点击高级配置,弹出文件过滤页面。具体见下图所示:
30 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
相关说明如下:
选项 说明
需要过滤的文件列表 该列表内的文件将不被混淆。
需要混淆的文件列表 1、如果该文件列表不为空,则该列表内的文件将被混淆;
2、如果该文件列表为空,则除过滤文件列表之外的文件全部混
淆,行为与全选(*)一致。
2.3.3.4. 符号混淆配置
31 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
(本功能如配置不当,可能会导致程序异常,首次使用请在技术指导下进行)
点击高级配置,弹出符号混淆页面。具体见下图所示:
相关说明如下:
4、关于混淆规则的编写规则如下:
32 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
A.每行一条规则
通配符为:“*”,可进行模糊匹配;字符串为:用户需要混淆或过滤的类名、方法名、
或类名、方法名、的一部分,区分大 小写;例如:
2.3.3.5. 加密配置
(本功能如配置不当,可能会导致程序异常,首次使用请在技术指导下进行)
点击高级配置,弹出加密配置页面。具体见下图所示:
33 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
证书文件加密功能原理:App 打包过程中,资源保护命令行工具对指定的文件进行加密 。
App 运行过程中,支持代码中通过特定的系统 API 进行读取加密文件。
定义证书文件加密范围:
1、配置规则:每行一个证书文件名全称(带扩展名),不需要写文件路径,不支持
通配符,示例如 test.cer。
2、证书加密适用规则:
"NSData 类方法:dataWithContentsOfFile"
4、注意事项:
1) 证 书 加 密 过 程 会 绑 定 teamid 和 bundleid , 加 固 后 请 不 要 更 换 teamid 和
bundleid 进行上架。
2) 如果证书不是使用以上 API 读取的,则不能开启此功能,开启后会出现请求异常等
问题。
5、其他限制:已加密的证书文件不能再进行修改或者替换。 加固后请不要更换
teamid 和 bundleid。只支持加固后工程的编译过程中加密,不支持证书的动态更
新,但是不影响使用,因为解密失败就直接返回原文件,证书加密在热更新情况下,
功能就失效了。
2.3.4. 提交加固
配置好对应的信息,点击提交加固,对您需要加固的工程文件进行加固,具体如下图
所示:
34 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
相关说明如下:
选项 说明
加固进度 工程文件加固的进度百分百、加固时间等
2.3.5. 停止加固
可对当前加固的工程文件进行停止加固操作,停止后只能进行重新加固。
2.4. 任务列表管理
点击主菜单下的任务列表按钮,打开任务列表页面,具体如下图所示:
35 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
相关说明如下:
选项 说明
任务名称 为您已经完成加固任务的任务名称
iOS
提交时间 为您工程文件提交加固的时间
任务状态 为您工程文件加固后的状态,包括加固成功、加固中、加固失
败、网络传输失败、预处理中、预处理失败等
选择单个任务列表,右键任务可进行重新加固、删除任务、完整性保护后处理、查看
任务详情、打开输出文件夹、导出加固日志等操作。具体如下图所示:
36 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
相关说明如下:
选项 说明
重新加固 对已完成的加固任务进行重新加固
删除任务 删除当前加固任务
任务详情 查看已完成的加固任务详情
2.4.1. 重新加固
点击重新加固,弹出确认提示框,点击确认回到当前任务的配置页,可以重新修改相关加
固内容、策略,重新提交加固。
2.4.2. 删除任务
点击删除任务,弹出提示框,确认则删除任务,取消回到上一页面。具体如下图所示:
37 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
2.4.3. 任务详情
点击任务详情,查看当前任务配置信息,具体如下图所示:
2.5. 客户端设置
点击主菜单下的设置与帮助,跳转到对应页面,包括系统信息、更新说明和关于我们。
2.5.1. 修改登录语言
点击系统信息,跳转系统信息页面,可以切换客户端默认显示语言,具体如下图所示:
38 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
相关说明如下:
选项 说明
版本信息 当前客户端版本和服务端版本,系统语言支持简体中文、繁体中
文、英文、韩文切换
账号信息 当前客户端的账号、系统服务期限,密码等
2.5.2. 修改登录密码
点击系统信息,跳转系统信息页面,可以重置登录密码。(适用于在线登录方式)
2.5.3. 更新说明
点击更新说明,可以查看客户端版本更新信息,具体如下图所示:
39 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
3. 命令行(CLI)使用说明
40 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
3.1.1. 授权文件导入
在 离 线 模 式 运 行 之 前 , 用 户 需 要 导 入 离 线 的 license 文 件 , 导 入 license 的 工 具
bclm(路径为: ~/Documents/SCShield/native_tools_mac_xxx/tools/bclm),导入
license 的命令如下:
cd /Users/usrxxx/Documents/SCShield/
./native_tools_mac_xxx/tools/bclm -i <yourLicense_path>
返回:
示例:
3.1.2. 加固配置
1) Xcode 工程类型
workspace scheme
project scheme
41 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
3.1.3. 加固配置文件格式
3.1.3.1. 示例
<SourceShieldV3>
//客户端传输协议 默认配置
<Protocol>https</Protocol>
//服务端版本 默认配置
<ServerVersion>5.5</ServerVersion>
//服务端地址 默认配置
<IP>usc.an110.com</IP>
//服务端端口 默认配置
<Port>443</Port>
//加固客户端版本 默认配置
<Version>4.5.0</Version>
//加固账号 默认配置
<Username>test-zp</Username>
//构建类型 默认配置
<ProjectType>xcode</ProjectType>
//平台类型 默认配置
42 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
<Platform>ios</Platform>
//项目目录 根据实际填写
<SourceRoot>/Users/mac/Desktop/TEST</SourceRoot>
<XcodeProject>/Users/mac/Desktop/TEST/TEST.xcodeproj</XcodeProject>
<Scheme>TEST</Scheme>
<XcConfiguration>Debug</XcConfiguration>
<SafeSDK>
<Enable>1</Enable>
<AppResignCheck>0</AppResignCheck>
<SimulatorCheck>0</SimulatorCheck>
<NetworkProxy>0</NetworkProxy>
<LocFakeCheck>0</LocFakeCheck>
<JailbreakCheck>0</JailbreakCheck>
<ScreenOutputCheck>0</ScreenOutputCheck>
<SslPinningCheck>0</SslPinningCheck>
<AirPlayCheck>0</AirPlayCheck>
<FridaCheck>0</FridaCheck>
<FishHookCheck>0</FishHookCheck>
43 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
<TeamID></TeamID>
<BundleID></BundleID>
<CertificatePath></CertificatePath>
<WebsiteUrl></WebsiteUrl>
<DisableLog>0</DisableLog>
<SceenBlurShift>0</SceenBlurShift>
<DebugCheck>1</DebugCheck>
<HookCheck>1</HookCheck>
<IntegrityCheck>1</IntegrityCheck>
<ResourceCheck>1</ResourceCheck>
<ResourceCheckList>
//需要加密的证书名称列表 按需填写
<FilePath>httpbin.org.cer </FilePath>
</ResourceCheckList>
</SafeSDK>
<BlackList>
//需要过滤的文件名单 按需填写
<FilePath>Pods/*</FilePath>
</BlackList>
<WhiteList/>
<FirstDryRunBuild>0</FirstDryRunBuild>
44 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
<Strength>50</Strength>
<AntiDebug>1</AntiDebug>
<Integrity>1</Integrity>
<StringLiteral>1</StringLiteral>
<FridaHook>1</FridaHook>
<SwizzlingHook>0</SwizzlingHook>
<AntiInject>0</AntiInject>
<SkipVerifyBuild>0</SkipVerifyBuild>
//clang 版本 默认配置
<ToolsVersion>v6</ToolsVersion>
<ForcePreprocess>0</ForcePreprocess>
<IsOBFInSrcFolder>0</IsOBFInSrcFolder>
<DoSymbolObfuscate>0</DoSymbolObfuscate>
<SymbolBlackList/>
</SourceShieldV3>
3.1.3.2. 简介
45 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
表 1–1 工程说明
3.1.3.3. 节点解释
4.5.0
Version 无 无 默认配置
https
Protocol 无 无 默认配置
IP 梆梆安全云加固服务平 无 无 默认配置
台:https://
usc.an110.com
本 地 部 署 的 iOS 应 用 加
固系统配置:
http://+部署的本地 IP 或
域名
46 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
注意:如果用户工程中有
workspace , 则 必 须 选
择 XcWorkspace 作 为
xml 节点, 不能为空,必
填;如果用户工程中没有
workspace , 则 使 用
XcodeProject 作 为 节
47 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
点,必填,不能为空。
Scheme/ 为 您 工 程 文 件 下 的 无 无 按实际配置
Target scheme/target,必填。
注 意 : 优 先 选 择
Scheme,极少数特殊情
况选择 Target。
XcConfi 您 工 程 中 所 配 置 的 无 无 按实际配置
guration configuration , 填
Release/Debug
根据您的工程选择所需要
加固的 configuration ,
默认 Release 模式。
当运行到此处时,进行检 按需调整数值。
48 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
原理:替换代码位置的字
符串为随机字符串解密函
数
49 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
50 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
择,基本对应关系是:
Xcode9 以 下 ( 包 含
Xcode9 ) ~ v6 ;
Xcode10 ~ v7 ;
Xcode11~v8
注意:
1、因为在加固过程中,
有可能出现加固失败而导
致的用户代码被污染的情
况,因此需要用户预先保
存好自己的代码备份。
2、加固一次代码后,不
论成功与否,都不可继续
执行加固操作。
51 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
JailbreakCheck 子 节
点,是否开启 app 运行
在越狱环境检测;
ScreenOutputCheck 子
节点,是否开启截屏、录
屏监听检测;
AirPlayCheck 子 节 点 ,
是否开启投屏检测;
FridaCheck 子 节 点 , 是
否开启 Frida hook 检测;
FishHookCheck 子 节
点,是否开启 Fish hook
检测;
SceenBlurShift 子 节
点,iOS 后台切换时开启
模糊效果,若切换到前台
则关闭模糊效果;
DebugCheck 子 节 点 :
动态防调试节点;
HookCheck 子节点:动
态防 Hook 节点;
IntegrityCheck 子 节
点:动态完整性防护节
点;
SslPinningCheck 子 节
点 , 是 否 开 启 验 证
HTTPS 本地证书;
52 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
CertificatePath 子 节
点,其值为签名证书的路
径,需要在项目里配置证
书文件;
WebsiteUrl 子 节 点 , 其
值为与签名证书绑定的网
址;
DisableLog 子 节点 ,是
否开启防日志泄漏;
SimulatorCheck 子 节
点,是否开启防模拟器;
NetworkProxy 子节点,
是否开启防代理;
LocFakeCheck 子节点,
是否开启防虚拟定位。
ResourceCheck 子 节
点,是否开启证书文件加
密。
ResourceCheckList 子
节点,其值为需加密的证
书文件列表(按需填
写)。
程。
默认关闭。
53 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
名、类别、属性,对遍历 率增大。
到的符号进行拆分,排除
开启此功能,需把作为
与系统重合的符号,然后
数据模型转换的
生成随机符号,并最终通
model 类加入黑名
过宏替换的方式实现符号
单。
混淆。
本功能如配置不当,可
能会导致程序异常,首
次使用请在技术指导下
进行。
!View* 意为“过滤所有
前缀为 View 的类名、方
法名
按需开启。
3.1.4. 执行加固
下面命令的执行目录为:~/Documents/SCShield,即当前安装了客户端应用用户的
Documents/SCShield 目录。
源码引擎有两种模式:标准模式同时支持离线登陆和在线登录两种模式;下面的示例配
置文件为当前目录下的 testios.xml, 使用<vaule>表示要被替换的内容,分别命令行如下:
54 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
在线模式:
cd ~/Documents/SCShield
离线模式:
cd ~/Documents/SCShield
3.2. 已知问题和限局性
加固后的工程也需要进行版本管理,需要与原始的工程进行标签式的管理。这种管理
可以在出现问题时进行良好的回溯。
3.2.4. 符号混淆潜在风险
如果上述的验证出现有混淆的冲突,请在加固后项目根目录找到生成的符号头文件
(符号头文件即混淆前后的符号对应表),查找到出错的符号,并加入到黑名单,并重新
55 / 56 梆梆安全 | 稳如泰山,值得托付
梆梆安全 IOS 应用加固用户使用手册
进行加固,通常就能解决这类的问题。
Swizzling 是 ObjC/ObjC++特有的运行时绑定的解决方案,由于在运行过程中很容易
被侵入干扰绑定,使用 Swizzling 防护可以将设计的原始的绑定关系固化于源代码之中。
在 加 固 过 程 中 , 本 产 品 已 经 做 了 智 能 的 识 别 ( 通 过 遍 历 AST , 查 找
swizzling 特征,如查找到 swizzling 特征且加固配置开启了防 swizzling hook,则
加固报错,并提示 swizzling 冲突),但是依然在概率上有与原 始的 Swizzling 业
务代码有冲突的可能(比如 swizzling 特征存在于动态库、静态库,未智能识别到),
所以在加固后,请做全面的测试(首次加固做全量测试,再次加固做增量测试)。
56 / 56 梆梆安全 | 稳如泰山,值得托付