• Systems have different binary formats.
  • A C program is transformed into a executable binary using a compiler.
  • A binary contains machine code instructions.
    • We will look at x86-64 instruction set

Reverse Engineering - Tools

  • Debugger : A programme used to debug other programmes. Usually you can run or halt the target programme at any point, step through code line by line, and display or modify the contents of memory, CPU registers, and stack frames.
  • Disassembler : A programme used to translate machine code into assembly language. While machine code is the binary representation, the assembly language can be seen as a low-level programming language representation.
  • Decompiler : A programme used to translate machine code into a high-level programming language (e.g., C code).