繁体   English   中英

如何检测我的iOS应用程序已启用PIE / ASLR?

[英]How to detect that PIE/ASLR has been enabled for my iOS app?

我通过使用"-w -pie"链接选项标志为iPhone应用程序启用PIE(位置无关可执行文件)/ ASLR(地址空间布局随机化)。 有什么方法可以确保现在的东西按照宣传的方式工作吗? 我尝试用NSLog打印变量的地址(编辑:和一个函数) ,每次都是相同的。 我做得对吗?

我知道这个帖子已经老了,但是如果别人偶然发现它,那就没有好的答案了。 要检查PIE标志是否设置非常简单,只需运行以下命令:

otool -hv /path/to/App.app/app

其中[APP]是构建后创建的可执行文件(不是ipa,而是可执行文件,二进制文件)。

你应该看到这样的东西:

Mach header
      magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
   MH_MAGIC     ARM         V7  0x00     EXECUTE    19       2708   NOUNDEFS DYLDLINK TWOLEVEL PIE

otool应该包含在Xcode中,但是如果你没有它,你可以在Xcode首选项>下载>命令行工具中安装它。

检查函数地址,而不是变量地址。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM