3

次のコードのバージョンは、ヒープスプレーに関するこのプレゼンテーション(このリンクによりパワーポイントのダウンロードが発生します)、およびDanBonehによるこの講義ビデオに表示されます

<SCRIPT language="text/javascript">
    shellcode = unescape("%u4343%u4343%...");
    oneblock = unescape("%u0C0C%u0C0C");
    cause-overflow(overflow-string); //overflow buf[]
</SCRIPT>

この関数はここでは実装されていませんが、ヒープ全体cause-overflow()に書き込むだけだと思います。shellcode + nop

shellcode実際には、のようなマシンコードですかexec(/bin/sh)、それともシェルコードshellcodeメモリ位置ですか?

oneblockNOPスライドですか?

(より一般的には、このコードは何をしているのですか?なぜヒープスプレーが発生するのですか?)


PS宿題ではありません。私はjavascriptの初心者です。

4

1 に答える 1

1

(このマシンからこれら2つのリンクのいずれかを開くことはできません。)

私はJavascriptでヒープスプレーを使ったことがありません。その考えは本当に恐ろしいものです。

シェルコードとは何の関係もありませんが(シェルで実行されていないため)、CPUのネイティブコードである機械語に直接影響します。

これはかなり粗雑で、誰かが物事を説明するのに不正確な方法ですが、基本を理解しています。

ヒープは特別なものではありません。それはただのコンピュータメモリです。スタックもそれほど特別なものではなく、単なるコンピュータメモリです。プログラムスペースもそれほど特別なものではなく、単なるコンピュータメモリです。

通常[*]、実行中のプログラムは「プログラムスペース」に保持されます。プログラムが作成する大きなものは「ヒープ」に保持され、プログラムが作成する一時的なものは「スタック」に保持されます。(簡略化-それに対処します。)

バッファオーバーラン、スタックの破壊、ヒープのスプレーなどの最新のトリックのアイデアは、コンピュータのメモリを慎重に作成された不良データで埋め、コンピュータにプログラムスペースでの実行を停止させるためです。慎重に作成された不良データ。

でかなり注意深い知識が含まれています

  • 実行中のプログラム
  • それが実行されているシステム
  • 機械語/コード

[*]はい、これを変更し、コンピューターをより保護するためにいくつかの努力がなされています

于 2013-01-29T00:18:16.950 に答える