Base44-Agent/iron-brew_deobfuscator

GitHub: Base44-Agent/iron-brew_deobfuscator

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

Stars: 0 | Forks: 0

# IronBrew Deobfuscator v2.0 Deofuscador completo para scripts Lua 5.1 protegidos com a VM IronBrew. ## Funcionalidades | Etapa | Módulo | Descrição | |-------|--------|-----------| | Extração | `extractor.js` | Isola payload, VM, decompressor e chave XOR | | Descompressão | `decompressor.js` | Reverte LZW, Base Custom, Byte Escape | | Decriptação | `xor.js` | XOR simples, string, auto-detecção por magic | | Parsing | `parser.js` | Parser completo do bytecode Lua 5.1 | | Análise VM | `vm_analyzer.js` | Mapeia opcodes customizados, detecta SuperOps | | Decompilação | `decompiler.js` | Reconstrói código Lua legível | | Otimização | `optimizer.js` | Remove dead code, junk e formata | ## Instalação ``` git clone cd ironbrew-deobfuscator node deobfuscator.js --help ``` Não há dependências externas. Requer Node.js ≥ 14. ## Uso ``` # Básico node deobfuscator.js script.lua # Com nome de saída customizado node deobfuscator.js script.lua output.lua # Debug completo node deobfuscator.js script.lua --debug --verbose # Dump do bytecode parseado em JSON node deobfuscator.js script.lua --dump-bytecode # Dump da análise da VM node deobfuscator.js script.lua --dump-vm # Sem otimização (código bruto do decompiler) node deobfuscator.js script.lua --no-optimize ``` ## Testes ``` node test/test_runner.js ``` ## Arquitetura ``` 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 ``` ## Suporte a Variantes do IronBrew | Variante | Detecção | Status | |----------|----------|--------| | IronBrew 2 | `bit.bxor` + SuperOps | ✅ Suportado | | IronBrew Classic | `math.fmod` + arith XOR | ✅ Suportado | | IronBrew Custom | Heurística de VM | ⚠️ Parcial | ## OpCodes Suportados Todos os 38 opcodes do Lua 5.1 padrão: `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` ## Limitações Conhecidas - Reconstrução de `if/else` é heurística; pode exigir revisão manual em casos complexos - SuperOps completamente customizados (não mapeados) ficam como comentários - Nomes de variáveis são recuperados do debug info; se ausente, usa `_R0`, `_R1`, etc. ## Fluxo do 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 ```
标签:CMS安全, GNU通用公共许可证, IronBrew, JavaScript, Lua 5.1, LZW解压, MITM代理, Node.js, SEO: Lua逆向, SEO: 脱壳工具, SEO: 虚拟机脱机分析, SuperOps检测, URL提取, VM映射, XOR解密, 云资产清单, 代码优化, 代码解析, 反混淆, 反编译, 字节码解析, 字节码转储, 字节转义, 死代码消除, 脱壳器, 自定义Base编码, 自定义脚本, 虚拟机脱壳, 调试模式, 逆向工程