#!/usr/bin/env node /** * [已废弃] 旧 TDC VM 反汇编器 (线性扫描, 依赖 Node + Babel) * * 实测它有两个缺陷, 会产出**错误**的反汇编, 故已废弃: * 1. opcode 表是手抄的, 而且对字节码里的**数据区**做线性扫描 —— 一旦扫进数据区就失步, * 产出 73 处 UNKNOWN (其中 16 处是 >69 的"不可能" opcode); * 2. 未把 CREATE_CLOSURE(57) 的闭包体 (target) 作为遍历根 —— 导致大半个程序不可达。 * * 请改用**纯 Python** 的正确实现 (可达性 CFG 反汇编, 0 处非法 opcode): * .venv/bin/python tools/tdc_disasm.py * * 本文件仅保留为兼容入口: 直接转发给上面的 Python 工具。 */ const { spawnSync } = require("child_process"); const path = require("path"); const tdcFile = process.argv[2] || "tcaptcha/core_js/tdc_sample.js"; const tool = path.join(__dirname, "tdc_disasm.py"); console.error("[deprecated] tools/tdc_vm_disasm.js 已废弃 -> 转发到 tools/tdc_disasm.py (纯 Python)"); const r = spawnSync("python3", [tool, tdcFile], { stdio: "inherit" }); if (r.error) { console.error("无法启动 python3; 请直接运行: .venv/bin/python tools/tdc_disasm.py " + tdcFile); process.exit(1); } process.exit(r.status == null ? 1 : r.status);