Reversing : The Hacker's Guide to Reverse Engineering
Conditional Branches Conditional branches are implemented using the Jccgroup of instructions. These are instructions that condit ...
Examples Let’s have a quick look at a few short snippets of assembly language, just to make sure that you understand the basic c ...
structure’s address is obtained, and might shed some light on the nature of this data structure. I will be demonstrating all kin ...
Compiler-generated code can be difficult to read. Sometimes it is just so dif- ferent from the original code structure of the pr ...
Compiler Architecture The average compiler consists of three basic components. The front end is responsible for deciphering the ...
Properly choosing the intermediate representation of code in a compiler is one of the compiler designer’s most important design ...
section on CPU pipelines later in this chapter). It is also possible to partially unroll a loop so that the number of iterations ...
Because the code generator is responsible for the actual selection of specific assembly language instructions, it is usually the ...
Most compilers support the generation of listing files during the compila- tion process. For some compilers, such as GCC, this i ...
shines. Intel has, unsurprisingly, focused on making this compiler gen- erate highly optimized IA-32 code that takes the specifi ...
■■ Enhanced functionality: When a program is running under a virtual machine, it can (and usually does) benefit from a wide rang ...
cutable and decipher each instruction and “execute” it in a virtual environ- ment implemented in software. It is important to un ...
Having this kind of information completely changes the reversing experi- ence because it brings us much closer to the original h ...
prevent parallelism. The general strategy employed by modern IA-32 proces- sors for achieving parallelism is to simply execute t ...
Intel NetBurst The IntelNetBurstmicroarchitecture is the current execution environment for many of Intel’s modern IA-32 processo ...
In terms of the actual execution of operations, the architecture provides four execution ports (each with its own pipeline) that ...
Notice how port 0 and port 1 both have double-speed ALUs (arithmetic log- ical units). This is a significant aspect of IA-32 opt ...
such branch is not be taken is in the very last iteration. Forward branches (typ- ically used in ifstatements) are assumed to no ...
69 Operating systems play a key role in reversing. That’s because programs are tightly integrated with operating systems, and pl ...
Components and Basic Architecture Before getting into the details of how Windows works, let’s start by taking a quick look at ho ...
«
1
2
3
4
5
6
7
8
9
10
»
Free download pdf