DeObfuscate Js ============================
npm install deobfuscateDeObfuscate Js
============================
This project is targeting to make minified code more readable and more structured. It utilized the uglifyJs AST.
What this project will do:
1. Translate Constants: usually, compressor will use variables with short id to replace global objects and constants like: 'window', 'Object', 'undefined', 'null', etc. deobfuscateJs will translate these back.
2. String Property Access: to save file size, common property accesses(``a.hasOwnProperty('xxx')`) usually will to transform to `var b="hasOwnProperty"; ab`, deobfuscateJs try to resolve this and also avoid side effect.
3. Inline Functions:
Install
-------------
` javascript`
npm install deobfuscate
How To
-------------
` javascript`
deob -h`
The help information will display:
Usage: deob [options]
Options:
-h, --help output usage information
-V, --version output the version number
-s, --silent Don't output anything
-o, --output [file] File that deobfuscated js will be stored to
-c, --config [config.json] Customize config files for deobfuscating
-t,--trace Enable function instruments tracing
--pipe Enable pipe output
--inline Try to inline simple functions, it's unsafe
--nogetset Assume that there is no getter/setter in code
``
TODOs
------------------
1. Change to SpiderMonkey AST Tree
3. Bi-direction AST Tree
2. Enhance the AST Tree to enable duplicated definitions analysis
4. Inline for functions with multiple statements
5. More intelligent name guessing based on key-value pairs
6. Add other new optimization that compressor will use