iOS应用加固
工具下载
功能介绍
使用源码加固或者二进制加固的方式,对应用或者组件中的核心逻辑进行混淆加固保护,防止被逆向、调试、破解、分析。
代码逻辑混淆
基于工程源码或者提供的IPA二进制包进行多种方式混淆处理,提高代码的复杂度和逆向分析难度但不影响原始逻辑和性能。
字符串加密
将代码中的定义的字符串进行加密,边运行边解密,防止攻击者通过逆向工具分析字符串,定位关键逻辑并进一步破解业务核心逻辑。
防调试
高级的反调试技术,防止攻击者去调试分析APP的核心业务逻辑,调试则主动闪退
防反编译
对应用的二进制代码进行保护,防止逆向分析工具IDA将代码反编译为伪代码(Pseudo-Code)。
防二次打包
防止应用中的核心业务逻辑被恶意篡改以及资源文件被修改后重签名打包等恶意行为。
防 hook
高级防HOOK技术,防止应用被 Frida、fishhook 等工具 hook。
防盗用
高级防盗用,防止应用的动态库被其他恶意应用主动调用。
防注入
防止应用被注入动态库,注入则主动闪退。
防越狱
防止应用在越狱环境下运行,越狱则主动闪退。
防 AirPlay 投屏
防止应用被 AirPlay 投屏,投屏则主动闪退。
使用说明
该加固工具为jar包文件,适用于Windows、Linux以及Mac系统,以下均以Windows环境下描述,其他系统环境使用方法类似。下载地址点击下载。
使用方式
命令行模式(注意,第一次使用需要配置config.ini文件)
- 命令行模式参数
java -jar NHPProtect.jar -iOS -nobitcode -yunconfig -input /Users/ios_app.xcarchive
- 参数说明如下:
参数 | 说明 |
---|---|
-yunconfig | 必填项,表示自动从易盾后台获取加固参数,加固配置已经在后台部署,可以根据实际情况调整 。 |
- iOS | 必填项,标记iOS加固平台 |
-nobitcode | 必填项 |
-input | 必填项,参数后面跟待加固的文件的绝对路径 |
-output | 默认加固后的文件输出在原文件同路径,-output参数可以指定加固后文件的输出路径和文件名,示例:java -jar NHPProtect.jar -nobitcode -iOS -yunconfig -input /Users/ios_app.xcarchive -output /Users/Projectsxcarchive_encrypted.zip |
config.ini文件配置说明
默认config.ini必须要跟NHPProtect.jar在同一目录下,如果需要指定config文件,可以执行-config 命令参数来处理:
java -jar NHPProtect.jar -iOS -nobitcode -yunconfig -config /Users/test/Desktop/config.ini -input /Users/ios_app.xcarchive
config配置
设置appkey
用户需要将appkey填写在该配置文件中,格式如下所示。appkey请在官网登录账号后加固服务-服务管理获取。
[appkey]
key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
注意事项:若加固对象是.ipa包,请在 config 内配置对应工程的符号表路径。
[SymbolPath]
path=
更新和支持
Jar工具会定期进行新版本检测,客户端网络正常的情况下触发更新时会自动升级到最新版本。也可手动通过更新命令进行升级。示例:
Java -jar NHPProtect.jar -update
也可以通过config 内的增加如下配置来设置加固工具是否更新,以及更新检测频率。
[update]
u=1 // u=1 更新 u=0 不触发自动更新
t=1 //更新检测频率,单位 day,表示每 1天执行时候都会进行最新版本更新检测
加固脚本由易盾在服务器部署,为保证线上包体方案的稳定性,非功能优化和问题修复不会改变后台的加固版本。建议有大版本更新迭代时候可以考虑升级到易盾新版本,并根据版本排期提前测试。