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编码, 自定义脚本, 虚拟机脱壳, 调试模式, 逆向工程