Как исправить «одношаговое событие в ntdll.774A01E8» в отладчике иммунитета? - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь потренировать переполнение буфера в стеке для разработки эксплойтов Windows.Я использую 64-битную виртуальную машину Windows 7 и отладчик Immunity.В учебниках используется Windows XP, но я использую win 7. Проблема, с которой я сталкиваюсь, заключается в том, что при открытии в отладчике пользовательской программы на C (exe-файл) выполнение приостанавливается на

Один шагсобытие в ntdll.774A01E8 […]

, как показано ниже enter image description here

Затем, когда я нажимаю F9 , я получаю "INT3 command at kernel32" и я вижу строку

STATUS_STACK_BUFFER_OVERRUN обнаружен

в регистре ECX, как показано ниже enter image description here

После нажатия F9 снова, процесс прекращается.Он никогда не выдает ошибку

Нарушение доступа произошло в сообщении [??]

, что является ожидаемым.Ниже приведен исходный код уязвимой C-программы, которую я использую.Строка аргумента, которую я предоставляю, выглядит как 500 A - 1000 A.

Как я могу это исправить и успешно получить перезапись EIP?

#include <stdio.h>
#include <string.h>
void func (char *bar){
    char buff[12];
    strcpy(buff,bar);
}

int main(int argc, char *argv[]){
    func(argv[1]);
}
...