Я начал свое приключение с реверс-инжиниринга, но у меня есть некоторые проблемы, которые я не могу решить с самого начала.Я следую учебным пособиям по YT и встречаю некоторые различияИтак, когда я работаю с этим кодом из учебника:
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv)
{
char buffer[500];
strcpy(buffer, argv[1]);
return 0;
}
, я должен получить результат разборки, как парень из учебника:
Но когдаЯ компилирую свою программу на 32-битной виртуальной машине с gcc -g -z execstack -fno-stack-protector
и получаю такой результат:
Когда я компилирую ту же самую код на 64-битной виртуальной машине с gcc -g -z execstack -fno-stack-protector -m32
Iполучить тот же результат.Однако, если я скомпилирую это с gcc -g -z execstack -fno-stack-protector
, я получу что-то вроде этого:
Так что это выглядит как скриншот из учебника, но это 64-битная версия.Таким образом, мой вопрос, я делаю что-то не так или я должен что-то изменить?Я не знаю, стоит ли мне учиться работать с 64-битной системой или найти способ восстановить 32-битную.Кто-нибудь может мне помочь?