I'm a little confused. I am using a Linux based system (Ubuntu), 64-bit. and I want to start and reverse 64elf binary files, but there is a lot of things I want to know before. just to be clear, If I have 64bit computer, I need to learn x64 assembly? What's the best assembler for my platform (I'm currently using nasm)?

The reason I'm asking that is because I don't want to learn assembly in the wrong way, which will not help me.

By the way, is learning this tutorial is good for my platform?

  • If you want to learn to program in x86-64 assembly, probably the reverse engineering forum isn't best place to ask. If by "x64 assembly" you mean the 64bit version of x86, no you don't have to learn "x64" assembly. You can run 32 bit version of x86 assembly on 64 bit processor just fine in most cases. Also there are emulators for other architectures like MIPS or ARM so you don't need to stick to x86.
    – morsisko
    Aug 19, 2020 at 20:05

2 Answers 2


to be honest, there's no specific way to lean reverse engineering but there's some basics like(programming, computer architecture etc..), so you need to learn all fundamentals of computer science and engineering, and then you can play some ctf's/crackme challenges.


  • most of reverse engineering tutorials/workshops won't teach you reverse engineering, they will teach you only how to use tools like (Windbg, ghidra, etc..)
  • if you want to learn how reverse engineer software try to build one.



Why do you need writing in assembly? In order to reverse engineer the microcode approach is a lot easier. The Ghidra tool supports outputting pcode for all the instructions, then you just read that along with decompiler output. Pcode for calling conventions, return addresses and such low level stuff; decompiler for anything else like further analysis of functions etc. Also pcode shows you what each assembly instruction means so you can reuse semantic information anywhere else if documentation is not clear for you or whatever you use for learning. As for binaries you usually don't choose in what language they're written (x86/MIPS/PowerPC/ARM), you don't actually need it nor this matters anything as pcode or what your RE tool uses is versatile and depends only on this tool used.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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