逆向破解二 - 脫殼

加殼

  • 什么是加殼?
    我們的ipa文件上傳appstore,蘋(píng)果會(huì)給我們做一個(gè)加密,其實(shí)我們運(yùn)行在內(nèi)存中的過(guò)程是一個(gè)加密的殼程序,當(dāng)然在手機(jī)中我們會(huì)對(duì)他進(jìn)行解密殼程序,來(lái)直接運(yùn)行可執(zhí)行的文件,當(dāng)然蘋(píng)果這樣做的目的是為了保護(hù)我們的程序。


    image.png

脫殼

  • 脫殼的方式
    1.硬脫殼:
    所謂的硬脫殼就是將蘋(píng)果加密的程序用算法進(jìn)行破解出來(lái),比如加殼采用的是加法,那么我們破解他就采用減法來(lái)進(jìn)行破解。
    2.動(dòng)態(tài)脫殼:
    我們知道在手機(jī)中是會(huì)將殼程序進(jìn)行破解的,那么我們可以通過(guò)一定的手段來(lái)從內(nèi)存中拿到可執(zhí)行文件,但是因?yàn)槲覀兪謾C(jī)的環(huán)境是比較復(fù)雜的,所以在iOS中我們一般采用的都是硬脫殼。


    image.png
  • 查看是否脫殼以及脫殼的工具
    1.怎樣查看脫殼?
    方法1:我們可以通過(guò)MachOView來(lái)進(jìn)行查看,怎樣下載和使用MachOView我在上一篇文章中有說(shuō)。
    我們可以在MachOView 中的Load Commands ->LC_ENCRYPTION_INFO中查看Crypt ID ,如果是0 那么就是已經(jīng)脫殼了,如果不是0那么就是加殼的。比如我如下操作:
    image.png

    但是我們知道這種方式是稍微復(fù)雜的,因?yàn)槲覀冃枰獙⑺目蓤?zhí)行文件導(dǎo)入MachOView,這種算是一種辦法但是我還是不建議用這種。
    方法2:
    我們需要安裝一個(gè)工具Clutch,具體的下載地址在:https://github.com/KJCracks/Clutch/releases
    或者我們安裝這個(gè)工具也是可以的:
    https://github.com/stefanesser/dumpdecrypted/
    一般來(lái)說(shuō)我們都是安裝的第一個(gè)工具,怎樣安裝如下:
    image.png

    如果你輸入Clutch出現(xiàn)了這樣的界面說(shuō)明你安裝成功了
    image.png

    那么我們?cè)鯓涌梢圆榭词欠衩摎ち四兀?br> 使用命令(前提是已經(jīng)連接上手機(jī),并且用mac控制手機(jī),我前面的文章有說(shuō)到)
Clutch -i

比如我的是這樣的:


image.png

如果出現(xiàn)了這樣的app就說(shuō)明你是appstore安裝的或者是沒(méi)有脫殼的,因?yàn)檫@樣的ipa即使你找到可執(zhí)行文件你還是解析不出.h文件或者.m文件不是匯編語(yǔ)言。

  • 其中dumpdecrypted怎樣安裝和使用


    image.png

    image.png
  • 注意:
    除了上述的錯(cuò)誤你可能還會(huì)出現(xiàn)沒(méi)有簽名的錯(cuò)誤,那么你需要對(duì)你的dumpdecrypted.dylib進(jìn)行簽名,我們現(xiàn)在已經(jīng)知道dumpdecrypted.dylib在/var/root目錄下,在此目錄下執(zhí)行命令:
ldid -S dumpdecrypted.dylib

這樣的話就簽了名了,在執(zhí)行上面的命令應(yīng)該就能成功了,說(shuō)明:有時(shí)候Clutch 會(huì)破解失敗這個(gè)dumpdecrypted 還是值得擁有。

對(duì)加殼app進(jìn)行破解獲取可執(zhí)行文件

1.首先查看手機(jī)中哪些app是加了殼的(我以我自己手機(jī)為例)
執(zhí)行命令:

Clutch -i

執(zhí)行結(jié)果如圖:


image.png
  1. 輸入app的序列號(hào)或者app的BundleId號(hào)(<序列號(hào)>)進(jìn)行生成ipa文件,執(zhí)行命令(包越大等待的時(shí)間就越長(zhǎng))
Clutch -d APP序號(hào)或BundleId

比如我的是:把微信給破解了


image.png

我可以到手機(jī)中找到那個(gè)ipa包,因?yàn)樗呀?jīng)把目錄打印出來(lái)了。拿到他的ipa包之后直接將ipa的包改為zip,然后直接解壓縮,在payload這個(gè)文件下就是包文件。通過(guò)顯示包內(nèi)容找到他的可執(zhí)行文件,我們用class-dump 進(jìn)行破解即可獲取頭文件,用Hopper Disassembler找他的.m文件(前面的文章有說(shuō)到)。
這是圖片展示的Clutch的使用


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景: 如果手機(jī)通過(guò)PP助手或者Cydia等越獄軟件下載的ipa文件,并不能通過(guò)MachOView、class-d...
    Mr_Bob_閱讀 6,763評(píng)論 4 7
  • iOS 如何做才安全: 1、首先,我們可以通過(guò)軟件 下載 AppStore的ipa文件(蘋(píng)果 把開(kāi)發(fā)者上傳的ipa...
    葛高召閱讀 6,864評(píng)論 0 4
  • 博客遷移到hexo
    相關(guān)函數(shù)閱讀 430評(píng)論 0 2
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,096評(píng)論 2 59
  • 雪中景 (打油詩(shī)) 大雪紛紛舞翩躚, 竹葉沙沙撥琴弦。 庭院瓊枝梅點(diǎn)點(diǎn), 疑是星星落凡間。
    金賽月閱讀 328評(píng)論 0 13

友情鏈接更多精彩內(nèi)容