iOS应用之逆向防护

iOS的逆向步骤一般为:

  • 脱壳可执行文件
  • 使用IDE或Hopper反编译分析代码逻辑
  • 使用class-dump加logify输出调用日志
  • 使用lldb动态调试
  • 使用tweak或iOSOpenDev写函数或方法钩子
  • 打包成deb插件或重签名ipa

防御措施:

  • mach-o中加入__restrict的section,防止dylib注入
  • 调用ptrace防止动态调试
  • 字符串使用异或加密防止反编译被看到,从而跟踪到关键函数
  • 对类名方法名函数名加密
  • 使用llvm混淆编译增加代码流程复杂度
  • 使用md5文件自检,防止对二进制文件直接进行修改
  • 对可疑的越狱设备判断,可查找关键文件比如debugserver
  • 退出程序不要使用exit或abort可使用无限alloc等方式
  • xcode配置strip编译时删除符号表
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容