加殼
什么是加殼缀遍?
利用特殊的算法,對可執(zhí)行文件的編碼進行改變(比如壓縮饱须、加密)域醇,以達到保護程序代碼的目的
脫殼
什么是脫殼?
摘掉殼程序蓉媳,將未加密的可執(zhí)行文件還原出來(有些人也稱為“砸殼”)
脫殼主要有2種方法:硬脫殼譬挚、動態(tài)脫殼
iOS中點脫殼工具
iOS中有很多好用的脫殼工具
Clutch:https://github.com/KJCracks/Clutch
dumpdecrypted:https://github.com/stefanesser/dumpdecrypted/
AppCrackr、Crackulous
查看是都脫殼
查看Load Commands -> LC_ENCRYPTION_INFO -> Crypt ID的值酪呻,0代表未加密
通過otool命令行也可以:otool -l 可執(zhí)行文件路徑 | grep crypt
Clutch
配置
下載最新的Release版: https://github.com/KJCracks/Clutch/releases
建議去掉版本號减宣,改名為Clutch
將Clutch文件拷貝到iPhone的/usr/bin目錄
如果在iPhone上執(zhí)行Clutch指令,權(quán)限不夠玩荠,賦予“可執(zhí)行的權(quán)限”
使用
列出已安裝的APP:Clutch -i
輸入APP序號或者Bundle Id進行脫殼操作:Clutch -d APP序號或BundleId
脫殼成功后會生成一個ipa文件
dumpdecrypted
下載源代碼漆腌,然后在源代碼目錄執(zhí)行make指令進行編譯贼邓,獲得dylib動態(tài)庫文件
將dylib文件拷貝到iPhone上(如果是root用戶,建議放/var/root目錄)
終端進入dylib所在的目錄
使用環(huán)境變量DYLD_INSERT_LIBRARIES將dylib注入到需要脫殼的可執(zhí)行文件(可執(zhí)行文件路徑可以通過ps -A查看獲让颇颉)
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 可執(zhí)行文件路
.decrypted文件就是脫殼后的可執(zhí)行文件
在使用過程中塑径,可能會遇到以下錯誤
* 原因:對dylib所在的文件夾權(quán)限不夠
* 解決方案:將dylib放在用戶所在文件夾,比如
* 如果是root用戶填具,請將dylib放在/var/root目錄
* 如果是mobile用戶统舀,請將dylib放在/var/mobile目錄