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:

bulleta 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