class-dump 的安装与使用

来源:互联网 发布:javaee和大数据哪个好 编辑:程序博客网 时间:2024/06/05 21:04

class-dump的作用:

这个工具的作用相当纯粹,作用对象是 Mach-O 文件,利用 object-c 语言的 runtime 特性,将它的头文件取出来,生成对应的 .h 文件。


class-dump 的安装:

http://stevenygard.com/projects/class-dump 这里有最新的 class-dump 版本,选择最新的版本 class-dump-3.5.dmg下载,然后将 class-dump 复制到 /usr/bin/ 下,然后在  Terminal 中执行命令“sudo chmod 777 /usr/bin/class-dump” ,然后输入密码,这一步是为了给 class-dump 赋予权限。运行 class-dump,可以看到他的一些基本参数。如图:



定位 Mach-O 文件:

以微信为例,在 MAC 上的 App Store 上搜索“微信”并下载,下载完成后打开Finder,菜单栏上 “Go” 目录下点开“Go to Folder ...”

在输入框中输入 “~/Music/iTunes/iTunes Media/Mobile Applications/” 点 ”Go“,即可找到所有下载过的APP,或者直接去相应目录下

寻找也是可以的。

还有一种方法是在手机 App Store 上下载应用,然后拷贝到电脑上,这个可以借助iTools 完成 ,或者用 scp 拷贝,scp的方法以后

会详细解释,应用的路径会在下一篇详细解释。

找到 ipa 文件之后要对他进行解压缩,打开 Terminal ,执行命令 unzip /path/to/WeChat 6.3.30.ipa ,如图:


有个经验是,大家可以直接把文件拖进 Terminal·,Terminal 会生成绝对路径。

此时在当前目录下应该生成了一个叫 Payload 的文件夹,里面的文件是 WeChat.app ,右键点击 “Show Package Contents”,其中有个 info.plist 文件,我们可以在这个plist 文件中找到微信的可执行文件的名字,我们可以打开 plist 文件,查看 “CFBundleExecutable” 字段所对应的值,一个一个找太慢了,我们可以打开 Terminal ,执行如下

原来Mach-O 文件的名字就叫 “WeChat" ,在当前文件夹找到他,拷贝到桌面上的 Payload 文件夹下,这个时候我们的 class-dump 已经磨刀霍霍了。

执行class-dump:

以下的步骤作用是将微信的头文件 class-dump 到 ”~/Desktop/headers“ 下,指定机器的ARM架构信息,架构对应的信息请查询文后的表格,并将头文件按名字排序。

class-dump -s -S -H --arch armv7 /Users/cxderic/Desktop/Payload/WeChat -o ~/Desktop/headers

执行之后你或许发现,headers下面只有一个文件 CDStructures.h !

如果你到这一步了说明之前的工作都已经生效了!但是,在AppStore 下载的 App 都是经过加密的,就是所谓的加壳了,需要我们把这层壳砸掉我们才会看到微信的所有头文件,逆向之路漫漫兮其修远兮,你准备好跟我一起走了吗?后面我会介绍如何砸壳。

ARM设备对照表:

表 1-1 ARM 设备对照表NameARMNameARM   iPhone 4s   armv7   The New iPad   armv7   iPhone 5   armv7s   iPad with Retina display   armv7s   iPhone 5c   armv7s   iPad Air   arm64   iPhone 5s   arm64   iPad Air 2   arm64   iPhone 6 Plus   arm64   iPad mini with Retina display   arm64   iPhone 6   arm64   iPad mini 3   arm64   iPad 2   armv7   iPod touch 5   armv7   iPad mini   armv7  



























1 0
原创粉丝点击