很久沒有發(fā)文章了,最近沉迷逆向無法自拔,開始寫點東西做個小總結(jié)吧,后續(xù)慢慢更新吧,全當(dāng)記錄,共同學(xué)習(xí)。
方法一、frida
frida是一個利器,除了砸殼還有很多作用,不僅在iOS上用處很大,在Android上更加厲害,想進一步了解的可以自行搜索研究。
步驟1、終端執(zhí)行命令安裝frida
sudo pip install frida? ? ?【這里是Python API binding】
sudo pip install frida-tools? 【這里是frida 命令行工具】
二者缺一不可,這是2018年07月12日最新版本的frida上述方法已廢棄
pip3 install frida? ? ?【這里是Python API binding】
pip3 install frida-tools? 【這里是frida 命令行工具】
2020年8月24更新
步驟2、在大神這里下載砸殼的腳本,然后cd到目錄中【前面鏈接是python2的腳本,這里是大神python3的腳本】
【2020年8月24更新:直接用python3的腳本】
sudo pip install -r ./requirements.txt --upgrade 【這里是安裝腳本中依賴的庫,./requirements.txt路徑根據(jù)自己的文件路徑修改】sudo pip install -r ./requirements.txt
如果你的設(shè)備連接密碼做了修改需要在目錄中的dump.py里面將Password改成你設(shè)置的密碼。
步驟3、設(shè)置手機端口連接
iproxy 2222 22
步驟4、再打開一個電腦命令行終端,新建一個文件夾,cd進去,準(zhǔn)備接受要砸殼出來的iPA文件
步驟5、將dump.py腳本拖入命令行終端,在后面輸入要砸殼的App名稱或者bundleID
./dump.py QQ? 【./dump.py路徑根據(jù)自己的文件路徑修改】
即可拿到砸殼出來的iPA文件了。
【注:手機上需要砸殼的App要運行起來】
另外一個大神這里有更加簡便的方法,但是我沒來得及嘗試,各位有興趣可以去研究研究。
方法二、Clutch
Clutch是一個比較經(jīng)典的砸殼工具了,但是由于很多App都不能砸殼成功導(dǎo)致用戶逐漸減少,但是也可以拿來一用。
步驟1、下載clutch源碼
步驟2、編譯工程生成clutch執(zhí)行文件

步驟3、將clutch執(zhí)行文件拷貝到手機里
可以使用命令
scp ./clutch【路徑視自己clutch路徑而定】 root@192.168.188.9:/usr/bin 【視自己手機IP而定】
或者直接使用第三方助手將clutch拖入到/usr/bin 路徑下
步驟4、連接設(shè)備,cd到clutch路徑下
ssh root@192.168.188.9
cd /usr/bin
步驟5、查看手機上的App
clutch -i
步驟6、輸入app前面對應(yīng)的序號,開始砸殼
clutch -d 2
得到砸殼出來的iPA文件,導(dǎo)出到電腦上即可

方法三、dumpdecrypted
這個方法砸殼App不會生成iPA文件,生成的是decrypted后綴的文件。
步驟1、下載dumpdecrypted
步驟2、終端輸入cd到下載的目錄,再輸入make得到dumpdecrypted.dylib文件
步驟3、連接設(shè)備
ssh root@192.168.188.9
步驟4、尋找要砸殼的App
ps -e? 【得到所有手機運行的app進程】
得到路徑,先做保存,之后有用
1890 ?? 0:14.42 /var/mobile/Containers/Bundle/Application/CBE24EFB-D045-4F10-ACB5-7E7B0794C5E9/WeChat.app/WeChat
步驟5、進入到進程中
cycript -p 1890
[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]? ??
/var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/
得到路徑,先做保存,之后有用
步驟6、退出手機連接,注入動態(tài)庫
scp ./dumpdecrypted.dylib root@192.168.188.9:/var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/
第一個是dumpdecrypted.dylib路徑,第二個是第二步得到的路徑
步驟7、再次連接設(shè)備砸殼
ssh root@192.168.188.9
cd /var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/?
【cd 到第二步得到的路徑下】
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/CBE24EFB-D045-4F10-ACB5-7E7B0794C5E9/WeChat.app/WeChat?
【后面參數(shù)是第一步得到的路徑】
步驟8、導(dǎo)出得到的decrypted后綴文件
scp?root@192.168.188.9:/var/mobile/Containers/Data/Application/A28D18B7-37FF-43D9-B1F0-E6E0EAD5794A/Documents/WeChat.decrypted?/Users/bean/Desktop/decrypted
【第一個參數(shù)是第二步得到的路徑,第二個參數(shù)是電腦桌面路徑】
也可以使用第三方助手直接找到路徑導(dǎo)出
檢驗一下自己的成果吧。
三種方式得到的文件,均可使用終端輸入命令檢測
otool -l xxx 【得到的可執(zhí)行文件路徑】
三個砸殼方法各有優(yōu)劣,就目前來看frida更適合大多數(shù)的App,但是環(huán)境集成也更加復(fù)雜,工欲善其事,必先利其器,準(zhǔn)備功夫都是必要的。
菜鳥走向大牛,大家共同前進,如果覺得不錯,請給個贊/關(guān)注。
一起交流學(xué)習(xí),有問題隨時歡迎聯(lián)系,郵箱:383708669@qq.com