Beginning with a basic primer on reverse engineering-including computer internals, operating systems, and assembly language-and then discussing the various
applications of reverse engineering, this book provides readers with practical, in-depth techniques for software reverse engineering. The book is broken into two parts, the first deals with security-related reverse engineering and the second explores the more practical aspects of reverse engineering. In addition, the author explains how to reverse engineer a third-party software library to improve interfacing and how to reverse engineer a competitor's software to build a better product.
� The first popular book to show how software reverse engineering can help defend against security threats, speed up development, and unlock the secrets of competitive products
� Helps developers plug security holes by demonstrating how hackers exploit reverse engineering techniques to crack copy-protection schemes and identify software targets for viruses and other malware
� Offers a primer on advanced reverse-engineering, delving into "disassembly"-code-level reverse engineering-and explaining how to decipher assembly language
Eldad Eilam is a consultant in the field of reverse engineering. He assists clients with operating system and in-depth software reverse engineering, and has devoted several years to developing advanced reverse engineering techniques.
Foreword vii Acknowledgments xi Introduction xxiii 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 Index 567