So you want to learn to reverse engineer and don’t really know where to start, well in this post I will doing a basic write-up on how to get started as a beginner.
Some useful resources:
https://www.nayuki.io/page/a-fundamental-introduction-to-x86-assembly-programming
https://beginners.re/RE4B-EN.pdf
https://en.wikipedia.org/wiki/X86_instruction_listings
https://www.tutorialspoint.com/cplusplus/cpp_basic_syntax.htm
http://www.studytonight.com/cpp/basics-of-cpp.php
http://www.tutorialspoint.com/ansi_c/c_introduction.htm
https://github.com/0xtyh/awesome-reversing
I have included links for x86 Assembly & C/C++ as this is needed before you start reversing.
I suggest you begin in this order:
- Learn the fundamentals of x86 Assembly using the links provided
- Familiarise yourself with a low level language such as C / C++
- Begin on simple x86 unix binaries. Crackme’s and ReverseMe’s will be listed below, they’re an easy way to start
CrackMe’s and ReverseMe’s to begin reversing
http://www.reteam.org/reversemes.html
https://github.com/wamsachel/ReverseMes
Recommended x86 Debuggers (disassembly analysis software)
Immunity Debugger is a branch of OllyDbg v1.10, with built-in support for Python scripting
http://immunityinc.com/products/debugger/index.html
OllyDbg is a free and powerful Windows debugger with a built-in disassembly and assembly engine. Very useful for patching, disassembling, and debugging.