我向蘋果提交了一個二進制文件,沒有任何源代碼。除了手動檢查源代碼外,Apple怎么知道使用了什么以及調用了什么API?
3 回答

茅侃侃
TA貢獻1842條經驗 獲得超21個贊
您可以在終端中使用以下單行代碼在Mach-O程序中列出選擇器:
otool -s __TEXT __objc_methname "$1" |expand -8 | cut -c17- | sed -n '3,$p' | perl -n -e 'print join("\n",split(/\x00/,scalar reverse (reverse unpack("(a4)*",pack("(H8)*",split(/\s/,$_))))))'

智慧大石
TA貢獻1946條經驗 獲得超3個贊
假設您要使用一些私有API;目標C允許您從字符串構造任何SEL:
SEL my_sel = NSSelectorFromString([NSString stringWithFormat:\
@"%@%@%@", "se","tOr","ientation:"]);
[UIDevice performSelector:my_sel ...];
機器人或圖書館掃描如何捕捉到這一點?他們將不得不使用一些在運行時監視私有訪問的工具來捕獲此問題。即使他們構建了這樣的運行時工具,也很難抓住它,因為此調用可能隱藏在一些很少使用的路徑中。
- 3 回答
- 0 關注
- 522 瀏覽
添加回答
舉報
0/150
提交
取消