Book Image

Binary Analysis Cookbook

By : Michael Born
Book Image

Binary Analysis Cookbook

By: Michael Born

Overview of this book

Binary analysis is the process of examining a binary program to determine information security actions. It is a complex, constantly evolving, and challenging topic that crosses over into several domains of information technology and security. This binary analysis book is designed to help you get started with the basics, before gradually advancing to challenging topics. Using a recipe-based approach, this book guides you through building a lab of virtual machines and installing tools to analyze binaries effectively. You'll begin by learning about the IA32 and ELF32 as well as IA64 and ELF64 specifications. The book will then guide you in developing a methodology and exploring a variety of tools for Linux binary analysis. As you advance, you'll learn how to analyze malicious 32-bit and 64-bit binaries and identify vulnerabilities. You'll even examine obfuscation and anti-analysis techniques, analyze polymorphed malicious binaries, and get a high-level overview of dynamic taint analysis and binary instrumentation concepts. By the end of the book, you'll have gained comprehensive insights into binary analysis concepts and have developed the foundational skills to confidently delve into the realm of binary analysis.
Table of Contents (12 chapters)

Introduction to the IA-32 registers

Before we jump into 64-bit assembly on Linux, it's important to learn about 32-bit x86 assembly on Linux since it will make the transition to 64-bit go much more smoothly. While I understand most modern hosts run 64-bit operating systems, I'm a firm believer in solidifying basic knowledge before moving on to the current standard. With that said, I also don't believe we need to go too far back for the purposes of preparing you for the examples in this book. We'll go over the 8-bit and 16-bit registers while covering the 32-bit registers.

In modern 32-bit x86 processors, there are a total of eight general-purpose registers, six segment registers, an EFLAGS register, and an instruction pointer register. Some processors even contain additional registers to handle floating-point mathematical operations and extended registers for...