How to Learn Reverse Engineering Roadmap

This is the first step of our reverse engineering roadmap. Roppers exists to make the next generation of RE devs, so this is an important part of the site that is constantly in motion.

After years of trying to teach students and trying to teach ourselves, we came up with a curriculum to learn C, Assembly, debugging, and reverse-engineering all at the same time. It is a lot of work, but is the best way to learn out there.

  1. Finish the h0mbre C course as described here: https://www.hoppersroppers.org/roadmap/training/c.html
  2. Once you have finished that course, begin https://github.com/hoppersroppers/nightmare
    • The Nightmare course is our main binary exploitation track, but the first 4 chapters are about learning the tools and RE. Work throught the first 4 sections until you get to the overflows section, then come on back to RE.
  3. Now we work back through h0mbre C using GDB and Ghidra for every assignment. This takes a while, but is a really good way to get familar with how to do Linux reverse engineering and become comfortable with disassembly.

RE is all about reps and sets on really hard problems, so just get comfortable then start ripping CTF challenges until you are very very good at what you do.

Malware RE

No question asked, the best free resource to learn Malware RE is from Azeria.

  1. https://malwareunicorn.org/workshops/re101.html#0
  2. https://malwareunicorn.org/workshops/re102.html#0

After that, just start playing with real samples.

Arm Resources

If you are trying to learn ARM, complete all of this, and then use these resources to get your brain into ARM syntax mode: