iOS应用逆向手段
- 1.脱壳可执行文件
- 2.使用IDE或Hopper反编译分析代码逻辑
- 3.使用class-dump加logify输出调用日志
- 4.使用lldb动态调试
- 5.使用tweak或iOSOpenDev写函数或方法钩子
- 6.打包成deb插件或重签名ipa
防御措施
- 1.mach-o中加入__restrict的section,防止dylib注入
- 2.调用ptrace防止动态调试
- 3.字符串使用异或加密防止反编译被看到,从而跟踪到关键函数
- 4.对类名方法名函数名加密
- 5.使用llvm混淆编译增加代码流程复杂度
- 6.使用md5文件自检,防止对二进制文件直接进行修改
- 7.对可疑的越狱设备判断,可查找关键文件比如debugserver
- 8.退出程序不要使用exit或abort可使用无限alloc等方式
- 9.xcode配置strip编译时删除符号表