砸殼
提交給Appstore發(fā)布的App,都經(jīng)過官方保護而加密粉私,這樣可以保證機器上跑的應用是蘋果審核過的顽腾,也可以管理軟件授權(quán)。經(jīng)過App Store加密的應用,我們無法通過Hopper等反編譯靜態(tài)分析抄肖,也無法Class-Dump久信,在逆向分析過程中需要對加密的二進制文件進行解密才可以進行靜態(tài)分析,這一過程就是大家熟知的砸殼(脫殼)漓摩。
應用砸殼(解密)分為:
1.靜態(tài)砸殼
靜態(tài)砸殼就是在已經(jīng)掌握和了解到了殼應用的加密算法和邏輯后在不運行殼應用程序的前提下將殼應用程序進行解密處理裙士。靜態(tài)脫殼的方法難度大,而且加密方發(fā)現(xiàn)應用被破解后就可能會改用更加高級和復雜的加密技術(shù)管毙。
2.動態(tài)砸殼
動態(tài)砸殼就是從運行在進程內(nèi)存空間中的可執(zhí)行程序映像(image)入手腿椎,來將內(nèi)存中的內(nèi)容進行轉(zhuǎn)儲(dump)處理來實現(xiàn)脫殼處理。這種方法實現(xiàn)起來相對簡單夭咬,且不必關(guān)心使用的是何種加密技術(shù)啃炸。
砸殼原理
iOS應用運行原理
根據(jù)iOS應用運行原理,砸殼的原理其實就是將內(nèi)存中解密后的MatchO拷貝出來。
砸殼工具Clutch的安裝和使用
Clutch是由KJCracks開發(fā)的一款開源砸殼工具卓舵。工具支持iPhone南用、iPod Touch、iPad掏湾,該工具需要使用iOS8.0以上的越獄手機應用训枢。
Clutch的安裝
下載Clutch
下載Release下的2.0.4
Clutch的使用
一.映射端口OpenSSH相關(guān)知識
二.拷貝Clutch-2.0.4到手機,并重命名為Clutch
三.列出可砸殼應用列表Clutch -i
四.砸殼Clutch -d 應用ID
砸殼成功后會在這個目錄下:
砸殼工具dumpdecrypted的使用
Github開源工具。 dumpdecrypted這個工具就是通過建立一個名為dumpdecrypted.dylib的動態(tài)庫忘巧,插入目標應用實現(xiàn)脫殼
一恒界、直接git clone
二、通過Make編譯生成動態(tài)庫就
三砚嘴、拷貝到遠程手機
四十酣、通過DYLD_INSERT_LIBRARIES 環(huán)境變量插入動態(tài)庫執(zhí)行(DYLID_INSRT_LIBRARY 能讓動態(tài)庫臨時依附到某個應用去執(zhí)行)
砸殼工具frida-ios-dump的使用
該工具基于frida提供的強大功能通過注入js實現(xiàn)內(nèi)存dump然后通過python自動拷貝到電腦生成ipa文件。
Mac安裝:
1际长、查看python版本,Mac都是自帶的(python -V)耸采。
2、查看pip版本
安裝pip sudo pip install frida-tools
關(guān)于安裝中,可能會有報錯,可以查看錯誤解決
越獄手機上安裝:
在cydia里添加源:https://build.frida.re
然后直接安裝frida
Mac配置ios-dump
1.下載腳本
$sudo git clone https://github.com/AloneMonkey/frida-ios-dump
(默認是2.x版本,如果是3.x版本的話,可以需要checkout 到3.x版本)
2.修改dump.py的User配置
3.進入目錄安裝依賴
$sudo pip install -r /opt/dump/frida-ios-dump/requirements.txt –upgrade
有可能報錯會有如下錯誤:
解決方案:
降低 prompt-toolkit 版本
先卸載
sudo pip install prompt-toolkit==1.0.6
4.使用
frida-ps -U 列出Display name(應用名稱)
./dump.py 微信 參數(shù)用Display name或者Bundle ID都行