Reversing : The Hacker's Guide to Reverse Engineering

(ff) #1
such branch is not be taken is in the very last iteration. Forward branches (typ-
ically used in ifstatements) are assumed to not be taken.
In order to improve the processor’s prediction abilities, IA-32 processors
employ a branch trace buffer (BTB) which records the results of the most recent
branch instructions processed. This way when a branch is encountered, it is
searched in the BTB. If an entry is found, the processor uses that information
for predicting the branch.

Conclusion


In this chapter, we have introduced the concept of low-level software and gone
over some basic materials required for successfully reverse engineering pro-
grams. We have covered basic high-level software concepts and how they
translate into the low-level world, and introduced assembly language, which
is the native language of the reversing world. Additionally, we have covered
some more hard core low-level topics that often affect the reverse-engineering
process, such as compilers and execution environments. The next chapter pro-
vides an introduction to some additional background materials and focuses on
operating system fundamentals.

68 Chapter 2

Free download pdf