[英]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.