xorpd
ReversingHero
My general advice for beginners who want to get into reverse engineering is to read less books, and try to actually reverse engineer small and self contained programs. Reverse engineering has been my job for many years now, but it still very difficult for me to consume a long text talking about a reverse engineering project without touching the code on my own.
If you are interested in a hands-on experience, I recently made a self learning kit for learning reverse engineering for beginners. It is called ReversingHero. (https://www.reversinghero.com). It is one binary file made of 15 levels of increasing difficulty, teaching reverse engineering. It works in Linux environment, on the x64 series, and can also be completed using WSL (Windows subsystem for linux).
ReversingHero also contains an accompanying (paid) video solutions. The video solutions contain 12+ hours of step by step solutions to all the levels.
Learn Reverse Engineering by solving 15 challenges
ReversingHero – Learn Reverse Engineering
ReversingHero – Learn Reverse Engineering
The exercises are open source and can be found here: https://github.com/xorpd/asm_prog_ex I think that more experienced developers can take the instruction set and bash through the exercises.
Show HN: IDSearch – search IDA databases like a boss
Show HN: FCatalog: Find similarities between binary functions
Show HN: FCatalog: Find similarities between binary functions
Show HN: FCatalog: Find similarities between binary functions
Assembly Language Adventures
0x40 Assembly Riddles
You could also get the hard copy for those snippets, though all of them are on the website.
How to use it? Get an assembler (Yasm or Nasm is recommended), and obtain the x86_64 instruction set. Then for every snippet, try to understand what it does. Try to run it with different inputs if you don't understand it in the beginning. Look up for instructions you don't fully know in the Instruction Sets PDF. Start from the beginning. The order has some meaning.
Enjoy, and send me your feedback.