Base44-Agent/iron-brew_deobfuscator

GitHub: Base44-Agent/iron-brew_deobfuscator

IronBrew 专用脱混淆器,解析并还原受保护的 Lua 5.1 字节码为可读源码。

Stars: 0 | Forks: 0

# IronBrew Deobfuscator v2.0 用于保护 Lua 5.1 脚本的 IronBrew VM 的完整反混淆器。 ## 功能特性 | 阶段 | 模块 | 描述 | |-------|--------|-----------| | 提取 | `extractor.js` | 隔离 payload、VM、解压器和 XOR 密钥 | | 解压 | `decompressor.js` | 还原 LZW、Base Custom、Byte Escape | | 解密 | `xor.js` | 简单 XOR、字符串、通过 magic 自动检测 | | 解析 | `parser.js` | 完整的 Lua 5.1 bytecode 解析器 | | VM 分析 | `vm_analyzer.js` | 映射自定义 opcodes,检测 SuperOps | | 反编译 | `decompiler.js` | 重构可读的 Lua 代码 | | 优化 | `optimizer.js` | 移除 dead code、junk 并进行格式化 | ## 安装说明 ``` git clone cd ironbrew-deobfuscator node deobfuscator.js --help ``` 无外部依赖。要求 Node.js ≥ 14。 ## 使用方法 ``` # 基础 node deobfuscator.js script.lua # 使用自定义输出名称 node deobfuscator.js script.lua output.lua # 完整 Debug node deobfuscator.js script.lua --debug --verbose # 将解析的 bytecode 以 JSON 格式 Dump node deobfuscator.js script.lua --dump-bytecode # Dump VM 分析 node deobfuscator.js script.lua --dump-vm # 无优化(decompiler 的原始代码) node deobfuscator.js script.lua --no-optimize ``` ## 测试 ``` node test/test_runner.js ``` ## 架构 ``` ironbrew-deobfuscator/ ├── deobfuscator.js ← CLI e pipeline principal ├── src/ │ ├── logger.js ← Sistema de logging │ ├── extractor.js ← Extração do payload │ ├── decompressor.js ← Descompressão (LZW, Base, Escape) │ ├── xor.js ← Decriptação XOR │ ├── parser.js ← Parser de bytecode Lua 5.1 │ ├── vm_analyzer.js ← Análise e mapeamento da VM │ ├── decompiler.js ← Geração de código Lua │ └── optimizer.js ← Limpeza e otimização └── test/ └── test_runner.js ← Suite de testes ``` ## IronBrew 变体支持 | 变体 | 检测 | 状态 | |----------|----------|--------| | IronBrew 2 | `bit.bxor` + SuperOps | ✅ 支持 | | IronBrew Classic | `math.fmod` + arith XOR | ✅ 支持 | | IronBrew Custom | VM 启发式算法 | ⚠️ 部分支持 | ## 支持的 Opcodes 支持标准 Lua 5.1 的全部 38 个 opcodes: `MOVE`, `LOADK`, `LOADBOOL`, `LOADNIL`, `GETUPVAL`, `GETGLOBAL`, `GETTABLE`, `SETGLOBAL`, `SETUPVAL`, `SETTABLE`, `NEWTABLE`, `SELF`, `ADD`, `SUB`, `MUL`, `DIV`, `MOD`, `POW`, `UNM`, `NOT`, `LEN`, `CONCAT`, `JMP`, `EQ`, `LT`, `LE`, `TEST`, `TESTSET`, `CALL`, `TAILCALL`, `RETURN`, `FORLOOP`, `FORPREP`, `TFORLOOP`, `SETLIST`, `CLOSE`, `CLOSURE`, `VARARG` ## 已知限制 - `if/else` 的重构基于启发式算法;在复杂情况下可能需要手动审查 - 完全自定义(未映射)的 SuperOps 将保留为注释 - 变量名从 debug info 中恢复;如果缺失,则使用 `_R0`、`_R1` 等。 ## Pipeline 流程 ``` input.lua │ ▼ [Extractor] ├─ bytecode string ├─ VM source ├─ decompressor info └─ XOR key │ ▼ [Decompressor] → dados descomprimidos │ ▼ [XorDecryptor] → bytecode raw │ ▼ [Parser] → Proto tree (AST do bytecode) │ ▼ [VMAnalyzer] → mapeamento de opcodes │ ▼ [Decompiler] → código Lua bruto │ ▼ [Optimizer] → output.lua limpo ```
标签:GNU通用公共许可证, Lua, Node.js, 云资产清单, 代码分析, 凭证管理, 反混淆, 自定义脚本, 解密工具, 逆向工程