前言
反編譯應(yīng)用的頭文件丐谋,可以了解應(yīng)用的整體架構(gòu),學習用戶的優(yōu)秀架構(gòu)經(jīng)驗和規(guī)范自己的函數(shù)以及文件的命名。
iOS11+的不完美越獄冲茸,使得Clutch
frida
dumpdecrypted
基本都出現(xiàn) Kill 9
的錯誤。經(jīng)過不斷的嘗試缅帘,發(fā)現(xiàn)了CrackerXI+
對iOS11+不完美越獄仍然有效果轴术。
安裝
- 將手機越獄,并在越獄工具
Cydia
中添加源地址https://apt.cydiami.com/
钦无,添加成功后逗栽,在Cydia
中搜索CrackerXI+
并安裝。 - mac上安裝iFunbox V1.8失暂,百度云密碼:bgfs
- mac上下載class-dump彼宠,根據(jù)issues93更改源碼,然后將項目編譯將可執(zhí)行文件
class-dump
拖動到/usr/local/bin/
目錄下弟塞,并在終端中檢查是否安裝好凭峡,如下顯示則表示安裝好了。
myMacBook-Pro-2:~ test$ class-dump
class-dump 3.5 (64 bit)
Usage: class-dump [options] <mach-o-file>
where options are:
-a show instance variable offsets
-A show implementation addresses
--arch <arch> choose a specific architecture from a universal binary (ppc, ppc64, i386, x86_64, armv6, armv7, armv7s, arm64)
-C <regex> only display classes matching regular expression
-f <str> find string in method name
-H generate header files in current directory, or directory specified with -o
-I sort classes, categories, and protocols by inheritance (overrides -s)
-o <dir> output directory used for -H
-r recursively expand frameworks and fixed VM shared libraries
-s sort classes and categories by name
-S sort methods by name
-t suppress header in output, for testing
--list-arches list the arches in the file, then exit
--sdk-ios specify iOS SDK version (will look in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS<version>.sdk
--sdk-mac specify Mac OS X version (will look in /Developer/SDKs/MacOSX<version>.sdk
--sdk-root specify the full SDK root path (or use --sdk-ios/--sdk-mac for a shortcut)
myMacBook-Pro-2:~ test$
使用
-
打開
CrackerXI+
决记,在Settings
中設(shè)置CrackerXI Hook
為enable
摧冀,然后在AppList
中找到要脫殼的APP碼云
并且點擊,選擇YES,Full IPA
系宫。會自動跳轉(zhuǎn)到碼云
過了數(shù)秒會自動返回CrackerXI+
提示成功索昂,并且顯示已經(jīng)脫殼的ipa文件路徑
手機使用數(shù)據(jù)線連接電腦笙瑟,然后使用電腦的
iFunbox
訪問手機的var/mobile/Documents/CrackerXI/
目錄楼镐,將脫殼IPA文件碼云_1.6.1_CrackerXI.ipa
文件拷貝到電腦上癞志。-
右鍵脫殼IPA文件選擇
打開方式
中的歸檔實用工具
或者The Unarchiver
解壓往枷。打開解壓后的文件夾Payload
,因為碼云項目使用中文,解壓包亂碼错洁,先將亂碼的文件夾更名成碼云
秉宿,然后右鍵打開Payload/碼云
,找到代碼二進制文件屯碴,記住文件名
在終端中cd進入
Payload
文件夾 運行如下命令描睦,就可以得到反編譯的頭文件,接下來就可以欣賞別人的代碼了导而。
myMacBook-Pro-2:Payload test$ class-dump -H 碼云.app/碼云 -o ./ClassDumpHeader
myMacBook-Pro-2:Payload test$
注意:當出現(xiàn)如下錯誤的時候可能是因為這個APP使用了Swift和OC混編
2020-03-09 11:35:31.250 class-dump[5309:105781] Error: Cannot find offset for address 0x780000000100d4cc in stringAtAddress:
可以使用class-dump-swift來進行反編譯忱叭,安裝方式和使用方法與class-dump是一致的,class-dump-swift
需要用源碼編譯今艺,我這里有編譯好的百度云 密碼:vhe0
swiftd -H 碼云.app/碼云 -o ./ClassDumpHeader
以上就是iOS11韵丑、iOS12、iOS13中不完美越獄的脫殼和反編譯頭文件的方法虚缎,希望可以幫助到其他逆向初學者撵彻。
本文所用到的碼云
為App Store下載的開源軟件,項目地址