問題タブ [aslr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
111 参照

aslr - ASLR を使用したチェックサム ジェネレーター

私はここの初心者です。Windows タスク マネージャーの PID を、Visual Studio 2010 の動的ベース ASLR によって生成されたチェックサム/ハッシュ値と一致させたいですか? Visual Studio 2010 で ASLR を既に有効にしましたが、データが受信されません。方法はありますか?

手がかり:

  1. Windows 関数CreateToolhelp32Snapshot
  2. MODULEENTRY32
  3. Windows 関数OpenProcess

とても感謝しています。

ギグジー

0 投票する
2 に答える
1685 参照

delphi - C++ Builder で安全な例外処理を有効にする

Windows 8 アプリケーションの認定には、(特に) 次の要件があります。

  • 3.2/SafeSEH安全な例外処理を保証するために、フラグを使用してアプリをコンパイルする必要があります
  • 3.3/NXCOMPATデータの実行を防ぐために、フラグを使用してアプリをコンパイルする必要があります
  • 3.4 アプリは/DYNAMICBASE、アドレス空間レイアウトのランダム化 (ASLR) のフラグを使用してコンパイルする必要があります

C++Builder XE でこれらのいずれかを有効にする方法を見つけることができませんでした。

/NXCOMPATとについては、VS またはCygwin から/DYNAMICBASE使用できます。これらを有効にするネイティブな方法があれば、副作用の可能性についてもっと自信を持っていると思います.editbin.exepeflags.exe

とにかく、私は完全に途方に暮れてい/SafeSEHます。

0 投票する
2 に答える
20499 参照

linux - 自分だけのアドレス空間レイアウトのランダム化を無効にして再度有効にする

システム (Ubuntu Gnu/Linux 2.6.32-41-server) でアドレス空間レイアウトのランダム化 (ASLR) を無効にしたいのですが、

この変更は、システム上のすべてのユーザーに影響を与えると思います。(これは本当ですか?) ASLR を無効にした場合の影響を、ユーザーとしての自分だけ、または無効にするコマンドを呼び出したシェル セッションだけに制限するにはどうすればよいですか?

ところで、私のシステムの現在の(デフォルト)設定は

なぜ 1 や 3 ではなく 2 なのか? /proc/sys 設定の数値、その範囲、およびその意味に関するドキュメントはどこにありますか? ありがとう!

0 投票する
1 に答える
7770 参照

stack - スタックランダム化とは何ですか?それはどのようにしてバッファオーバーフロー攻撃を防ぎますか?

私は本から、システムを攻撃するエクスプロイトコードを注入する方法としてバッファオーバーフローが使用される可能性があることを読みました。そして、スタックのランダム化は、そのような攻撃を防ぐための効果的な方法の1つです。

スタックのランダム化とは何か、そしてそれがどのようにそれらの攻撃を防ぐのか理解できませんか?

0 投票する
1 に答える
314 参照

linux - スタックをページに揃える必要があるのはなぜですか?

Linux で、カーネル ソースを process.c で変更して、より多くのエントロピーを持つスタック アドレスを作成しようとしました (特に次の行)。

これを変更しすぎると、カーネルが停止するか、未定義のように見える動作が発生します。これにより PAGE_ALIGN() が何らかの形で失敗すると思いますか? 特に PAGE_ALIGN() が失敗する理由や、失敗するカーネル内のコードの正確な部分にはあまり興味がありません (ただし、それも知っておくとよいでしょう)。スタックが特定の地域に存在しなければならない理由にもっと興味があります。この背後にあるアーキテクチャ上の理由と動機は何ですか? これは、GDT/LDT がプロテクト モードでどのように動作するかに関係がありますか?

私が求めていることを明確にするために:

スタックの形式が 0xbfXXXXXX (32 ビット) でなければならないのはなぜですか? スタックを 0xaaXXXXXX やその他の値にすることができないのはなぜですか?

0 投票する
1 に答える
986 参照

c - LinuxでのASLRの制限

process.cのarch_align_stack()を変更して、モジュロの2番目の引数を次のように増やすことにより、自分のx8632ビットマシンでASLRを「改善」しようとしました。

しかし、これを改ざんしすぎるとカーネルパニックが発生することにすぐに気付きました。そして、それを少し改ざんしただけでもシステムが不安定になるのではないかと思います(運が良ければしばらくは存続するでしょう?)。

これにより、なぜこれが発生するのかについて質問するようになりました(スタックをページ揃えする必要があるのはなぜですか?)。どうやらこれは、(ユーザー "mpe"が述べたように)8 kiBの場合のデフォルトのスタックサイズ(8192バイト)が原因です。それで、拡張によってカーネルのスタックサイズを増やすことによって、この引数(8192)を増やすことができるはずですか?また、スタック自体の場所をランダム化できることも言及されました。

Paxはこれを行いますか?そうでない場合は、なぜですか?

カーネルで指定されているスタックサイズはどのように/どこにありますか?これは32ビットと64ビットで異なりますか?

これについて、32ビットと64ビットの間に違いはありますか?64ビットはまだこのようなものにprocess.cを使用していますか?process_64.cには、このコードに相当するものは何もないようです。

0 投票する
0 に答える
375 参照

linux - PaX ASLR と Linux のデフォルト ASLR (64 ビット)

64 ビット x86 マシン向けの PaX の ASLR 実装は、Linux のデフォルトの 64 ビット ASLR 実装よりもはるかに強力です。私の質問は簡単です。PaX の実装がデフォルトのものではないのはなぜですか?

これは何らかの形で互換性の問題に関連していると思いますが、特定のプログラムの機能が壊れているのでしょうか? それとも、どういうわけか、何か他のものを壊しますか?

どのプログラム (誰かが知っている場合は例) が壊れますか? さらに興味深いのは、なぜそれらが壊れるのですか?

もう 1 つの可能性は、パフォーマンスの低下です。しかし、ソース コードを見ても、なぜ遅くなるのかわかりません。これについて私を自由に修正してください。私はそれが前者、互換性に関連していると仮定しています。

0 投票する
1 に答える
1647 参照

ios - monotouch アプリケーションで PIE/ASLR を有効にするにはどうすればよいですか?

XCodeビルド設定には、「位置に依存しない実行可能ファイルを作成しない」というオプションがあります。ここで有効にするのは簡単です。

ただし、MonoDevelop と MonoTouch を使用してアプリケーションを開発していますが、同等の設定が見つかりません。-fpie フラグをコンパイラに渡そうとしましたが、うまくいかないようです。otool を使用してコンパイルされたバイナリを調べると、PIE フラグが設定されていません。

助けてください。

0 投票する
1 に答える
1159 参照

linux - mmap()のエントロピーのASLRビット

x86システムでmmap()のASLRランダム化を研究しています。私は多くの場所で、mmap()でロードされたアドレスに16ビットのランダム化があることを読みました。

しかし、私が見つけたソースコードで:

つまり、それはわずか8ビットのランダム性になります。

しかし実際には、いくつかのテストを実行すると、次のアドレス(stack-heap-mmap)bf937000,09a60000、b774b000を取得します

bfa86000,090ef000、b76e2000

それがb77XX000とb76XX000である可能性がある場合、その16ビット以上です!!!!

これについて何か助けはありますか?

0 投票する
1 に答える
461 参照

.net - C#プロジェクト(DynamicBase)からネイティブdllを読み込めません

Visual Studioで、clrライブラリをロードするC#実行可能ファイルを作成しました。これにより、64ビットのネイティブdllでloadlibraryが呼び出され、内部例外メッセージボックスが表示されます。実行可能ファイルをclrに変更し、exeプロジェクトで詳細オプションRandomized Base AddressをNo(/ DynamicBase:NO)に設定すると、正常にロードされます。ASLRを使用しないようにネイティブの.netexeを取得するにはどうすればよいですか?さらに、このシナリオをIISで機能させるにはどうすればよいですか?-ありがとう