工具

de4js JavaScript 反混淆与解包工具

在浏览器中运行的 JavaScript 反混淆与解包工具,以 Jekyll 网站形式构建,也可作为渐进式 Web 应用离线使用。它可自动识别或由使用者选择编码方式,还原 Dean Edwards 的 Packer、基于 eval 和数组的混淆器、部分 Obfuscator.IO 输出、JSFuck、JJencode、AAencode、URL 编码、My Obfuscate 和 WiseLoop,再对结果进行美化和语法高亮,并提供反转义字符串、合并字符串、恢复对象路径和计算常量表达式等选项。另有可选的用户脚本把代码发送到 JS Nice 服务,为难以阅读的标识符重新命名。

使用条件与局限

  • 仓库已归档。最后一个版本 v1.12.0 发布于 2021-03-28;所审阅的 master 提交日期为 2021-11-12,此后只增加了依赖更新,以及对选项值转换为布尔值方式的修复。README 指出 Obfuscator.IO 始终在更新,包括本工具在内的自动化工具通常跟不上其最新版本。审阅时主页 lelinhtinh.github.io/de4js 经重定向后仍可使用该应用。
  • 使用托管页面无需安装。本地运行可用 docker-compose,或使用 Ruby 2.1+、Bundler 和 GitHub Pages 的 Jekyll gem,地址为 localhost:4000/de4js/;npm run build 还需要 workbox-cli 来生成离线用的 service worker。Wise 解包器从 NotSoWise git 子模块载入,须一并检出该子模块。
  • 输入可以是粘贴的代码、打开的文件或从 URL 获取的脚本。Eval、JSFuck、Array、_Number、Obfuscator.IO 和 AAencode 解码器以及表达式计算选项,会在 Web Worker 中用 eval 执行输入的全部或部分内容,因此不可信代码会在浏览器的 worker 环境中运行。JS Nice 用户脚本通过未加密的 HTTP 把代码发送到 jsnice.org,且无法离线使用。
  • package.json 未定义测试,仓库也没有自动化测试或 CI。解码能否成功取决于混淆工具及其版本,因此需要阅读输出结果加以核对。
  • 采用 MIT 许可;随附的 js-beautify、highlight.js、clipboard.js、math.js、Workbox、magic-check 代码以及 AAencode 和 JJencode 解码器保留各自的声明。所审来源未提及 REA 的使用,本收录未对任何代码进行反混淆。

关于此条目

类型
工具
类别
JavaScript 与 Electron 工具
关联
基础工具
目标
网站

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · lelinhtinh/de4js · 修订 b06fff9
  2. worker/decode.js GitHub · lelinhtinh/de4js · 修订 b06fff9
  3. lib/evaldecode.js GitHub · lelinhtinh/de4js · 修订 b06fff9
  4. lib/utils.js GitHub · lelinhtinh/de4js · 修订 b06fff9
  5. _data/methods.yml GitHub · lelinhtinh/de4js · 修订 b06fff9
  6. _data/options.yml GitHub · lelinhtinh/de4js · 修订 b06fff9
  7. userscript/de4js_helper.user.js GitHub · lelinhtinh/de4js · 修订 b06fff9
  8. .gitmodules GitHub · lelinhtinh/de4js · 修订 b06fff9
  9. package.json GitHub · lelinhtinh/de4js · 修订 b06fff9
  10. docker-compose.yml GitHub · lelinhtinh/de4js · 修订 b06fff9
  11. LICENSE GitHub · lelinhtinh/de4js · 修订 b06fff9
  12. https://github.com/lelinhtinh/de4js/releases/tag/v1.12.0

同分区更多条目:应用

应用分区全部 114 项资源