Software engineering is the act of creating an invention that exists, lives, and
breathes on a microprocessor. We call it a program. Reverse engineering is the act
of discovering how exactly that program lives and breathes, and furthermore it is
how we can understand, dissect, or modify the behavior of that program using a
combination of disassemblers and reversing tools and relying on our hacker instincts
to master the target program which we are reverse engineering. We must understand
the intricacies of binary formats, memory layout, and the instruction set of the
given processor. We therefore become masters of the very life given to a program
on a microprocessor. A reverse engineer is skilled in the art of binary mastery. This
book is going to give you the proper lessons, insight, and tasks required to become
a Linux binary hacker. When someone can call themselves a reverse engineer, they
elevate themselves beyond the level of just engineering. A true hacker can not only
write code but also dissect code, disassembling the binaries and memory segments in
pursuit of modifying the inner workings of a software program; now that is power...
On both a professional and a hobbyist level, I use my reverse engineering skills in
the computer security field, whether it is vulnerability analysis, malware analysis,
antivirus software, rootkit detection, or virus design. Much of this book will be
focused towards computer security. We will analyze memory dumps, reconstruct
process images, and explore some of the more esoteric regions of binary analysis,
including Linux virus infection and binary forensics. We will dissect malware-
infected executables and infect running processes. This book is aimed at explaining
the necessary components for reverse engineering in Linux, so we will be going deep
into learning ELF (executable and linking format), which is the binary format used
in Linux for executables, shared libraries, core dumps, and object files. One of the
most significant aspects of this book is the deep insight it gives into the structural
complexities of the ELF binary format. The ELF sections, segments, and dynamic
linking concepts are vital and exciting chunks of knowledge. We will explore the
depths of hacking ELF binaries and see how these skills can be applied to a broad
spectrum of work.The goal of this book is to teach you to be one of the few people with a strong
foundation in Linux binary hacking, which will be revealed as a vast topic that opens
the door to innovative research and puts you on the cutting edge of low-level hacking
in the Linux operating system. You will walk away with valuable knowledge of Linux
binary (and memory) patching, virus engineering/analysis, kernel forensics, and the
ELF binary format as a whole. You will also gain more insights into program execution
and dynamic linking and achieve a higher understanding of binary protection and
debugging internals.
I am a computer security researcher, software engineer, and hacker. This book is
merely an organized observation and documentation of the research I have done
and the foundational knowledge that has manifested as a result.
This knowledge covers a wide span of information that can't be found in any one
place on the Internet. This book tries to bring many interrelated topics together into
one piece so that it may serve as an introductory manual and reference to the subject
of Linux binary and memory hacking. It is by no means a complete reference but
does contain a lot of core information to get started with.