1. 程式人生 > >IOS逆向-砸殼筆記

IOS逆向-砸殼筆記

fan developer eve shu ... rec blank dyld 3.6

本人ios10.3.1 iphone6越獄機。
方案三個。

第一、dumpdecrypted.dylib

1. ssh到越獄機上,看WeChat可執行文件在哪。

# ps aux|grep WeChat // 需要運行一下微信
mobile 33539 0.0 5.4 1556320 54512 ?? Ss 9:56AM 4:03.60 /var/containers/Bundle/Application/803BCF43-5FC1-4A35-90CC-7E47C4C7307E/WeChat.app/WeChat
2. ssh到越獄機上,看其Documents目錄在哪。

# cycript -p WeChat // 貌似得點一下iphone裏的微信,不然會卡住。

cy# NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]
@"/var/mobile/Containers/Data/Application/CDA3D8B1-CBEE-4A35-B2A6-2FB733540511/Documents"
3. mac下,下載:dumpdecrypted 並make出dumpdecrypted.dylib。 然後把dumpdecrypted.dylib用scp拷到iphone的上面步驟2的目錄下。(實操中在~目錄下也成了.)
4. 砸殼:
# DYLD_INSERT_LIBRARIES=/var/mobile/Containers/Data/Application/CDA3D8B1-CBEE-4A35-B2A6-2FB733540511/Documents/dumpdecrypted.dylib /var/containers/Bundle/Application/803BCF43-5FC1-4A35-90CC-7E47C4C7307E/WeChat.app/WeChat
註:實操中dumpdecrypted.dylib放~目錄也成了,即:DYLD_INSERT_LIBRARIES=~/dumpdecrypted.dylib ....
砸殼成功後,會在當前目錄下生成砸殼後的的文件 WeChat.decrypted。
註:此方法 解密(砸殼)的僅這個WeChat.app/WeChat 。並不是整個WeChat.app。
5. 遇到的問題:
dyld: could not load inserted library ‘dumpdecrypted.dylib’ because no suitable image found. Did find: dumpdecrypted.dylib: required code signature missing for ‘dumpdecrypted.dylib’
解決方法,mac下:
## 列出可簽名證書
# security find-identity -v -p codesigning
## 選一個證書為dumpecrypted.dylib簽名
# codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)" dumpdecrypted.dylib
然後把簽名後的dumpdecrypted.dylib拷到iphone上。重復步驟4.
6. 怎麽證明砸出來的WeChat.decrypted是成功解密(脫殼)了的?
把WeChat.decrypted拷到mac上,然後

# otool -l WeChat.decrypted | grep -B 2 crypt
WeChat.decrypted:
--
cmd LC_ENCRYPTION_INFO_64
cmdsize 24
cryptoff 16384
cryptsize 59817984
cryptid 0 // <--- 0表示解密成功。1表示未成功

7. 順便:在mac下借助 class-dump ,把脫殼文件dump出所有的OC頭文件:

# ./class-dump -s -S -H ./WeChat.decrypted -o ./headers




IOS逆向-砸殼筆記