I started my adventure with reverse engineering but I have some problems which I can't solve from the very beginning. I'm following tutorials on YT and I meet some differences. So, when I work with this code from the tutorial:
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv)
{
char buffer[500];
strcpy(buffer, argv[1]);
return 0;
}
I should get disassembly result as the guy from the tutorial:
But when I compile my program on a 32bit virtual machine withgcc -g -z execstack -fno-stack-protector
and get result like this:
When I compile the same same cod on 64bit virtual machine with gcc -g -z execstack -fno-stack-protector -m32
I get the same result. However if I compile it with gcc -g -z execstack -fno-stack-protector
I get something like this:
So it looks like the screenshot from the tutorial but it's 64bit version. So my question is, am I doing something wrong or I shoulg change something? I don't know if I should learn working with 64bit system or find a way to repair 32bit one. Anyone can help me?