iOS 逆向工具 - restore-symbol

iOS應用在上線前都會裁去符號表,以避免被逆向分析,restore-symbol 便是用於恢復符號表的利器。
符號表原理:https://blog.csdn.net/sharpyl/article/details/88610991
git:https://github.com/tobefuturer/restore-symbol

1.下載源碼編譯
git clone --recursive https://github.com/tobefuturer/restore-symbol.git
cd restore-symbol && make
./restore-symbol

2.恢復OC的符號表
./restore-symbol ./origin_XXX -o ./XXX_with_symbol
origin_XXX 爲Clutch砸殼後,沒有符號表的 Mach-O 文件
-o 後面跟輸出文件位置

3.把 Mach-O 文件重簽名打包
打包運行,可以看到OC函數這部分的符號已經恢復了,但是block的符號沒能正確顯示。

4.提取block符號表
a. IDA提供了Python的SDK,下載腳本ida_search_block.py(https://github.com/tobefuturer/restore-symbol/blob/master/search_oc_block/ida_search_block.py);
b. 用IDA打開要分析APP的 Mach-O 文件,等待分析完成;
c. 菜單欄 File -> Script file... 選擇ida_search_block.py;
d. 運行完成後,block符號表提取完成,生成block_symbol.json;

5. 再次恢復
./restore-symbol ./origin_AlipayWallet -o ./AlipayWallet_with_symbol -j block_symbol.json
-j 後面得到的json符號表

6. 簽名打包
得到一份具有OC函數符號表和block符號表的可執行文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章