iOS 反编译入门

最近看了几篇关于 APP 安全方面的文章,其实网上关于 iOS 反编译相关内容的文章都大同小异,这篇博客也就是对这方面内容做一个整理。

需要两种工具:class-dumpHopper Disassembler

class-dump

  • 作用:导出应用的头文件,算是逆向工程的入门级工具

  • 安装:打开 .dmg 文件,将 class-dump 文件拉到 /usr/local/bin 目录下,这样就可以在终端使用 class-dump 命令了。

class-dump

Hopper Disassembler

  • 作用:二进制反汇编器,反编译和调试,可以拆开任何二进制。

演示项目

  • 新建项目,在 ViewController 的 .h 和 .m 文件中写如下代码,然后运行项目

.h

.m

  • 获取APP包(资源库/Developer/Xcode/DerivedData/刚刚运行的APP/Build/Products/Debug-iphonesimulator/APP包)-> 显示包内容 -> 将二进制文件拿到桌面新创建的文件夹中

文件夹

  • 进入终端,在文件夹目录下执行 class-dump -H 反编译app,在文件夹中就会导出头文件

终端

文件夹

.h

  • 打开 Hopper Disassembler,将二进制文件拉入,点击工具栏中间的 if(b) f(x); 切换成伪代码模式,这样方法里面的逻辑就展示出来了(这里有个问题是,别人的 NSLog 中打印的文字可以显示出来,我的就不显示)

Hopper Disassembler

总结

iOS 反编译技术最重要的是细心加耐心,我也是关注 APP 的安全性,从而发散学习一下,没有深入去研究。首先我在工作中并没有运用到反编译技术,其次也不想把太多时间浪费其中。

还有好多方便实用的工具没有一一介绍,比如和 Hopper Disassembler 差不多的 IDA、UI 层解析工具 Reveal 等等,以后有时间或者工作需要再深入研究。

最最主要的是,以后开发要把重要逻辑封装到静态库里,大大降低被反编译的可能。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值