2012-02-04 6 views
4

"-w -pie"リンクオプションフラグを使用して、iPhoneアプリケーションのPIE(位置独立実行可能ファイル)/ ASLR(アドレス空間レイアウトランダム化)を有効にしています。物事が宣伝されているように機能するようにする方法はありますか?私は(編集:と関数)のアドレスをとNSLogで印刷しようとしましたが、毎回同じように表示されます。私はそれを正しくしていますか?iOSアプリケーションでPIE/ASLRが有効になっていることを検出するにはどうすればよいですか?

+0

私はPIEフラグを持っています。私の質問は、クラッチとクラッチ2で逆コンパイルされないようにすることができます。誰でも ? – Alix

答えて

0

可変アドレスではなく機能アドレスを調べます。

+0

私はそれもやっていましたが、まだ運がありません。 – kumar

+0

絶対アドレスではなく相対アドレスを印刷している可能性があります。それが毎回同じようになっている理由です。 –

5

私はこのスレッドは古いと知っていますが、他の誰かがそれに遭遇した場合にはまだ良い答えはありません。 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の環境設定>ダウンロード>コマンドラインツールでそれをインストールすることができます。

関連する問題