class-dump
侣诵,顧名思義,就是用來dump
目標(biāo)對象的class
信息的工具乘盼。它利用Objective-C
語言的runtime
特性亿虽,將存儲在Mach-O
文件中得@interface
和@protocol
信息提取出來,并生成對應(yīng)的.h
文件赠制。
前提
當(dāng)Mac
升級了OSX 10.11
后赂摆,配置class-dump
的時候,會發(fā)現(xiàn)逆向書上推薦的class-dump
存放目錄/usr/bin
,class-dump
存放不進(jìn)去钟些,嘗試過用sudo
還是不被允許烟号。
原因
原因是 OSX10.11
的一個新特性Rootless
,也叫System Integrity Protection(SIP)
和SELinux
差不多,都是限制root
用戶的權(quán)限政恍。
其實可以在RecoveryMode
關(guān)閉這個特性汪拥,這樣就直接可以讀寫/usr/bin
了,不過不建議篙耗。
(關(guān)閉方法:開機(jī)的時候按住option
出現(xiàn)選擇磁盤的界面按command + R
進(jìn)入RecoveryMode
迫筑,選擇實用工具終端,輸入csrutil disable
回車搞定)
解決
查找網(wǎng)上的資料宗弯,目前我用的方法是改變class-dump
的環(huán)境變量來使用脯燃。
class-dump下載點擊這里
- 打開終端,輸入mkdir ~/bin蒙保,在當(dāng)前用戶根目錄下創(chuàng)建一個bin目錄辕棚。
mkdir ~/bin
2.把下載下來的 dmg
打開,復(fù)制文件里面的class-dump
到創(chuàng)建的bin
目錄下邓厕。賦予其可執(zhí)行權(quán)限:
chmod +x ~/bin/class-dump
3.打開bash_profile
文件配置環(huán)境變量:
vim ~/.bash_profile
1> 按下 i 鍵進(jìn)入編輯狀態(tài)逝嚎,在最下方加一行
export PATH=$HOME/bin/:$PATH
2> 按下esc
鍵,再按shift+
: 輸入wq
進(jìn)行保存退出編輯
4.在終端中執(zhí)行
source ~/.bash_profile
5.測試是否改變成功,在終端輸入
class-dump
6.如果出現(xiàn)如下,恭喜你详恼,安裝成功
zydeMacBook-Pro:~ zy$ 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)
zydeMacBook-Pro:~ zy$
原文地址:class-dump最新安裝方法