1.背景##
最近正在研究iOS逆向工程,所以不可避免的要砸點(diǎn)東西出來看看,例如微信的頭文件,看看大公司的項(xiàng)目是怎么樣的.
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簡(jiǎn)單說明
dumpdecrypted
:從AppStore下載的APP都是被蘋果加密過的,可執(zhí)行文件被套上了一層保護(hù)殼,所以需要使用dumpdecrypted解密可執(zhí)行文件
class-dump
: dump:傾倒/傾卸的意思 就是用來dump目標(biāo)對(duì)象的class的工具[APP未加密的可執(zhí)行文件].它利用Objective-C語(yǔ)言的runtime特性,將存儲(chǔ)在Mach-O文件中的頭文件信息提取出來,并生成對(duì)應(yīng)的.h文件.
2.2工具安裝
dumpdecrypted
從github上下載dumpdecrypted的源碼,然后打開終端cd到下載后的dumpdecrypted目錄下執(zhí)命令:make
上面的make命令執(zhí)行完畢后,會(huì)在當(dāng)前目錄下生成一個(gè)dumpdecrypted.dylib文件,這就是等下砸殼所要用的榔(lang)頭.此文件生成一次即可,以后可以重復(fù)使用,下次砸殼時(shí)無需重新編譯
class-dump
下載class-dump-3.5.dmg后,將dmg文件里的class-dump復(fù)制到"/usr/local/bin"下,然后在Terminal中執(zhí)行sudo chmod 777 /usr/local/bin/class-dump
命令賦予其執(zhí)行條件.
3.導(dǎo)出頭文件##
- 在Mac上打開iFunBox并且用數(shù)據(jù)線連接越獄手機(jī)
- 選中User Applications下的微信,點(diǎn)擊進(jìn)入Documents目錄,然后點(diǎn)擊Copy From Mac導(dǎo)入dumpdecrypted.dylib文件
- 打開Terminal,使用ssh連接手機(jī),并切換目錄到微信的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
當(dāng)前的Documents目錄下回生成一個(gè)WeChat.decrypted文件,即砸殼后的文件,把這個(gè)文件拷貝到OSX上吧,class-dump早已饑渴難耐.
4.把WeChat.decrypted拷貝到OSX中,鄙人放在了"/Users/wlb/Desktop/網(wǎng)利金融/逆向工程/應(yīng)用"下.然后在Terminal中進(jìn)入WeChat.decrypted所在目錄,把其頭文件class-dump到"/Users/wlb/Desktop/網(wǎng)利金融/逆向工程/應(yīng)用/微信頭文件"下,并將頭文件內(nèi)容按名字排序,命令如下:
wlb:~/Desktop/網(wǎng)利金融/逆向工程/應(yīng)用$class-dump -S -s -H WeChat.decrypted -o /Users/wlb/Desktop/網(wǎng)利金融/逆向工程/應(yīng)用/微信頭文件/
就這樣我們就擁有了所有的微信頭文件了,慢慢的欣賞吧!