Software Reverse Engineering Bookshelf

2025/07/09

Introduction

In my workshops that focus on software reverse engineering (SRE) and low-level programming, I recommend books that, in my opinion, are very high quality for self-study and reference. Here, I’ll try to collect together all of those recommendations for future workshop attendees, and anyone trying to self-study. The focus is on having a bookshelf (real and virtual) of good primary sources. You may prefer printed books, but I recommend also getting PDF copies as well so that you can search within them and have them on-the-go.

There’s a focus here on learning to analyze code designed for Windows on 32 and 64-bit Intel systems. I think that malware is a good starting point for learning SRE, but the same skills are prerequisite to vulnerability research, exploit development, and a variety of other offensive and defensive computer security disciplines. Once you are comfortable reading disassembled listings of Intel code, other architectures, such as ARM or MIPS, shouldn’t give you much trouble. You’ll want to add instruction set reference manuals for those architectures to your collection as well.

You will notice that most of the books on this list are more focused on programming (the forward process of software engineering), rather than SRE. While you don’t need to know much about programming to get started in reverse engineering, you will never become comfortable or adept at doing it without at least picking it up as you go. It can be very instructive, even as an experienced programmer, to work through a book on programming while reverse engineering the compiled code as you go. This gets you used to seeing how a compiler represents common programming constructs in assembly language.

The Bookshelf

General SRE

Windows

Assembly Language

C/C++