1、安裝
下載地址:http://stevenygard.com/projects/class-dump/

屏幕快照 2019-08-08 下午11.44.38.png
打開(kāi)下載后的文件

屏幕快照 2019-08-08 下午11.45.05.png
將class-dump 文件移到 /usr/local/bin

屏幕快照 2019-08-08 下午11.48.48.png
查看class-dump 命令

屏幕快照 2019-08-08 下午11.52.36.png
2、用法
class-dump [options] <mach-o-file>
options 可選條件
mach-o 文件(ipa文件解壓后,Payload中的文件XZL,打開(kāi)后里面的可執(zhí)行文件XZL)

屏幕快照 2019-08-08 下午11.57.32.png

屏幕快照 2019-08-11 上午12.00.48.png
XZL就是mach-o文件
3、可選屬性
-a
顯示實(shí)例變量偏移量
show instance variable offsets
options : -a
eg:class-dump -a /Users/7890chen/Desktop/IPA文件/XZL-dis/Payload/XZL.app

屏幕快照 2019-08-09 上午12.25.10.png
-A
顯示實(shí)現(xiàn)地址
show implementation addresses
options : -A
class-dump -A /Users/7890chen/Desktop/IPA文件/XZL-dis/Payload/XZL.app

屏幕快照 2019-08-09 上午1.06.02.png
--arch <arch>
從通用二進(jìn)制文件(ppc、ppc64、i386、x86_64、armv6、armv7、armv7s、arm64)中選擇特定的體系結(jié)構(gòu)
choose a specific architecture from a universal binary (ppc, ppc64, i386, x86_64, armv6, armv7, armv7s, arm64)
options : --arch <arch>
eg:class-dump --arch arm64 /Users/7890chen/Desktop/IPA文件/XZL-dis/Payload/XZL.app
eg:class-dump --arch armv7 /Users/7890chen/Desktop/IPA文件/XZL-dis/Payload/XZL.app

屏幕快照 2019-08-09 上午1.17.21.png

屏幕快照 2019-08-09 上午1.18.00.png
-C <regex>
只顯示與正則表達(dá)式匹配的類
only display classes matching regular expression
options : -C <regex>
// 待測(cè)試,正則不是太熟悉 ^_^
-f <str>
在方法名中查找字符串
find string in method name
options : -f <str>
eg:class-dump -f init /Users/7890chen/Desktop/IPA文件/XZL-dis/Payload/XZL.app

屏幕快照 2019-08-09 上午1.27.27.png
-H
在當(dāng)前目錄或用-o指定的目錄中生成頭文件
generate header files in current directory, or directory specified with -o
options : -H
eg:class-dump -H -o /Users/7890chen/Desktop/IPA文件/XZL-dis/點(diǎn)H文件 /Users/7890chen/Desktop/IPA文件/XZL-dis/Payload/XZL.app

屏幕快照 2019-08-09 上午1.35.00.png
-I
通過(guò)繼承(覆蓋-s)對(duì)類、類別和協(xié)議進(jìn)行排序
sort classes, categories, and protocols by inheritance (overrides -s)
options : -I
eg:class-dump -I /Users/7890chen/Desktop/IPA文件/XZL-dis/Payload/XZL.app

屏幕快照 2019-08-09 上午1.41.07.png
-o <dir>
用于-H的輸出目錄
output directory used for -H
options : -o <dir>
-r
遞歸地?cái)U(kuò)展框架和固定VM共享庫(kù)
recursively expand frameworks and fixed VM shared libraries
options : -r
eg:class-dump -r /Users/7890chen/Desktop/IPA文件/XZL-dis/Payload/XZL.app
framework 中的文件中的變量和方法名
-s
按名稱對(duì)類和類別進(jìn)行排序
sort classes and categories by name
options : -s
eg:class-dump -s /Users/7890chen/Desktop/IPA文件/XZL-dis/Payload/XZL.app

屏幕快照 2019-08-09 上午1.53.41.png
-S
按名稱排序方法
sort methods by name
options : -S
eg:class-dump -S /Users/7890chen/Desktop/IPA文件/XZL-dis/Payload/XZL.app

屏幕快照 2019-08-09 上午1.58.13.png
-t
在輸出中抑制報(bào)頭,用于測(cè)試
suppress header in output, for testing
options : -t
--list-arches
列出文件中的arches,然后退出
list the arches in the file, then exit
options : --list-arches

屏幕快照 2019-08-09 上午2.03.25.png
--sdk-ios
指定iOS SDK版本(將在/Developer/ platform/ iPhoneOS.platform/Developer/SDKs/iPhoneOS<version>.sdk)
specify iOS SDK version (will look in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS<version>.sdk
options : --sdk-ios
--sdk-mac
指定MacOSX版本(查看/Developer/SDKs/MacOSX<version>.sdk)
specify Mac OS X version (will look in /Developer/SDKs/MacOSX<version>.sdk
options : --sdk-mac
--sdk-root
指定完整的SDK根路徑(或者使用——SDK -ios/——SDK -mac作為快捷方式)
specify the full SDK root path (or use --sdk-ios/--sdk-mac for a shortcut)
options : --sdk-root