Introduction ------------ PyXfuscator is a Python obfuscator, deobfuscator, and user-assisted decompiler. PyXfuscator offers reverse engineering centered around the Abstract Syntax Tree (AST) model. Pretty printer -------------- 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. Decompiler ---------- 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. Author ------ PyXfuscator is written by Nam T. Nguyen with contributions from: o Lam H. Dao License ------- PyXfuscator is distributed under the GNU General Public License version 2.