deobfuscate

DeObfuscate Js ============================

DeObfuscate 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"; a[b]('xxx'), deobfuscateJs try to resolve this and also avoid side effect.
  3. Inline Functions:
   npm install deobfuscate
    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
  1. Change to SpiderMonkey AST Tree
  2. Bi-direction AST Tree
  3. 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