Class-Dump、HopperDisassembler v4

2016-12-15  本文已影响0人  SFHinc


因为公司android平台APP被人破解,最近就学习了一些关于反编译的知识,虽然在安全性上iOS要比android好一些,上传到appstore的app经过了apple加密处理,但是在debug下或者是release下产生的ipa或者是渠道包(各种应用市场能下的ipa包)都能直接反编译;apple加密过得也可以反编译,只不过相对麻烦一些罢了。工具有很多,自行google,这里只介绍个人用到的两个:dump和hopper

利用class-dump反编译出方法名

下载地址:http://stevenygard.com/projects/class-dump

class-dump 作用对象必须是未经加密的可执行文件

下载后将class-dump复制到/usr/local/bin目录,并在Terminal中执行"sudo chmod 777 /usr/local/bin/class-dump" 命令赋予其执行权限。

新建一个项目。只在ViewController类里面做了改动,写了两个方法,其中一个方法做了声明,另一个没有

运行程序,找到Products下的Dump测试.app根目录右键显示包内容,找到二进制文件,复制到桌面一个新文件夹里面

打开Terminal,cd到放二进制文件的根目录,输入命令:class-dump -H Dump测试,运行成功后目录下面多了几个文件

打开ViewController.h可以看到反编译出来的方法名,没有声明的方法也能反编译出来

利用Hopper反编译出伪代码

要查看方法的具体实现可以利用hopper,打开hopper,把二进制文件拖进去进行反编译

在想看的地方选择if(b)f(x):可以看到近似源码的伪代码

上一篇下一篇

猜你喜欢

热点阅读