[iOS逆向]18冕杠、砸殼

軟件脫殼,顧名思義眯分,就是對軟件加殼的逆操作拌汇,把軟件上存在的殼去掉(解密)。

1弊决、砸殼原理

1.1噪舀、應(yīng)用加殼(加密)

提交給 Appstore 發(fā)布的 App ,都經(jīng)過官方保護(hù)而加密飘诗,這樣可以保證機(jī)器上跑的應(yīng)用是蘋果審核過的与倡,也可以管理軟件授權(quán)。經(jīng)過 App Store 加密的應(yīng)用昆稿,我們無法通過 Hopper 等反編譯靜態(tài)分析纺座,也無法 Class-Dump ,在逆向分析過程中需要對加密的二進(jìn)制文件進(jìn)行解密才可以進(jìn)行靜態(tài)分析溉潭,這一過程就是大家熟知的砸殼(脫殼)

1.2净响、應(yīng)用砸殼(解密)
1.2.1少欺、靜態(tài)砸殼

靜態(tài)砸殼就是在已經(jīng)掌握和了解到了殼應(yīng)用的加密算法和邏輯后在不運行殼應(yīng)用程序的前提下將殼應(yīng)用程序進(jìn)行解密處理。靜態(tài)脫殼的方法難度大馋贤,而且加密方發(fā)現(xiàn)應(yīng)用被破解后就可能會改用更加高級和復(fù)雜的加密技術(shù)

1.2.2赞别、動態(tài)砸殼

動態(tài)砸殼就是從運行在進(jìn)程內(nèi)存空間中的可執(zhí)行程序映像(image)入手,來將內(nèi)存中的內(nèi)容進(jìn)行轉(zhuǎn)儲(dump)處理來實現(xiàn)脫殼處理配乓。這種方法實現(xiàn)起來相對簡單仿滔,且不必關(guān)心使用的是何種加密技術(shù)。

iOS應(yīng)用運行原理

2犹芹、砸殼

2.1崎页、Clutch

Clutch 是由 KJCracks 開發(fā)的一款開源砸殼工具。工具支持iPhone 腰埂、iPod Touch飒焦、iPad,該工具需要使用 iOS8.0 以上的越獄手機(jī)應(yīng)用盐固。
1荒给、將 Clutch 拷貝到手機(jī)目錄下
scp -P 12345 ./Clutch-2.0.4 root@localhost:/usr/bin/Clutch

Enter passphrase for key '/Users/shiji/.ssh/id_rsa': 
Clutch-2.0.4                                  100% 1204KB  30.8MB/s   00:00 

2、進(jìn)入手機(jī)目錄 /usr/bin
chmod +x Clutch
3刁卜、終端輸入 Clutch

Usage: Clutch [OPTIONS]
-b --binary-dump <value> Only dump binary files from specified bundleID 
-d --dump <value>        Dump specified bundleID into .ipa file 
-i --print-installed     Print installed applications 
   --clean               Clean /var/tmp/clutch directory 
   --version             Display version and exit 
-? --help                Display this help and exit 
-n --no-color            Print with colors disabled 

4志电、查看需要砸殼的 AppbundleID
Clutch -i

...
7: 微信 <com.tencent.xin>
···

5、對 WeChat 進(jìn)行砸殼
Clutch -d 7
6蛔趴、將 WeChat 拷貝到電腦
scp -P 12345 root@localhost:/var/containers/Bundle/Application/85591C5D-5029-414F-9DC4-79C0DACF8518/WeChat.app/WeChat ./WeChat

2.2挑辆、dumpdecrypted
2.2.1、DYLD_INSERT_LIBRARIES 注入

1孝情、新建 Inject.framework

Inject.framework

編譯生成 Inject.framework
編譯結(jié)果

2鱼蝉、在當(dāng)前目錄拷貝 Inject.framework/var/root
scp -r -P 12345 Insert.framework root@localhost:/var/root

Enter passphrase for key '/Users/shiji/.ssh/id_rsa': 
Insert                                        100%   66KB  10.5MB/s   00:00    
Insert.h                                      100%  425   282.0KB/s   00:00    
module.modulemap                              100%   93    72.0KB/s   00:00    
Info.plist                                    100%  784   531.7KB/s   00:00 

3、usb 端口連接手機(jī)
ssh -p 12345 root@localhost
4箫荡、切換 mobile 用戶
su mobile
5魁亦、查看當(dāng)前 InjectDemo 的文件路徑
ps -A | grep InjectDemo

9561 ??         0:00.16 /var/containers/Bundle/Application/48514F00-4EA0-4D27-B007-AB0D52B9FEEB/InjectDemo.app/InjectDemo
 9563 ttys000    0:00.01 grep InjectDemo

6、注入動態(tài)庫
DYLD_INSERT_LIBRARIES=Insert.framework/Insert /var/containers/Bundle/Application/48514F00-4EA0-4D27-B007-AB0D52B9FEEB/InjectDemo.app/InjectDemo

13:29:05.033 InjectDemo[9564:1084251] 注入成功--------------------------------------

備注:InjectDemo 是自己編譯運行的 Demo羔挡,Clutch 微信和抖音都沒有成功洁奈,據(jù)說只支持 iOS12 以下的版本

2.2.2、dumpdecrypted

1绞灼、在 Cydia 應(yīng)用中搜索 Cycript 安裝

Cycript

2利术、ssh 登錄手機(jī)
ssh -p 12345 root@localhost
3、切換 mobile 用戶
su mobile
4低矮、查看砸殼APP路徑
ps -e | grep WeChat

 9363 ??       372:47.00 /var/containers/Bundle/Application/85591C5D-5029-414F-9DC4-79C0DACF8518/WeChat.app/WeChat
10861 ??         0:03.62 /var/containers/Bundle/Application/85591C5D-5029-414F-9DC4-79C0DACF8518/WeChat.app/WeChat
10884 ttys000    0:00.01 grep WeChat

5印叁、看 APPDocuments 路徑:先用 cycript -p AppName 鉤住 APP
cycript -p WeChat
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

["/var/mobile/Containers/Data/Application/0015C950-12C5-40B6-8F6D-E816C43F24E0/Documents"]

6、將 dumpdecrypted.dylib 拷貝到手機(jī) app 目錄下
scp -P 12345 dumpdecrypted.dylib mobile@localhost:/var/mobile/Containers/Data/Application/0015C950-12C5-40B6-8F6D-E816C43F24E0/Documents/

執(zhí)行到此處失敗了,沒查明原因轮蜕,可能也是手機(jī)版本過高的原因

最終會在 /var/mobile/ 下面生成脫殼App

2.2.3昨悼、frida-ios-dump

該工具基于 frida 提供的強大功能通過注入js 實現(xiàn)內(nèi)存 dump 然后通過 python 自動拷貝到電腦生成 ipa 文件。
1肠虽、安裝 frida 工具
sudo pip3 install frida-tools
安裝過程可能會遇到以下情況:

  • 目錄不歸當(dāng)前用戶所有幔戏。請檢查該目錄的權(quán)限和所有者.需要 sudo-H 標(biāo)志
  • set-homeHOME 變量設(shè)為目標(biāo)用戶的主目錄

2玛追、添加源税课,打開 Cydia 選擇軟件源,點擊編輯-添加
https://build.frida.re
選擇變更痊剖,點擊 Frida 安裝
3韩玩、電腦終端,查看進(jìn)程
frida-ps
進(jìn)入到USB 進(jìn)程
frida-ps -U

...
 9363  微信                                           
10861  微信                                           
11916  抖音                                           
12361  百度網(wǎng)盤        

進(jìn)入到微信陆馁,可以打印出當(dāng)前進(jìn)程的所有對象
frida -U 微信

微信

4找颓、安裝 frida-ios-dump 相關(guān)內(nèi)容
sudo pip3 install -r requirements.txt --upgrade
如果在安裝的過程中出現(xiàn)錯誤

ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly

需要升級一下 pip3
curl https://bootstrap.pypa.io/get-pip.py | python3
5、./dump.py 微信
在當(dāng)前目錄下回生成 微信.ipa
6叮贩、查看 ipa
解壓 微信.ipa
cd 到當(dāng)前目錄 WeChat.app
otool -l WeChat | grep cryptid

cryptid 0

7击狮、讓手機(jī)支持中文,將 .inputrc 文件拷貝到手機(jī)中

set convert-meta off
set output-meta on
set meta-flag on
set input-meta on

scp -P 12345 .inputrc root@localhost:/var/root/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末益老,一起剝皮案震驚了整個濱河市彪蓬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捺萌,老刑警劉巖档冬,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異桃纯,居然都是意外死亡酷誓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門态坦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盐数,“玉大人,你說我怎么就攤上這事伞梯∶登猓” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵壮锻,是天一觀的道長琐旁。 經(jīng)常有香客問我,道長猜绣,這世上最難降的妖魔是什么灰殴? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上牺陶,老公的妹妹穿的比我還像新娘伟阔。我一直安慰自己,他們只是感情好掰伸,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布皱炉。 她就那樣靜靜地躺著,像睡著了一般狮鸭。 火紅的嫁衣襯著肌膚如雪合搅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天歧蕉,我揣著相機(jī)與錄音灾部,去河邊找鬼。 笑死惯退,一個胖子當(dāng)著我的面吹牛赌髓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播催跪,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锁蠕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了懊蒸?” 一聲冷哼從身側(cè)響起荣倾,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎榛鼎,沒想到半個月后逃呼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡者娱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年抡笼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片黄鳍。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡推姻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出框沟,到底是詐尸還是另有隱情藏古,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布忍燥,位于F島的核電站拧晕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏梅垄。R本人自食惡果不足惜厂捞,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧靡馁,春花似錦欲鹏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胧弛,卻和暖如春尤误,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叶圃。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工袄膏, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人掺冠。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像码党,于是被迫代替她去往敵國和親德崭。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容