1.背景##
最近正在研究iOS逆向工程,所以不可避免的要砸点东西出来看看,例如微信的头文件,看看大公司的项目是怎么样的.
2.工具介绍##
1.dumpdecrypted地址: https://github.com/stefanesser/dumpdecrypted
2.class-dump地址: http://stevenygard.com/projects/class-dump/
3.iFunBox:http://dl.i-funbox.com/
2.1简单说明
dumpdecrypted
:从AppStore下载的APP都是被苹果加密过的,可执行文件被套上了一层保护壳,所以需要使用dumpdecrypted解密可执行文件
class-dump
: dump:倾倒/倾卸的意思 就是用来dump目标对象的class的工具[APP未加密的可执行文件].它利用Objective-C语言的runtime特性,将存储在Mach-O文件中的头文件信息提取出来,并生成对应的.h文件.
2.2工具安装
dumpdecrypted
从github上下载dumpdecrypted的源码,然后打开终端cd到下载后的dumpdecrypted目录下执命令:make
上面的make命令执行完毕后,会在当前目录下生成一个dumpdecrypted.dylib文件,这就是等下砸壳所要用的榔(lang)头.此文件生成一次即可,以后可以重复使用,下次砸壳时无需重新编译
class-dump
下载class-dump-3.5.dmg后,将dmg文件里的class-dump复制到"/usr/local/bin"下,然后在Terminal中执行sudo chmod 777 /usr/local/bin/class-dump
命令赋予其执行条件.
3.导出头文件##
- 在Mac上打开iFunBox并且用数据线连接越狱手机
- 选中User Applications下的微信,点击进入Documents目录,然后点击Copy From Mac导入dumpdecrypted.dylib文件
- 打开Terminal,使用ssh连接手机,并切换目录到微信的documents目录下
wlb:~$ssh root@192.168.11.51
MYiPhone:~ root# cd /var/mobile/Containers/Data/Application/9716A142-A5C0-4F91-9268-BBD3DBBFDB52/Documents/
MYiPhone:/var/mobile/Containers/Data/Application/9716A142-A5C0-4F91-9268-BBD3DBBFDB52/Documents root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/03FDA284-F566-40D0-B67B-512BC04E44EE/WeChat.app/WeChat
Paste_Image.png
当前的Documents目录下回生成一个WeChat.decrypted文件,即砸壳后的文件,把这个文件拷贝到OSX上吧,class-dump早已饥渴难耐.
4.把WeChat.decrypted拷贝到OSX中,鄙人放在了"/Users/wlb/Desktop/网利金融/逆向工程/应用"下.然后在Terminal中进入WeChat.decrypted所在目录,把其头文件class-dump到"/Users/wlb/Desktop/网利金融/逆向工程/应用/微信头文件"下,并将头文件内容按名字排序,命令如下:
wlb:~/Desktop/网利金融/逆向工程/应用$class-dump -S -s -H WeChat.decrypted -o /Users/wlb/Desktop/网利金融/逆向工程/应用/微信头文件/
就这样我们就拥有了所有的微信头文件了,慢慢的欣赏吧!
Paste_Image.png
网友评论