Week 6: Reverse Engineering 2

Author: Nathan Farlow

Slides Required Files


Learn about Reverse Engineering and tools used in this process

Topics Covered:

  • Reverse Engineering is the process of understanding a program's functionality and behavior
  • Symbolic analysis tools such as angr help determine what codepath is desired and how to reach that point
  • Self modifying code exists as additional protections against reverse engineering
  • Instruction counting is another topic that is critical for instruction-based coding
  • VM Obfuscation

How to Run this meeting:

  • Go through the slides


Reverse Engineering is essential in understanding, debugging and cracking software as well as analyzing malware. To understand the process of reverse engineering, it is important to learn how to use tools like disassemblers, debuggers as well as some basic Unix commands and Misc Binutils like strings, ltrace and strace. This meeting will briefly introduce these tools.

It’s worth noting that all RE challenges are basically simple password checkers.