Modern resources, collection curated based on reverse engineering systems (2018+). For beginners and up.
Check external resources + malware analysis for more.
There are different paths to learn reverse engineering. Any decent CS course involving computer architecture, CTFs, or browsing resources. Don't bother memorizing long libraries and functions, instead try to understand how a target's architecture works. Recommendation: read at least 2 of the books here, build an environment, pick preferred tools, then take a software apart methodically.
Terms for common tools
- Debugger - sequence through program assembly
- Disassembler - retrieves the bulk program assembly
- Decompiler - reverts a program to it's source code (if the source is known)
- Reverse Engineering 101 Start here, if this is too difficult, run.
- Reverse Engineering 102 If you can read this, you can learn.
- x86 Assembly Crash Course 25 pgs, 2013.
- NASM & FASM
- CTF Guide #1 & #2
- Learning GNU C Primer to open source C, 2008.
- GNU C Intro Complete, can be used as reference
- C Notes for Professionals Compiled from StackOverflow Documentation, ok book C11, 2018?
- Algorithms Design (in C) ok book, intermediate concepts, 2018.
- Learn to Code With C Recommends Geany, Good Beginner Primer (90 pages) 2016.
- ModernC for Absolute Beginners
- ModernC++ for Absolute Beginners Efficient.
- Reverse Engineering for Beginners: Available in multiple languages, good resource for beginners.
- Programming from the Ground Up: Uses x86 Linux assembly language on important concepts in programming, Princeton University, has sequel book by the author, 2016.
- Learn to Program with Assembly: Teaches x86-64 with Linux assembly language, 2021.
- Blue Fox: Arm & Reverse Engineering: Introduces reverse engineering concepts such as binary analysis and disassembly with Arm, 2023. (#1 on amazon @ 5 stars, great book on Arm Architecture.)
- Intro to GCC
- C Notes for Professionals StackOverflow Documentation, ok book, C11. 2018?
- Computer Science I
- Algorithms Refresh Has notes, references, open source.
- ARM7-TDMI-manual-pt3
- Intro to Arm Assembly
- Ghidra: The Definitive Guide: Key resource on the Ghidra reversing tool.
- Intro to Compilers & Language Design: Brief book on compiler design, free.
- Programming + Data Structures in C neat, good resource?
- Intro to Algorithms
- Reverse Engineering Malware Unicorn
- Windows Exploit Development 2013, series, will replace later.
- Implementing Reverse Engineering: Haven't read this, sample seems ok.
- Game Boy Coding Adventure: Brief but informative game boy hacking book, 2021.
- Lua StackOverflow Guide Brief, probably not very good
- Mastering Defensive Security: Random cybersecurity book.
- Ghidra: Software reverse engineering (SRE) framework by the NSA to analyze compiled code. Includes disassembly, decompilation, scripting, etc. Supports different instruction sets & plug-ins.
- Radare2: Portable reversing framework for disassembly, debugging, forensics, etc. Based on capstone, uses cmdline, scriptable.
- x64dbg: Open source x64/x32 Windows debugger.
- Intro to Microprocessors and Computer Architecture: Brief reference, 2007.
- The Art of Unpacking [PDF]
- Programming for Humans literate programming, make code easy to understand as it's written
- Learning GNU C (Primer), 2008 Confirmed
- Fork the repo, make a new branch.
- Make changes within that branch.
- Commit changes with clear notes and pull request.
Any contributions are appreciated!
Relevant topics: Table of Contents
- C Programming
- x86/64 Architecture/ARM Assembly
- Windows API *10/Legacy/DOS, Linux API
- Reverse Engineering / Game Hacking