# etacsufbo **Repository Path**: tughv/etacsufbo ## Basic Information - **Project Name**: etacsufbo - **Description**: 基于 AST 变换的简易 Javascript 反混淆辅助工具 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-09-11 - **Last Updated**: 2022-09-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # etacsufbo [![experimental](http://badges.github.io/stability-badges/dist/experimental.svg)](http://github.com/badges/stability-badges) [![Build Status](https://travis-ci.org/ChiChou/etacsufbo.svg?branch=master)](https://travis-ci.org/ChiChou/etacsufbo) [![Coverage Status](https://coveralls.io/repos/github/ChiChou/etacsufbo/badge.svg?branch=master)](https://coveralls.io/github/ChiChou/etacsufbo?branch=master) `'obfuscate'.split('').reverse().join('')` 一个简易 Javascript 反混淆工具,基于抽象语法树分析和修改实现。 **这个工具已废弃。请移步类似工具 https://github.com/mindedsecurity/JStillery** **如果您有 PL 的基础,建议阅读和使用 http://prepack.io/** ## 快速上手 `git clone https://github.com/ChiChou/etacsufbo.git` 下载项目 `cd etacsufbo` 进入目录 `npm i` 安装依赖项目 `./cli.js path/to/obfuscated/script.js` 输出反混淆结果 ## 命令行参考 ./cli.js [混淆的代码] [输出文件名] * 如省略输出文件名,程序将把清理结果输出到 stdout * 如不带参数执行,将进入 REPL 模式 * 使用 `npm link` 可将 etacsufbo 命令注册到全局 ## 在代码库中引用 `npm install https://github.com/ChiChou/etacsufbo.git` 将项目添加为依赖项 `require('etacsufbo').clean('your code goes here')` 只提供一个 API ## 代码还原规则 * 全局变量声明的字符串数组,在代码中直接使用数字下标引用其值 * 连续的二元运算,如 `1 * 2 + 3 / 4 - 6 % 5` * 正则表达式字面量的 source,字符串字面量的 length * 完全由字符串常量组成的数组,其 join / reverse / slice 等方法的返回值 * 字符串常量的 substr / charAt 等方法的返回值 * decodeURIComponent 等全局函数,其所有参数为常量的,替换为其返回值 * 结果为常数的数学函数调用,如 `Math.sin(3.14)` ## TODO * 处理作用域 * 处理自定义加密函数 ## 许可 [GPL v3](LICENSE)