138
android Malware and analysis
• Header
• Chart with the positions of the Strings
• Table positions Types
• Table with the positions of the structures/methods Prototypes
• Chart with the positions of the properties of classes or meth-
ods Fields
• Table positions Methods
• Positions table Data Classes
Except for the Strings table (which is referring to all other tables
as it is the place where every name of classes, methods, functions,
variables, and data types are stored), the rest follows a reverse hierar-
chical order, that is, if we would like to disassemble the .dex les after
obtaining the list of strings, we would get the list of classes, methods,
properties, and elds of the methods. e structure of this method,
which links methods and elds and nally the types, would indicate
the kinds of method elds and types that return the methods. at is
to say, it is a relational structure that has as an objective the maximum
reuse of information, avoiding redundancies and achieving the opti-
mal format for mobile terminals (Figure8.6).
As noted, there are tables in which the position is indicated where
the information that composes the table is usually oset optionally by
a length. ese dates together with the machine code are in the data
section.
Like almost everything, this system has its advantages and objec-
tions. e system of Android devices allows the change to another vir-
tual machine, keeping another in the background, a great advantage
that endows our devices of real multitasking. However, each applica-
tion has to develop in its own virtual machine instead of executing
directly since the operative system causes the whole of the system to
lose uency, and this worsens depending on the number of applica-
tions we have open on the screen or in the background.
In spite of this drawback, Android is a notably uid system, but one
wonders if it may be even more uid. For Google, the answer is yes.
For that reason, Google decided to create a new virtual machine,
called ART (Android runtime), which in the future will replace the
actually Dalvik virtual machine. is new virtual machine pretended
to make operations faster. For this, it will work with a new kind of