Skip to content

JS混淆代码的AST分析工具 AST analysis tool for obfuscated JS code

License

Notifications You must be signed in to change notification settings

A-SunsetMkt-Forks/decode-js

 
 

Repository files navigation

decode-js

基于 Babel 的 AST 分析器和处理器,可以处理以下情况:

  • stringArray(包括添加了旋转操作,以及嵌套调用的情况)
  • 死代码
  • 控制流扁平化(switch)
  • 局部代码变换(Object表达式、字符串分割等)
  • 自定义代码(自保护,禁止控制台调试,禁止控制台输出)

An AST analyzer and processor based on Babel that can handle the following situations:

  • stringArray (including Rotate, Wrappers, and ChainedCalls)
  • deadCode
  • controlFlowFlattening (switch)
  • transformer (ObjectExpression, SplitString, and etc.)
  • customCode (self-defending, debug-protection, console-output)

使用 Usage

如果在安装和运行过程中出现问题,请先排查isolated-vm的安装和使用要求

If problems occur during installation and execution, please check the requirements of isolated-vm first

  1. 准备一个nodejs环境 (16.x以上 推荐18.x)

    Prepare a nodejs environment (>=16.x and 18.x is suggested)

  2. 通过npm i安装依赖

    Install the dependencies via npm i

  3. 按如下方式运行插件:

    Run the plugins as follows:

# pre-defined command
npm run xxx
# or full command
npm run decode -- -t type [-i input.js] [-o output.js]

xxx为预定义的指令,见package.json中的scripts字段。

xxx are predefined commands, see the scripts field in package.json.

type

  • common (高频局部混淆)
  • jjencode (sojson.com 版本)
  • sojson
  • sojsonv7
  • obfuscator

默认输入文件为input.js,文件中不能包含除混淆代码以外的内容(例如非混淆代码)。

The default input file is input.js. The file cannot contain additional codes other than obfuscated code (such as non-obfuscated code).

默认输出文件为output.js

The default output file is output.js.

Related Projects

About

JS混淆代码的AST分析工具 AST analysis tool for obfuscated JS code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%