Welcome to the ADAM Home Page
"And out of the ground the LORD God
formed every beast of the field, and every fowl of the air;
and brought them unto Adam to see what he would
call them: and whatsoever Adam called
every living creature, that was the name thereof."
Genesis 2:9 - The Holy Bible (King James Version)
ADAM (Another Decompilation Assistant Methodology) is a tool
for
the deobfuscation of Java classes
Obfuscation techniques based on the malicious renaming of the identifiers
rename the entities
(classes, methods, fields) of a compiled Java class in such a way to prevent its
decompilation
or to make the decompiled code difficult to be understood.
ADAM (Another Decompilation Assistant Methodology) is a
tool that renames the identifiers
of an obfuscated set of Java classes so to make their
decompilation possible. This is done
by replacing the obfuscated identifiers (names of
classes, interfaces, field variables and
methods) with new identifiers that are chosen in such a
way to not prevent the decompilation process.
Moreover, the identifiers generated by ADAM include some additional information,
such as the type
of a field member or the access level of a method, useful in the task of
understanding the behavior
of a decompiled source code.
Requirements
ADAM is entirely written in Java and requires to run:
| a Java 2 compliant Virtual Machine (e.g.,
http://java.sun.com/j2se/1.4.2/download.html) | |
| the Jikes Bytecode Toolkit (JikesBT) library. This library is developed at IBM and can be freely downloaded at the address: http://www.alphaworks.ibm.com/tech/jikesbt. |
Download
The ADAM software distribution comes with several examples of
Java programs obfuscated using
some advanced obfuscation techniques based on the renaming of identifiers.
Click here to download ADAM v. 1.0 (approx. 40 kbytes)
Support
The corresponding author for any issue or question concerning ADAM is Umberto Ferraro Petrillo