Apple如何知道您正在使用私有API?

我向苹果提交了一个二进制文件,没有任何源代码。

除了手动检查源代码外,Apple怎么知道使用了什么以及调用了什么API?


牧羊人nacy
浏览 490回答 3
3回答

茅侃侃

您可以在终端中使用以下单行代码在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/,$_))))))'

智慧大石

假设您要使用一些私有API;目标C允许您从字符串构造任何SEL:   SEL my_sel = NSSelectorFromString([NSString stringWithFormat:\@"%@%@%@", "se","tOr","ientation:"]);    [UIDevice performSelector:my_sel ...];机器人或图书馆扫描如何捕捉到这一点?他们将不得不使用一些在运行时监视私有访问的工具来捕获此问题。即使他们构建了这样的运行时工具,也很难抓住它,因为此调用可能隐藏在一些很少使用的路径中。
打开App,查看更多内容
随时随地看视频慕课网APP