0

しばらく前に、Windows XPSP3( http://www.exploit-db.com/exploits/9177/ )でEasy RM to MP3 Converter 2.7.3.700のエクスプロイトに取り組んでいるときに、理解していない概念に出くわしました。このようになります:

悪意のあるファイルを生成するためのperlスクリプト:

my $junk = "\x41" x 25000;
my $offset = "\x42" x 1072;
my $eip = "\x43" x 4;
my $file = "crash.m3u";
open ($file,">$file");
print $file $junk.$offset.$eip.$adjustment;
close ($file);

悪意のあるファイルを生成した後、コンバーターにフィードすると、[esp + 18](espに関連するアドレス指定)でスタックの内容が分析されます...なぜこれらのAがここにあるのですか??

つまり :

Aは[ESP-88E8]から[ESP-43C]
までBは[ESP-438]から[ESP-C]まで
Cは[ESP-8]で開始

では、なぜこれらのAは[ESP+18]から[ESP+418]にあるのでしょうか?なぜこれらのAは[ESP-88E8]から[ESP-43C]にすでに配置されているのに、[ESP+18]から[ESP+418]で繰り返されているのですか..??

ありがとうございました 。

4

2 に答える 2

2

これらはバッファをジャンクで埋めるためにあり、残りの 1700+ バイトは metasploit を使用して生成され、EIP が上書きされたときにアドレスを取得します。そのため、バッファ オーバーフローを引き起こすために必要なバイト数を決定する必要があります。これは、OS ごとに異なるためです。

オプション: そうすることで、ブレークポイントが必要な場所に設定され、EIP アドレスが取得されます。

于 2012-11-10T00:09:34.920 に答える
0

あなたの質問に答えるには、Easy RM to MP3 Converter でもう少しデバッグを行う必要があります。以前のブレークポイントをいくつか設定してみてください。オーバーフローはすぐには発生せず、静的バッファーを上書きする前におそらく数回コピーされると思われます。:)

于 2012-04-10T08:43:04.720 に答える