Различия в разборке 32-битной и 64-битной - PullRequest
0 голосов
/ 12 ноября 2018

Я начал свое приключение с реверс-инжиниринга, но у меня есть некоторые проблемы, которые я не могу решить с самого начала.Я следую учебным пособиям по YT и встречаю некоторые различияИтак, когда я работаю с этим кодом из учебника:

#include <stdio.h>
#include <string.h>

int main(int argc, char** argv)
{
    char buffer[500];
    strcpy(buffer, argv[1]);

    return 0;
}

, я должен получить результат разборки, как парень из учебника: expected result

Но когдаЯ компилирую свою программу на 32-битной виртуальной машине с gcc -g -z execstack -fno-stack-protector и получаю такой результат: enter image description here

Когда я компилирую ту же самую код на 64-битной виртуальной машине с gcc -g -z execstack -fno-stack-protector -m32 Iполучить тот же результат.Однако, если я скомпилирую это с gcc -g -z execstack -fno-stack-protector, я получу что-то вроде этого: enter image description here

Так что это выглядит как скриншот из учебника, но это 64-битная версия.Таким образом, мой вопрос, я делаю что-то не так или я должен что-то изменить?Я не знаю, стоит ли мне учиться работать с 64-битной системой или найти способ восстановить 32-битную.Кто-нибудь может мне помочь?

...