REVERSING: Secrets of Reverse Engineering
Reversing: Secrets of Reverse Engineering is a textbook written by Eldad Eilam on the subject of reverse engineering software, mainly within a Microsoft Windows environment. It covers the use of debuggers and other low-level tools for working with binaries. Of particular interest is that it uses OllyDbg in examples, and is therefore one of the few practical, modern books on the subject that uses popular, real-world tools to facilitate learning. The book is designed for independent study and does not contain problem sets, but it is also used as a course book in some university classes.
The book covers several different aspects of reverse engineering, and demonstrates what can be accomplished:
- How copy protection and DRM technologies can be defeated, and how they can be made stronger.
- How malicious software such as worms can be analyzed and neutralized.
- How to obfuscate code so that it becomes more difficult to reverse engineer.
The book also includes a detailed discussion of the legal aspects of reverse engineering, and examines some famous court cases and rulings that were related to reverse engineering.
Part I Reversing 101 1
Chapter 1 Foundations 3
Chapter 2 Low-Level Software 25
Chapter 3 Windows Fundamentals 69
Chapter 4 Reversing Tools 109
Part II Applied Reversing 139
Chapter 5 Beyond the Documentation 141
Chapter 6 Deciphering File Formats 199
Chapter 7 Auditing Program Binaries 243
Part III Cracking 307
Chapter 9 Piracy and Copy Protection 309
Chapter 10 Antireversing Techniques 327
Chapter 11 Breaking Protections 357
Part IV Beyond Disassembly 421
Chapter 12 Reversing .NET 423
Chapter 13 Decompilation 457
Appendix A Deciphering Code Structures 479
Appendix B Understanding Compiled Arithmetic 519
Appendix C Deciphering Program Data 537
Appendix D Citations 561