工具
Jsxer JSXBIN 反编译器
面向 JSXBIN 的 C++ 反编译器。JSXBIN 是 Adobe 旧版 ExtendScript 的二进制格式,ExtendScript 则是用于为 Photoshop、InDesign、After Effects 等应用编写脚本的 ECMAScript 3 方言。它读取 JSXBIN 1.0、2.0 或 2.1 字面量,解析为语法树,再输出 JavaScript 源码,并在文件头注明格式版本。实验性的 --unblind 选项可为经 JsxBlind 混淆的符号重新命名;同一反编译器还以共享库形式提供,并附基于 ctypes 的 Python 绑定。
使用条件与局限
- 审阅时最新版本为 v1.7.4,发布于 2025-03-31,提供 macOS arm64、macOS x86 和 Windows 压缩包。所审阅的 master 提交日期为 2025-04-22,比该版本只多一个提交,内容仅是让 README 中的提示更醒目:提示称项目正在独立的 rust-rewrite 分支上用 Rust 重写,该分支最新提交日期为 2025-03-11。本条目描述的是 master 上的 C++ 代码。
- 输入文件只能包含 JSXBIN 字面量,通常以 @JSXBIN@ 开头;README 提醒须先删去其前后的其他内容。命令行工具默认在输入文件旁写出 .jsx 文件,也可用 -o 指定其他路径;未通过 JSXBIN 签名检查的输入只会产生错误信息,不会得到反编译代码。
- 从源码构建需要 CMake 3.26+ 和 C++17 编译器;配置时会从 GitHub 获取 fmt 9.1.0、plog 1.1.9 和 CLI11 2.3.2。README 只说明了 macOS 上的构建,而 CMakeLists.txt 也包含 Windows 与 Linux 分支,并构建静态库和共享库;bindings/python/decompiler.py 从构建目录载入该共享库。
- ctest 会构建四个小程序,分别反编译内嵌的数组、对象、成员表达式和 for 语句样例并打印结果;它们只返回反编译器的状态码,不与原始源码比较。CI 在拉取请求时于 macOS 和 Windows 上运行这些测试。TODO.md 列出了尚未解决的问题,包括函数参数顺序、逗号表达式声明、数字输出,以及部分 XML 节点生成的代码不正确。
- 采用 AGPL-3.0 许可。README 称 Jsxer 用于源码恢复和安全研究,并请使用者不要借此盗用脚本作者的成果;README 还致谢 Andrin Meier 对该格式的研究及其 jsxbin-to-jsx-converter 项目,并称该项目的原仓库因 Adobe 的 DMCA 通知而被删除。反编译所得脚本的权利仍归其作者。所审来源未提及 REA 的使用,本收录未反编译任何文件。
关于此条目
- 类型
- 工具
- 类别
- JavaScript 与 Electron 工具
- 关联
- 基础工具
- 目标
- 应用
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · AngeloD2022/jsxer · 修订 0340bd3
- CMakeLists.txt GitHub · AngeloD2022/jsxer · 修订 0340bd3
- src/cli/main.cpp GitHub · AngeloD2022/jsxer · 修订 0340bd3
- src/jsxer/jsxer.cpp GitHub · AngeloD2022/jsxer · 修订 0340bd3
- include/jsxer.h GitHub · AngeloD2022/jsxer · 修订 0340bd3
- bindings/python/decompiler.py GitHub · AngeloD2022/jsxer · 修订 0340bd3
- TODO.md GitHub · AngeloD2022/jsxer · 修订 0340bd3
- tests/src/array-expr.cpp GitHub · AngeloD2022/jsxer · 修订 0340bd3
- .github/workflows/run-tests.yaml GitHub · AngeloD2022/jsxer · 修订 0340bd3
- LICENSE GitHub · AngeloD2022/jsxer · 修订 0340bd3
- https://github.com/AngeloD2022/jsxer/releases/tag/v1.7.4
同分区更多条目:应用
- jni_helper JNI 函数签名提取工具 · 工具
- ReArk 鸿蒙与移动应用逆向分析工作台 · 工具
- Aegis:追踪登录验证码计算 · 案例
- Notion:追踪剪贴板桥接 · 案例
- PicoPrint:LX-D02 打印机调查 · 案例
- ReaCut:视频编辑器重建案例 · 案例