Book description
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
Table of contents
- Copyright
- Credits
- Foreword
- Acknowledgments
- Introduction
-
I. Reversing 101
-
1. Foundations
- 1.1. What Is Reverse Engineering?
- 1.2. Software Reverse Engineering: Reversing
- 1.3. Reversing Applications
- 1.4. Low-Level Software
- 1.5. The Reversing Process
- 1.6. The Tools
- 1.7. Is Reversing Legal?
- 1.8. Code Samples & Tools
- 1.9. Conclusion
- 2. Low-Level Software
- 3. Windows Fundamentals
- 4. Reversing Tools
-
1. Foundations
-
II. Applied Reversing
-
5. Beyond the Documentation
- 5.1. Reversing and Interoperability
- 5.2. Laying the Ground Rules
- 5.3. Locating Undocumented APIs
-
5.4. Case Study: The Generic Table API in NTDLL.DLL
- 5.4.1. RtlInitializeGenericTable
- 5.4.2. RtlNumberGenericTableElements
- 5.4.3. RtlIsGenericTableEmpty
- 5.4.4. RtlGetElementGenericTable
- 5.4.5. RtlInsertElementGenericTable
- 5.4.6. RtlLookupElementGenericTable
- 5.4.7. RtlDeleteElementGenericTable
- 5.4.8. Putting the Pieces Together
- 5.5. Conclusion
- 6. Deciphering File Formats
- 7. Auditing Program Binaries
- 8. Reversing Malware
-
5. Beyond the Documentation
-
III. Cracking
- 9. Piracy and Copy Protection
- 10. Antireversing Techniques
-
11. Breaking Protections
- 11.1. Patching
- 11.2. Keygenning
- 11.3. Ripping Key-Generation Algorithms
-
11.4. Advanced Cracking: Defender
- 11.4.1. Reversing Defender's Initialization Routine
- 11.4.2. Analyzing the Decrypted Code
- 11.4.3. SoftICE's Disappearance
- 11.4.4. Reversing the Secondary Thread
- 11.4.5. Defeating the "Killer" Thread
- 11.4.6. Loading KERNEL32.DLL
- 11.4.7. Reencrypting the Function
- 11.4.8. Back at the Entry Point
- 11.4.9. Parsing the Program Parameters
- 11.4.10. Processing the Username
- 11.4.11. Validating User Information
- 11.4.12. Unlocking the Code
- 11.4.13. Brute-Forcing Your Way through Defender
- 11.5. Protection Technologies in Defender
- 11.6. Conclusion
-
IV. Beyond Disassembly
- 12. Reversing .NET
-
13. Decompilation
- 13.1. Native Code Decompilation: An Unsolvable Problem?
- 13.2. Typical Decompiler Architecture
- 13.3. Intermediate Representations
- 13.4. The Front End
- 13.5. Code Analysis
- 13.6. The Back End
- 13.7. Real-World IA-32 Decompilation
- 13.8. Conclusion
-
A. Deciphering Code Structures
- A.1. Understanding Low-Level Logic
- A.2. Control Flow & Program Layout
- A.3. Effects of Working-Set Tuning on Reversing
- B. Understanding Compiled Arithmetic
- C. Deciphering Program Data
- D. Citations
Product information
- Title: Reversing: Secrets of Reverse Engineering
- Author(s):
- Release date: April 2005
- Publisher(s): Wiley
- ISBN: 9780764574818
You might also like
video
Reverse Engineering and Exploit Development
In this Reverse Engineering and Exploit Development training course, expert author Philip Polstra will teach you …
book
Mastering Reverse Engineering
Implement reverse engineering techniques to analyze software, exploit software targets, and defend against security threats like …
book
Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation
Analyzing how hacks are done, so as to stop them in the future Reverse engineering is …
book
Ghidra Software Reverse Engineering for Beginners
Detect potentials bugs in your code or program and develop your own tools using the Ghidra …