x86 Software Reverse-Engineering, Cracking, and Counter-Measures is centered around the world of disassembling software. It will start with the basics of the x86 assembly language, and progress to how that knowledge empowers you to reverse-engineer and circumvent software protections. No knowledge of assembly, reverse engineering, or software cracking is required.
The book begins with a bootcamp on x86, learning how to read, write, and build in the assembly that powers a massive amount of the world’s computers. Then the book will shift to reverse engineering applications using a handful of industry favorites such as IDA, Ghidra, Olly, and more. Next, we move to cracking with techniques such as patching and key generation, all harnessing the power of assembly and reverse engineering. Lastly, we’ll examine cracking from a defensive perspective. Providing learners with techniques to be a better defender of their own software, or knowledge to crack these techniques more effectively. - Assembly: computer Architecture, x86, system calls, building and linking, ASCII, condition codes, GDB, control flow, stack, calling conventions - Reverse Engineering: reconnaissance, strings, RE strategy, stripping, linking, optimizations, compilers, industry tools - Cracking: patching, key checkers, key generators, resource hacking, dependency walking - Defense: anti-debugging, anti-tamper, packing, cryptors/decryptors, whitelist, blacklist, RASP, code signing, obfuscation
A practical and hands-on resource for security professionals to hobbyists, this book is for anyone who wants to learn to take apart, understand, and modify black-box software. x86 Software Reverse-Engineering, Cracking, and Counter-Measures is a vital resource for security researchers, reverse engineers and defenders who analyze, research, crack or defend software applications.
Table of Contents
Introduction xxiii
Chapter 1 Decompilation and Architecture 1
Chapter 2 x86 Assembly: Data, Modes, Registers, and Memory Access 13
Chapter 3 x86 Assembly: Instructions 31
Chapter 4 Building and Running Assembly Programs 43
Chapter 5 Understanding Condition Codes 57
Chapter 6 Analyzing and Debugging Assembly Code 65
Chapter 7 Functions and Control Flow 77
Chapter 8 Compilers and Optimizers 127
Chapter 9 Reverse Engineering: Tools and Strategies 137
Chapter 10 Cracking: Tools and Strategies 147
Chapter 11 Patching and Advanced Tooling 179
Chapter 12 Defense 203
Chapter 13 Advanced Defensive Techniques 217
Chapter 14 Detection and Prevention 229
Chapter 15 Legal 239
Chapter 16 Advanced Techniques 245
Chapter 17 Bonus Topics 251
Conclusion 271
Index 273