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)

64-bit Assembly on Linux and the ELF Specification

Now that we understand the 32-bit assembly on Linux, making the transition to IA64 should go fairly smoothly as there is some overlap in knowledge, as we will soon see. It was an important decision to break up assembly and the ELF specification into two chapters because it's necessary to make sure you have a solid understanding of IA32 and ELF32 first before moving on to IA64 and 64-bit ELF.

Since there aren't many differences between the ELF specification on 32-bit and 64-bit, it's less important for the ELF specification to be broken up; however, the differences between IA32 and IA64 are significant, especially when we look at the general-purpose registers and making system calls in IA64. Due to this, I just kept the ELF specification with its appropriate system architecture. Go back and reread the previous chapter...