解壓.a文件

剛才心血來潮想hack一下微博SDK,於是傻傻的就去class-dump了,但效果很慘烈。

畢竟class_dump不支持靜態文件

那麼我們該怎麼做呢?

分離不同的arch

我們先file一下,libWeiboSDK.a

得到:

1
2
3
4
5
6
7
libWeiboSDK git:(master) ✗ file libWeiboSDK.a
libWeiboSDK.a: Mach-O universal binary with 5 architectures
libWeiboSDK.a (for architecture armv7):   current ar archive random library
libWeiboSDK.a (for architecture armv7s):  current ar archive random library
libWeiboSDK.a (for architecture cputype (16777228) cpusubtype (0)):   current ar archive random library
libWeiboSDK.a (for architecture i386):    current ar archive random library
libWeiboSDK.a (for architecture x86_64):  current ar archive random library

這個時候我們可以抽出任意一個 arch,但是需要注意一個問題:我們下一步要抽出object的時候,必須是單一library,也就是thin, 而我們常見的都是fat。

所以我們應該 lipo libWeiboSDK.a -thin armv7 -output nyan.a 而不是 lipo libWeiboSDK.a -extract armv7 -output nyan.a

抽出.a中的object

很簡單,ar 命令即可

1
ar -x nyan.a

獲取頭文件

1
2
nm Weibo.o > weibo.m
vim weibo.m

小節

其實上面寫的都是廢話。

完全可以 nm libWeiboSDK.a | grep 或者新建一個項目,然後class-dump那個項目

iOS

Comments