砸殼
從App Store上下載的ipa里面的二進制文件是經過加密的,class-dump和Hopper Disassembler都需要用到未加密的二進制文件,所以需要我們通過砸殼得到。
我們可以通過命令查看二進制文件是否加密
otool -l 二進制文件路徑 | grep -B 2 crypt
砸殼前.png
其中cmd尾部為_64的是arm64架構,另一個為armv7架構,cryptid=1表示有加密,cryptid=0表示未加密。圖中是App Store上下載的加密過的的微信二進制文件。
常用的砸殼工具有dumpdecrypted、Clutch、AppCrackr。
這里我們使用dumpdecrypted砸殼。
https://github.com/stefanesser/dumpdecrypted
通過make得到的dumpdecrypted.dylib就是我們的工具。
這里我們需要用到越獄的iOS設備,并且安裝好openssh和cycript。如果沒有越獄設備,可以去pp助手上下載越獄版的ipa,這種ipa里面的二進制文件是沒有加密的。
- ssh root@ip 連接到越獄設備,初始密碼默認是alpine,首次連接請自行修改。
- ps -e 查看所有進程信息
- cycript -p 進程id 勾住進程 (砸殼過程中是為了方便查看app的沙盒路徑)
ssh.png
進程id.png
勾住進程.png
成功勾住進程之后,我們可以通過oc函數獲取沙盒路徑
[NSHomeDirectory() stringByAppendingString:@"/Documents"]
沙盒路徑.png
將bundle路徑和沙盒路徑復制保存
通過scp命令將dumpdecrypted.dylib復制的沙盒路徑:
scp dumpdecrypted.dylib路徑 root@ip:沙盒路徑
cp錘子.png
cd到沙盒路徑執行命令砸殼:
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib bundle路徑
砸殼.png
ls查看成果物,再使用scp命令將成果物拷貝到電腦
拷貝出來.png
至此,砸殼部分告一段落,我們拿到了.decrypted的砸殼后的二進制文件
砸殼后.png