文章砸殼使用到了ssh連接手機(jī),Cycript注入進(jìn)程查看應(yīng)用的一些路勁,以及越獄的手機(jī),所以在開始對(duì)應(yīng)用進(jìn)行砸殼之前,要對(duì)這些做一些提前的準(zhǔn)備,本文就不一一細(xì)說(shuō)安裝方式了.我們從AppStore上面下載的應(yīng)用都是加密的.要想導(dǎo)出應(yīng)用的頭文件,就得先對(duì)它進(jìn)行脫殼.脫殼需要的準(zhǔn)備工具是dumpdecrypted,這是github上面的一個(gè)開源工具.地址如下
https://github.com/stefanesser/dumpdecrypted
剛下載下來(lái)的時(shí)候,里面只有三個(gè)文件,這三個(gè)文件,里面有Makefile文件.Makefile文件里面本身就指定了編譯的先后順序,這個(gè)文件有一個(gè)好處,你只要寫好了,只需要使用大多數(shù)IDE都有的命令,make命令,這樣整個(gè)工程就會(huì)完全自動(dòng)編譯.所以我們需要在終端對(duì)這文件執(zhí)行下make指令.
我們打開終端,cd到這個(gè)目錄下.執(zhí)行完make指令之后,就會(huì)多出來(lái)兩個(gè)文件,一個(gè)dumpdecrypted.dylib動(dòng)態(tài)庫(kù)文件和dumpdecrypted.o的可執(zhí)行文件
注入dumpdecrypted.dylib到沙盒進(jìn)行砸殼
我們已經(jīng)得到了一個(gè)dumpdecrypted.dylib
這樣的一個(gè)動(dòng)態(tài)庫(kù),把這個(gè)動(dòng)態(tài)庫(kù)注入到我們?cè)姜z手機(jī)的沙盒里面,因?yàn)樯澈惺强蓪懙?我們需要把從AppStore下載的應(yīng)用中的可執(zhí)行文件,砸殼到沙盒里面進(jìn)行導(dǎo)出.
1.以對(duì)微信砸殼為實(shí)例,首先新建一個(gè)終端,用ssh連接手機(jī)之后,使用ps -e
我們可以看到很多的進(jìn)程,其中在/var
目錄下就可以看到微信的可執(zhí)行文件位置.
2.重新新建一個(gè)終端,把這個(gè)WeChat這個(gè)可執(zhí)行文件通過(guò)scp指令拷貝到桌面文件夾,在桌面文件夾里面使用otool -l 可執(zhí)行文件 | grep crypt
可以看看它是否是加過(guò)殼的.如果cryptid顯示的是1就證明是有殼的,如果顯示的是0表示已砸過(guò)殼.
3.通過(guò)Cycript指令注入WeChat這個(gè)進(jìn)程.然后使用NSHomeDirectory()查看它的沙盒路勁,我們要將dumpdecrypted.dylib
這個(gè)動(dòng)態(tài)庫(kù)注入到沙盒的Documents文件夾里面.
4.找到動(dòng)態(tài)庫(kù)的位置,通過(guò)scp把dumpdecrypted.dylib
拷貝到沙盒路勁的Documents文件夾里面去.中間的root接ip地址是你手機(jī)的wifi地址,要在一個(gè)局域網(wǎng)里面,我這邊的wifi是連接的自己mac共享出的網(wǎng)絡(luò).拷貝期間提示要密碼輸入,默認(rèn)都是alpine
5.接著到沙盒里面ls
查看是否已經(jīng)拷貝到了里面.查看到已經(jīng)拷貝進(jìn)來(lái)了,我們就可以砸殼了.
6.砸殼,使用DYLD_INSERT_LIBRARIES
這樣的指令,把我們拷貝在沙盒里面的dumpdecrypted.dylib
插入到WeChat這個(gè)進(jìn)程里.完了之后,在Documents文件夾里面就會(huì)多出一個(gè)decrypted
為后綴的文件,那么這個(gè)文件就是砸過(guò)殼的文件,我們只要把它拷貝到桌面然后使用其它方式,導(dǎo)出它的頭文件就行了.
導(dǎo)出頭文件
1.繼續(xù)使用scp把我們沙盒里面這個(gè)砸過(guò)殼的文件導(dǎo)出來(lái).
scp root@192.168.2.15:"/var/mobile/Containers/Data/Application/E8F80CE4-F6B8-42A9-9739-8F15875CC7C9/Documents/WeChat.decrypted" /Users/James/Desktop/123
2.完了之后,在我們使用class-dump來(lái)導(dǎo)出頭文件,可以在github上面把class-dump下載下來(lái),打開它進(jìn)行編譯.然后選擇里面的文件,把class-dump文件拷貝到和砸過(guò)殼的文件夾下就行.
https://github.com/nygard/class-dump
3.使用終端到這個(gè)文件下面可以驗(yàn)證WeChat.decrypted
它是否已經(jīng)砸過(guò)殼,指令就是前面講過(guò)的otool -l 可執(zhí)行文件 | grep crypt
4.導(dǎo)出頭文件,在當(dāng)前文件夾下使用./class-dump -SsH 砸過(guò)殼的執(zhí)行文件 -o 導(dǎo)出的頭文件存放處
這樣就可以完成咱們的操作了.可以看到整個(gè)頭文件文件夾還是蠻大的.