ReversingHero: Learn Reverse Engineering (x64)

Hi, I just finished creating the first iteration of ReversingHero challenge.
It can be found here:

ReversingHero a reverse engineering self learning kit (x86_64) wrapped inside one binary file. It is made of about 15 levels, with difficulty gradually increasing. There are no specific rules for solving the levels: everything is allowed.

There is also a set of videos containing hints and solutions for every level. The videos are currently being edited. Until they are ready, you can start taking a look at the binary (:



Only looked through the first 5 levels so far, but it’s quite a lot of fun!
Especially the 5th one was great (though it took me some time until I saw the actual solution, I spent way too much time fixing the swapping code itself trying to get the numbers to correctly add up).

Also motivates me to read through my hardcopy of xchg rax,rax again and see how much of it I remember :smiley:


Pretty quick! Glad you liked it.


Thanks for this! Will be working on it this weekend! :smiley:

Hi, just wanted to update that the solution videos for ReversingHero are complete!
You can find them on


Hi everyone, first off sorry for bumping this topic but I really need some opinions from you guys.

I’m just starting out with RE and I’ve been stuck on the 2nd challenge (x2) for the past few days and would like to know how difficult those challenges are? I mean, is it normal to struggle so much on such an early level or maybe all this hacking stuff is sort of… not my thing?

How did you guys go about solving x2? I’m using IDA and I’ve found the decompiler output awful, especially for the hashing function, so I’m trying to translate the assembly code into C code myself but it’s being very difficult and time-consuming…

Any tips on how to approach this? Maybe I need to study more ASM x64? Get to know some tools?
(btw I’m using IDA for static analysis and GDB (gef) for dynamic analysis (watching registers basically))

1 Like

Where You’re stuck ?