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
STEPHANIE DOMAS is the CISO of Canonical, where she is driving Canonical to be the most trusted computational partner in all of open source. Prior to that she was the Chief Security Technology Strategist at Intel where she owned the cross-Intel security technology strategy across Intel's wide portfolio of products. Stephanie is a passionate educator, strategist, speaker, advisor, and security enthusiast.
CHRISTOPHER DOMAS is a security researcher primarily focused on firmware, hardware, and low level processor exploitation. He is best known for releasing impractical solutions to non-existent problems, including the world's first single instruction C compiler (M/o/Vfuscator), toolchains for generating images in program control flow graphs (REpsych), and Turing-machines in the vi text editor.