美文网首页
iOS反编译初探

iOS反编译初探

作者: 临川慕容吹雪 | 来源:发表于2019-04-02 18:26 被阅读0次

工具介绍

class-dump

class-dump是用来dump目标文件的类信息的工具。它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的@interface和@protocol信息提取出来,并生成对应的.h文件。

将dmg文件中的class-dump复制到/usr/bin目录下,并且使用终端授权:

sudo chmod 777 /usr/bin/class-dump

然后再终端输入class-dump查看它的命令

class-dump.png

使用以下命令生成对应.h文件

class-dump -H 可执行App二进制文件路径  生成.h的存放路径

然后我们就可以看到生成的.h文件

test.gif
可以清晰看到生成了很多.h文件,其中包括了第三推送jspush和以fitfun开头的我们公司自己写的类头文件。
可是看到了头文件,我们依然无法获取.m具体实现方式。

这个时候我们就需要另外一个工具了。

Hopper Disassembler

Hopper Disassembler,一种反向工程工具,可让您对应用程序进行反汇编,反编译和调试。

首先我们下载官方的Hopper Disassembler,进行安装。
请注意官方是需要收费。
这里使用它的免费功能,将二进制文件拖入该工具主界面即可。
每次免费功能只能使用30分钟。到期之后需要再重新打开工具,重新启动免费功能就行了.
打开完二进制文件之后,我们可以看到:

汇编代码

一堆汇编代码,看的我们是一脸懵逼。莫慌,

比如我要分析我司自己App登录模块功能,我就在右侧输入框搜索fitfunlogin

搜索结果.png
然后选中左侧搜索出来对应的内容。
再点右上角的if(b)f(x)按钮,生成伪代码 生成伪代码

可以看出,部分.m里面的代码就被反编译出来了!!

后记:
不过平常开发我们不必过于担心,首先反编译需要一定成本的!如果我们为了安全,可以加入一些混淆干预代码。

相关文章

网友评论

      本文标题:iOS反编译初探

      本文链接:https://www.haomeiwen.com/subject/ihxnbqtx.html