砸殼
從App Store上下載的ipa里面的二進(jìn)制文件是經(jīng)過加密的忧风,class-dump和Hopper Disassembler都需要用到未加密的二進(jìn)制文件建钥,所以需要我們通過砸殼得到。
我們可以通過命令查看二進(jìn)制文件是否加密
otool -l 二進(jìn)制文件路徑 | grep -B 2 crypt
其中cmd尾部為_64的是arm64架構(gòu),另一個(gè)為armv7架構(gòu)凛膏,cryptid=1表示有加密杨名,cryptid=0表示未加密。圖中是App Store上下載的加密過的的微信二進(jìn)制文件猖毫。
常用的砸殼工具有dumpdecrypted台谍、Clutch、AppCrackr吁断。
這里我們使用dumpdecrypted砸殼趁蕊。
https://github.com/stefanesser/dumpdecrypted
通過make得到的dumpdecrypted.dylib就是我們的工具。
這里我們需要用到越獄的iOS設(shè)備仔役,并且安裝好openssh和cycript掷伙。如果沒有越獄設(shè)備,可以去pp助手上下載越獄版的ipa骂因,這種ipa里面的二進(jìn)制文件是沒有加密的炎咖。
- ssh root@ip 連接到越獄設(shè)備,初始密碼默認(rèn)是alpine,首次連接請(qǐng)自行修改。
- ps -e 查看所有進(jìn)程信息
- cycript -p 進(jìn)程id 勾住進(jìn)程 (砸殼過程中是為了方便查看app的沙盒路徑)
成功勾住進(jìn)程之后乘盼,我們可以通過oc函數(shù)獲取沙盒路徑
[NSHomeDirectory() stringByAppendingString:@"/Documents"]
將bundle路徑和沙盒路徑復(fù)制保存
通過scp命令將dumpdecrypted.dylib復(fù)制的沙盒路徑:
scp dumpdecrypted.dylib路徑 root@ip:沙盒路徑
cd到沙盒路徑執(zhí)行命令砸殼:
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib bundle路徑
ls查看成果物升熊,再使用scp命令將成果物拷貝到電腦
至此,砸殼部分告一段落绸栅,我們拿到了.decrypted的砸殼后的二進(jìn)制文件