
Reversing
Secrets of Reverse Engineering
The book that taught a generation how software actually looks once you strip away the source. Still the clearest on-ramp to thinking in assembly, even with dated tools.
As an Amazon Associate we earn from qualifying purchases. The link above is sponsored.
- Authors
- Eldad Eilam
- Published
- 2005
- Publisher
- Wiley
- Pages
- 624
- Language
- English
Prerequisites
Comfort with C and a working mental model of how a CPU executes instructions. You do not need prior assembly, but you do need patience.
Read this if
People who want to genuinely understand reverse engineering from first principles rather than just running a disassembler and hoping. Self-taught practitioners filling in the gaps under their tooling.
Skip this if
Anyone who wants a modern, hands-on lab course. Skip this if you expect Ghidra walkthroughs or current malware samples; the toolchain here is OllyDbg and IDA-era and the OS examples are Windows XP.
Key takeaways
- Reverse engineering is a disciplined reading skill, not magic; the fundamentals of how compilers, stacks, and calling conventions work outlast any tool.
- The most durable part of the book is the bridge from high-level constructs to their assembly fingerprints, which you will recognize for the rest of your career.
- The Windows-internals, copy-protection, and anti-reversing material is a snapshot of 2005 and should be treated as historical context, not current practice.
Notes
A genuine classic that is half timeless and half museum piece. The conceptual chapters, how code compiles down, how to read a stack frame, how to recognize a loop or a switch in raw assembly, are as useful today as they were twenty years ago. The tool-specific and OS-specific chapters have aged hard, so read it for the mental models and get your tooling elsewhere.
What to read before
What to read before Reversing →Beginner · 2019
The Pragmatic Programmer
Thomas and Hunt's career-defining set of practical heuristics for writing software professionally — orthogonality, broken-windows, DRY, tracer bullets, and the underlying argument that craftsmanship is a posture, not a process.
Beginner · 2020
Alice and Bob Learn Application Security
Tanya Janca's hands-on AppSec primer covering threat modeling, secure design, secure coding, testing, deployment, and the social side of running an AppSec program — through a friendly, narrative-driven structure.
Beginner · 2018
Click Here to Kill Everybody
Bruce Schneier's policy-level argument that as everything becomes a computer (cars, medical devices, infrastructure, voting), the security failures that used to merely cost us money will start costing lives — and the regulatory shape of that future is being decided now.
What to read next
What to read after Reversing →Advanced · 2018
Practical Binary Analysis
Dennis Andriesse on the binary toolchain you can actually script: ELF internals, dynamic taint analysis, symbolic execution and instrumentation with concrete code-along examples.
Advanced · 2005
Silence on the Wire
Michal Zalewski's classic on the indirect attack surface: timing channels, protocol-stack fingerprinting, and the often-overlooked side data leaked by every layer of a stack.
Advanced · 2021
The Hardware Hacking Handbook
Jasper van Woudenberg and Colin O'Flynn (NewAE / ChipWhisperer) on real hardware attacks: bus sniffing, fault injection, side-channel power analysis, and the lab work that turns a black box into a known target.
Explore similar books
Alternatives to Reversing →Intermediate · 2012
Practical Malware Analysis
Still the gold standard textbook for static and dynamic malware analysis on Windows.
Intermediate · 2020
The Ghidra Book
The reference manual for the NSA's open-source disassembler, written by the author of The IDA Pro Book. Exhaustive on the tool, thinner on the craft of reversing itself.
Intermediate · 2018
Social Engineering
Christopher Hadnagy's broad procedural reference on social engineering as a discipline — recon, pretexting, elicitation, microexpressions, and the structured engagement model his consultancy operationalized.