脫殼

為什么需要脫殼?是因?yàn)槲覀冊谏蟼鱝pp到蘋果商店的時(shí)候AppStore已經(jīng)是幫我們加殼的了,如下圖:

加殼

什么又是加殼?

利用特殊的算法,對可執(zhí)行文件的編碼進(jìn)行改變(比如壓縮,加密),以達(dá)到保護(hù)代碼的目的

加殼

什么又是脫殼?

摘掉殼程序,將未加密的可執(zhí)行文件還原出來,有些人也稱為砸殼,脫殼只要有兩種方法:硬脫殼,動態(tài)脫殼

脫殼

iOS中的脫殼工具

iOS中有很多好用的脫殼工具

Clutch

dumpdecrypted

AppCrackr、Crackulous

如何驗(yàn)證可執(zhí)行文件是否已經(jīng)脫殼

查看Load Commands -> LC_ENCRYPTION_INFO -> Crypt ID的值,0代表未加密

通過otool命令行也可以:otool -l 可執(zhí)行文件路徑 | grep crypt

Clutch配置

下載最新的Release版本

建議去掉版本號,改名為Clutch,將Clutch文件拷貝到iPhone/usr/bin 目錄中

Cluth

如果在iPhone上執(zhí)行Clutch指令時(shí)候,權(quán)限不夠,賦予可執(zhí)行的權(quán)限

賦予權(quán)限

Clutch使用

列出已安裝的APP:Clutch -i

clutch -i

輸入APP序號或者Bundle Id進(jìn)行脫殼操作:Clutch -d App 序號或者Bundled

脫殼

脫殼成功后會生成過一個(gè)ipa文件

脫殼成功

dumpdecrypted

下載源代碼目錄執(zhí)行make指令進(jìn)行編譯,獲得dylib動態(tài)庫文件

make

將dylib文件拷貝到iPhone上(如果是root用戶,建議放var/root目錄),然后終端進(jìn)入dylib所在的目錄,使用環(huán)境變量DYLD_INSERT_LIBRARIES將dylib注入到需要脫殼的可執(zhí)行文件(可執(zhí)行文件路徑可以通過ps -A查看獲?。?/p>

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib? 可執(zhí)行文件路徑

脫殼

.decrypted 文件就是脫殼后的可執(zhí)行文件

可執(zhí)行文件

在使用過程中,可能會遇到如下錯(cuò)誤

dumdecrypted細(xì)節(jié)

原因:對dylib所在的文件夾權(quán)限不夠

解決方案:將dylib放在用戶所在文件夾,比如如果是root用戶,將dylib放在/var/root 目錄,如果是mobile用戶,請將dylib放在/var/mobile目錄;如果是mobile用戶,請將dylib放在/var/mobile目錄

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

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

  • 什么是加殼? 利用特殊的算法,對可執(zhí)行文件的編碼進(jìn)行改變(比如壓縮、加密),以達(dá)到保護(hù)程序代碼的目的。 什么是脫殼...
    迷心迷閱讀 881評論 2 1
  • 一、加殼 什么是加殼?利用特殊的算法,對可執(zhí)行文件的編碼進(jìn)行改變(比如壓縮、加密),以達(dá)到保護(hù)程序代碼的目的 二、...
    阿凡提說AI閱讀 1,463評論 0 1
  • 背景: 如果手機(jī)通過PP助手或者Cydia等越獄軟件下載的ipa文件,并不能通過MachOView、class-d...
    Mr_Bob_閱讀 6,759評論 4 7
  • 加殼脫殼基本概念 使用dumpdecrypted工具進(jìn)行iOSApp脫殼 一 加殼脫殼基本概念 一 什么是加殼? ...
    當(dāng)前明月閱讀 4,860評論 15 8
  • 在iOS開發(fā)中,有時(shí)候想看下其他App里面用了哪些開源庫,這時(shí)候就可以通過工具導(dǎo)出它的頭文件來看。 從AppSto...
    龍馬君閱讀 5,663評論 0 11

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