簡體   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