CHAPTER 15Assembly Language and Reverse Engineering
This chapter will introduce you to the concept of reverse engineering using the assembly language. This can be a complicated topic, but ideally, as you read this chapter, the topic won't seem so complex, and you will find it fun to learn.
First, you will learn the basics of assembly language. Next, you will see how to apply reverse engineering in practice using the knowledge you acquired in the assembly language section.
In this chapter, you will learn about the following:
- Basics of assembly language
- CPU registers
- Assembly instructions
- Data types
- Memory segments
- Reverse engineering
CPU Registers
You're probably excited to learn the how to use the assembly language. This language is not a standard programming language like Java, Python, or .NET. This is the closest area to the CPU and memory. In other words, you are talking directly to the boss, which is your computer motherboard.
The first part that you need to understand is the CPU registers. These registers are used to store data temporarily and manipulate that data as well.
General CPU Registers
Figure 15.1 shows you the general‐purpose registers that comprise AX, BX, CX, and DX.
The first one (AX) is the accumulator register, and it's used for calculations such as addition, subtraction, division, and multiplication. For the 64‐bit ...
Get Kali Linux Penetration Testing Bible now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.