I am new to the world of reverse engineering and have been recommended by a number of people that I should start with IA32 because it is easier to learn the concepts. Aside from differences in the number of registers, what are the key differences between a 32bit system compared to a 64bit system.

closed as too broad by julian, perror, NirIzr, peter ferrie, Vitaly Osipov Jun 20 '17 at 7:18

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.


Short answer : Because it's an easier place to start .X64 allows for an extended instruction set , more access to memory and more allocation space in pretty much everything.

Long Answer: I wouldn't necessarily say that to start using a x86 system is a good way to start . I would say though , that starting with an x86 binary is a good area to start with.

Historically, going from 8 to 16 to 32 has added more and more instructions with each new addition of an architecture.

I recommend learning x86 as a start:

  • Because it's simple and is still used. There are many things written in x86, a lot of the exploits of APIs or were written upon the shoulders of giants of that time...

  • You can continue to use x86 in your x64 machine as x64 is just an extension of x68.

  • It's easier to read and you will deal with simpler value sizes.The way things are accessed .The amount of space that can be accessed is largely increased. With the two architectures, there are different ways of doing calls.

You'll need to learn x64 anyway as it's the next step in evolution. You'll appreciate it when you run into things with x86. Some things might include the amount of registers that you can use. Another might be instructions that allow you to access certain registers differently or in a more readable way.

Looks like this might have been answered previously here: https://stackoverflow.com/questions/7635013/difference-between-x86-x32-and-x64-architectures https://superuser.com/questions/56540/32-bit-vs-64-bit-systems

Some other links to read: http://www.techsupportalert.com/content/32-bit-and-64-bit-explained.htm https://en.wikipedia.org/wiki/X86-64

Not the answer you're looking for? Browse other questions tagged or ask your own question.