双击安装dmg文件以后把里面的class-dump文件,复制到 /usr/local/bin/ 目录下,这样才能在终端的命令行里面输入class-dump命令.
建议不要安装官网的有的程序会运行报错,直接安装下面这个版本
下载这个 github可执行文件
然后复制到/usr/local/bin目录中,然后修改文件权限,终端输入:sudo chmod 777 /usr/local/bin/class-dump
然后第一次运行,会提示为信任的开发者,在mac里的"系统偏好设置"->安全性与隐私->通用-> 仍然要打开class-dump,然后再执行:class-dump -H 文件名 -o headers 就会成功把所有.h文件整出来
如果是你自己生成的app,你已经有了app源代码可以直接在xcode里面的product拿到这个app包.但是都有源代码了就不用逆向了.我在要逆向的是没有源代码的app
用越狱手机安装这个app.然后运行app.再用cycript工具 加载app的进程,例如我现在运行我做实验写的一个app叫testOc.
cycript -p testOc
找到 app包的位置执行命令:[NSBundle mainBundle].bundlePath
找到了app的位置如下:/private/var/containers/Bundle/Application/9B1C0412-DA10-41BD-8914-B80E7592D974/testOc.app
tandeyueyu6s:~ root# cycript -p testOc
cy# [NSBundle mainBundle].bundlePath
@"/private/var/containers/Bundle/Application/9B1C0412-DA10-41BD-8914-B80E7592D974/testOc.app"
把复制到mac上的 文件夹 testOc右键->显示包内容,找到里面app同名的文件 testOc,这个文件就是我们要分析的文件了
class-dump 文件名
class-dump加文件名字是直接在终端打印这个app的信息
终端进入ting文件夹下
tdw@bogon testOc.app % class-dump testOc
class-dump -H app名字 -o 输出文件夹名字
例如下面:把testOc分析结果输出到上一层的output文件夹:
class-dump -H testOc -o ../output
看到output文件夹下有4个.h头文件
AppDelegate.h
CDStructures.h
NSObject-Protocol.h
UlApplicationDelegate-Protocol.h
ViewController.h
如下图:
打开一个头文件ViewController.h,查看里面的内容,里面有用到的方法和成员变量,虽然和我原来写的不一样,我原来写的是把这些变量和方法都写在了.m文件中,class-dump是把这些方法放在.h中,但是变量名字和方法名字都一样.可以通过这些变量和名字,以后再调用这些方法.