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设备对照表:
- class-dump 的安装与使用
- class-dump的安装和使用
- class-dump 的安装和使用
- (iOS逆向工程)class-dump 安装与使用
- iOS应用安全:一:class-dump的安装和使用
- iOS逆向 class-dump的安装和使用
- class-dump工具的使用
- Class-dump安装和简单使用
- class-dump安装及基本使用
- class-dump 和 iOSOpenDev 的使用
- 使用class-dump-z
- class-dump 使用
- class-dump 使用
- class-dump 使用(转)
- class-dump使用
- class-dump工具使用
- Class-dump 安装和使用方法
- Class-dump 安装和使用方法
- VisualSVN Server的配置和使用方法
- jekyll serve 启动失败
- 超详细 接入支付宝支付实现
- 回复评论(因无法提交)
- 【前端】输入金额时如何判断数字合法
- class-dump 的安装与使用
- 笔记:读取sql文件,然后将数据批量插入数据库
- Android 高德地图开发 如何去掉路线规划上起始点图标!
- 什么是真空镀膜?
- jsonp详解—javasript/jQuery跨域请求
- 【工作笔记】Java 字符串互换判等问题
- axis2系列之services.xml文件详解
- Events
- 机器学习数据挖掘-软件、网站、课程资源知识点汇总