- 一、砸殼概述
- 砸殼: 軟件脫殼,顧名思義,就是對(duì)軟件加殼的逆操作,把軟件上存在的殼去掉(解密)
- 砸殼原理
- 提交給AppStore發(fā)布的App,都是經(jīng)過官方保護(hù)而加密,這樣可以保證機(jī)器上跑的應(yīng)用是蘋果審核通過的,也可以管理軟件授權(quán).經(jīng)過AppStore加密的應(yīng)用,我們無法通過Hopper等反編譯靜態(tài)分析,也無法Class-dump,在逆向分析過程中需要對(duì)加密的二進(jìn)制文件進(jìn)行解密才可以進(jìn)行靜態(tài)分析,這一過程就是大家熟知的砸殼(脫殼)
- 應(yīng)用砸殼:
- 一般應(yīng)用為了防止反編譯分析,會(huì)對(duì)應(yīng)用進(jìn)行加密(加殼).我們的砸殼就是解密的過程
- 靜態(tài)砸殼
- 靜態(tài)砸殼就是在已經(jīng)掌握和了解應(yīng)用的加密算法和邏輯后在不運(yùn)行殼應(yīng)用程序的前提下將殼應(yīng)用程序進(jìn)行解密處理.靜態(tài)脫殼的方法難度大,而且加密方發(fā)現(xiàn)應(yīng)用被破解后就可能會(huì)改用更加高級(jí)和復(fù)雜的加密技術(shù)
- 動(dòng)態(tài)砸殼
- 動(dòng)態(tài)砸殼就是從運(yùn)行在進(jìn)程內(nèi)存空間中的可執(zhí)行程序映像image入手,來將內(nèi)存中的內(nèi)容進(jìn)行轉(zhuǎn)儲(chǔ)處理來實(shí)現(xiàn)脫殼處理.這種方法實(shí)現(xiàn)起來相對(duì)簡單,且不必關(guān)心使用的是何種加密技術(shù)
-
二、砸殼手段
-
Clutch
- 拷貝工具到手機(jī)
- 列出可以砸殼的應(yīng)用列表 $Clutch -i
ssh root@192.168.124.12
Holothurian6P:~ root# Clutch -i
2023-04-12 17:57:39.237 Clutch[33939:1083748] command: Prints installed applications
Installed apps:
1: AsTools---簡單的筆記工具 <rn.notes.best>
2: 釘釘 <com.laiwang.DingTalk>
3: 喜馬拉雅「聽書社區(qū)」電臺(tái)有聲小說相聲評(píng)書 <com.gemd.iting>
.....
61: 藍(lán)湖 <com.magicBoard.phone>
-
- 砸殼 $Clutch –d 應(yīng)用ID
Clutch -d 61
2023-04-12 17:58:09.878 Clutch[33940:1083821] command: Dump specified bundleID into .ipa file
Zipping Runner.app
Could not obtain mach port, either the process is dead (codesign error?) or entitlements were not properly signed!
Failed to dump <Runner> with arch arm64
2023-04-12 17:58:11.909 Clutch[33940:1083833] failed operation :(
2023-04-12 17:58:11.909 Clutch[33940:1083833] application <NSOperationQueue: 0x100e675e0>{name = 'NSOperationQueue 0x100e675e0'}
Failed to dump <Runner>
2023-04-12 17:58:11.910 Clutch[33940:1083833] failed operation :(
2023-04-12 17:58:11.910 Clutch[33940:1083833] application <NSOperationQueue: 0x100e675e0>{name = 'NSOperationQueue 0x100e675e0'}
Zipping Flutter.framework
Zipping App.framework
FAILED: <Runner bundleID: com.magicBoard.phone>
Finished dumping com.magicBoard.phone in 5.0 seconds
- 砸殼結(jié)束后、文件放在
/private/var/mobile/Documents/Dumped/
- 如果砸殼中途退出、那么將會(huì)出現(xiàn)在緩存中
/private/var/tmp/clutch/
-
dumpdecrypted
- 官網(wǎng) :GitHub - stefanesser/dumpdecrypted: Dumps decrypted mach-o files from encrypted iPhone applications from memory to disk. This tool is necessary for security researchers to be able to look under the hood of encryption. 直接Git Clone
- 通過Make 編譯生成動(dòng)態(tài)庫 遠(yuǎn)程拷貝到手機(jī)
- 通過DYLD_INSERT_LIBRARIES 環(huán)境變量插入動(dòng)態(tài)庫執(zhí)行,載入某個(gè)進(jìn)程
- DYLD_INSERT_LIBRARIES=庫路徑(庫的可執(zhí)行文件) MachO路徑
-
frida-iOS-dump (利用fride加載腳本砸殼)
- 安裝frida. Mac和iPhone都需要安裝
- 下載frida- iOS-dump腳本工具
- 執(zhí)行的是dump.py參數(shù)是應(yīng)用的名稱/BundleID
- lldb 動(dòng)態(tài)砸殼
- 該種方式采用運(yùn)行中讀取進(jìn)程的解密代碼段信息、拷貝出來、再替換原包中的指定偏移量內(nèi)容,手動(dòng)將crypted字段改為0、達(dá)到砸殼目的.
總結(jié):
使用過的砸殼方式有四種,根據(jù)防護(hù)手段不同、所以有些砸殼方式并不是萬能的.文章來源地址http://www.zghlxwxcb.cn/news/detail-424946.html
- dumpdecripted
- Clutch
- frida- iOS-dump
- lldb動(dòng)態(tài)砸殼
文章來源:http://www.zghlxwxcb.cn/news/detail-424946.html
到了這里,關(guān)于19、iOS砸殼概述的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!