936erpl/batobfuscate-deobfuscator
GitHub: 936erpl/batobfuscate-deobfuscator
一个通过移除固定 12 字节头部来还原经 batobfuscate 混淆的批处理脚本的解混淆工具。
Stars: 0 | Forks: 0
# batobfuscator-deobfuscate
一个针对由 `bat.py`(Machine1337 的“Batch Obfuscator”)生成的 `.bat` 文件的脱壳器/解混淆工具。它会去除伪造的头部并恢复原始且未经修改的批处理脚本。
## 为什么这会有效
`bat.py` 实际上根本没有对文件内容进行任何转换。它只是在原始字节之前添加了一个固定的 12 字节头部,且不作任何修改:
```
FF FE 26 63 6C 73 0D 0A FF FE 0A 0D
```
这是一个 UTF-16 字节顺序标记(`FF FE`),文本 `&cls`,一个 CRLF,以及第二个 BOM。像 Notepad 或 HxD 这样的编辑器会识别到开头的 BOM,并尝试将整个文件作为 UTF-16 来渲染,这导致后面那原本完全可读的 ASCII 批处理脚本在屏幕上显示为乱码。另一方面,Windows 的 `cmd.exe` 只会查看最开头的几个字节来决定如何解释该文件,并在运行时有效地跳过了这个无用的头部——因此,尽管脚本在十六进制/文本编辑器中看起来像是被“加密”了,它仍然可以正常执行。
脚本主体并没有应用任何实际的加密或编码。只需移除这 12 字节的头部,即可逐字节地精确恢复原始文件。
## 工作原理
1. 以二进制模式读取经过混淆的 `.bat` 文件。
2. 验证它是否以已知的 12 字节头部开头。
3. 去除这 12 个字节,并将剩余内容写入一个新文件。
4. 将恢复后的脚本打印到 stdout。
## 用法
```
python deobfuscator.py obfuscated.bat [output.bat]
```
如果没有提供输出路径,它将默认使用 `deobfuscated.bat`。
## 免责声明
本工具仅为教育目的而开发——旨在理解那些微不足道的“混淆”技巧是如何欺骗文本/十六进制编辑器错误渲染文件,而实际上并未保护其内容的。请仅对你拥有或获得授权进行分析的文件使用此工具。
标签:DNS 反向解析, Python, 云资产清单, 去混淆, 恶意代码分析, 批处理, 无后门, 逆向工具, 逆向工程, 配置文件