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: 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.
 * 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.

Considering its relatively narrow subject matter, Reversing is a bestseller that has remained on Amazon.com's list of top 100 software books for several years, since its initial release.

Chapter Outline

 * Part I: Reversing 101.
 * Chapter 1: Foundations.
 * Chapter 2: Low-Level Software.
 * Chapter 3: Windows Fundamentals.
 * Chapter 4: Reversing Tools.
 * Part II: Applied Reversing.
 * Chapter 5: Beyond the Documentation.
 * Chapter 6: Deciphering File Formats.
 * Chapter 7: Auditing Program Binaries.
 * Chapter 8: Reversing Malware.
 * Part III: Cracking.
 * Chapter 9: Piracy and Copy Protection.
 * Chapter 10: Antireversing Techniques.
 * Chapter 11: Breaking Protections.
 * Part IV: Beyond Disassembly.
 * Chapter 12: Reversing .NET.
 * Chapter 13: Decompilation.
 * Appendix A: Deciphering Code Structures.
 * Appendix B: Understanding Compiled Arithmetic.
 * Appendix C: Deciphering Program Data.

Editions

 * Reversing: Secrets of Reverse Engineering, English, 2005. 595pp. ISBN 0-7645-7481-7
 * Reversing: 逆向工程揭密, Simplified Chinese, 2007. 598pp. ISBN 978-7-121-04995-8