PyXfuscator is a Python obfuscator, deobfuscator, and user-assisted decompiler.
PyXfuscator offers reverse engineering centered around the Abstract Syntax
Tree (AST) model.
At the core of PyXfuscator is a source formatter. Input to this printer is an
AST. Its output is a readable Python source code.
Obfuscator and Deobfuscator
PyXfuscator provides a renaming facility that can be used for obfuscating as
well as deobfuscating. In obfuscation, one will walk through the AST and rename
meaningful name nodes to some cryptic, or confusing ones. Deobfuscation is the
reverse process. After that, the modified AST is fed into the pretty printer.
See ``test_pyxfuscator.py`` for examples.
Beside xfuscating, the library also performs little transformation of bytecode
into AST. From there, a source formatter will convert the AST into proper code.
Currently, PyXfuscator works with Python 2.5 bytecodes.
At the moment, only linear code is fully decompiled. Branching and other more
complicated control flow graph require user assistance.
See ``test_decompiler25.py`` for examples.
PyXfuscator is written by Nam T. Nguyen with contributions from:
o Lam H. Dao
PyXfuscator is distributed under the GNU General Public License version 2.