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.
- Disassembler 101 An overview
- GDB Quick Old school terminal tactics
- x86 Assembly Crash Course 25 pgs, 2013.
- NASM & FASM
- CTF Guide #1 & #2
- Intro to C and Software Design Good, 2005
- GNU C Intro Complete, can be used as reference
- Algorithms Design (in C) ok book, intermediate concepts, 2018.
- ModernC for Absolute Beginners Not a fan of this version, but it's new.
- ModernC++ for Absolute Beginners Efficient.
- Reverse Engineering for Beginners: Available in multiple languages, good resource for beginners.
- Programming from the Ground Up: x86 Linux key concepts, Princeton, sequel book by author, 2016.
- Learn to Program with Assembly: Teaches x86-64 with Linux assembly language, 2021.
- Blue Fox: Arm & Reverse Engineering: Introduces binary analysis concepts with Arm, 2023. (#1 on amazon)
- 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.
- FreeCodeCamp ARM Tutorial 2 hours, decent probably
- MIPS Assembly Tutorial rare enthusiasm, might be good
- Modern C++ Tutorial Series Effective dual instructor content
- C Tutorial Series bloat, decent though; there's also A full vid
- GDB Tutorial ok intro by Waterloo, 1hr
- PS1 Programming Language article on why PS1 used C
- Lua StackOverflow Guide Brief, probably not very good
- Computer Networks Good book on networks
- Mastering Defensive Security Random cybersecurity book.
- Ghidra NSA Software reverse engineering kit. Includes disassembly, decompilation, etc. Highly extensible.
- 010 Editor Best Proprietary Hex Editor for binary analysis; Binja, Free alt is: HxD, Bless, or ImHex
- x64dbg Open source x64/x32 Windows debugger. Reko decompiler
- 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
- 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