nelj14/themida-dumper
GitHub: nelj14/themida-dumper
一款用于提取和解包受 Themida/WinLicense 保护的可执行文件,并扫描内存 IOC 的自动化取证工具。
Stars: 0 | Forks: 0
# Themida Dumper
通用 Themida/WinLicense 有效载荷提取器,附带内存收割机 (v6.0)。启动受保护的 PE 作为挂起进程,检测运行时节解密,以固定 PE 标头转储未打包的二进制文件,并扫描所有进程内存中的 IOC。
## 功能
- **通用二进制文件** — x64 构建同时处理 32 位 (WOW64) 和 64 位目标
- **节监控** — 指纹加密节,每 50ms 轮询一次(最长 300 秒)直至解密
- **即时挂起** — 一旦检测到解密立即挂起目标(防止勒索软件破坏)
- **完整 PE 转储** — 带 PE 标头修复 (`*_unpacked.exe`) 的内存转储
- **独立节转储** — 每个节另存为 `{name}_0x{address}.bin`
- **IOC 提取** — 扫描所有已提交进程内存中的 URL、比特币钱包、洋葱 URL、电报链接、电子邮件地址、勒索指示器、文件扩展名、注册表键、互斥体名称、WMI 查询、系统命令、文件路径
- **宽字符串扫描** — 提取 ASCII 和 UTF-16LE 字符串
- **丢弃文件捕获** — 从目标目录捕获勒索便条和可疑文件(README、DECRYPT、.hta、.html、.txt)
- **DLL 支持** — 通过 `--dll-export=<名称>` 或 `--dll-export=#1`(序号)加载 DLL。支持 .dll、.ocx、.cpl
- **ServiceMain DLL** — 为服务 DLL 自动创建临时 Windows 服务
- **反监控绕过** — 终止 50 多种已知分析工具(Themida 检测到的)
- **VMware/VBox 清理** — 可选 `--kill-vmtools` 终止虚拟化工具并停止 VM 服务
- **内存收割** — 动态可执行区域跟踪,带滚动 500ms 快照、基于指纹的变更检测,捕获 PE 镜像之外的临时未打包代码
- **PE-sieve 集成** — 自动检测 pe-sieve(位于 C:\Tools\),为目标 PID 运行高级解包验证
- **行为触发** — 监控桌面、TEMP、APPDATA 的新文件投放;检测到勒索活动时触发转储
- **收割报告** — harvest_report.txt,包含完整的时间线、区域状态和 PE-sieve 结果
- **智能投放模式** — 文件系统与进程监控结合,发现样本投放的打包有效载荷
- **受密码保护的输出** — 结果打包为 `.dat` 存档(ZipCrypto,密码:`virus`)
## 支持的保护器
| 保护器 | 版本 |
|--------|------|
| Themida | 1.x, 2.x, 3.x |
| WinLicense | 1.x, 2.x, 3.x |
## 架构支持
| 构建 | 目标 |
|-------|------|
| x64 | 32 位 (WOW64) + 64 位 |
| x86 | 仅 32 位 |
## 用法
```
# EXE(拖放或命令行)
themida_dumper_x64.exe
# EXE 与 VM 工具清理
themida_dumper_x64.exe --kill-vmtools
# DLL(命名导出,DLL 必需)
themida_dumper_x64.exe sample.dll --dll-export=DllRegisterServer
# DLL(序号导出)
themida_dumper_x64.exe sample.dll --dll-export=#1
```
## 输出
结果保存到 `themida_dump_{filename}/` 并打包为 `.dat` 存档:
```
themida_dump_malware.exe/
├── _text_0x401000.bin # Individual section dumps
├── _rdata_0x410000.bin
├── malware.exe_unpacked.exe # Full PE dump with fixed headers
├── extracted_strings.txt # IOC strings (ASCII + wide)
├── README.txt # Captured ransom notes (if any)
└── DECRYPT_FILES.hta
```
## 构建
需要 [MinGW-w64](https://www.mingw-w64.org/)。
```
# 64 位构建(推荐)
x86_64-w64-mingw32-gcc -O2 -s -static -o themida_dumper_x64.exe themida_dumper_universal.c
# 32 位构建
i686-w64-mingw32-gcc -O2 -s -static -o themida_dumper_x86.exe themida_dumper_universal.c
```
## 工作原理
1. 启用 SeDebugPrivilege 并终止已知分析工具
2. 将目标 PE 作为 **挂起** 进程启动
3. 检测目标架构(WOW64 或原生 x64)
4. 为每个 PE 节生成指纹(64 字节)
5. 恢复进程并每 50ms 轮询节
6. 检测到指纹变化(解密)时立即挂起
7. 转储所有节并修复标头的完整 PE
8. 扫描所有已提交内存区域中的 IOC 字符串
9. 从目标目录捕获丢弃的勒索便条
10. 将所有内容打包为密码保护的 `.dat` 文件
11. 终止目标并清理临时服务
## 说明
- 在隔离的虚拟机中运行 — 此工具执行恶意软件样本
- 推荐使用 x64 构建,因为它支持两种架构
- 工具在启动目标前会终止常见的分析工具,以避免 Themida 的反分析检测
- 输出 `.dat` 文件是 ZIP 存档,扩展名重命名为 `.dat`(密码:`virus`)
## 许可证
MIT
## v6.0 新功能
| 功能 | v4.0 | v6.0 |
|------|------|------|
| 区域跟踪 | 无 | 每 500ms 滚动快照 |
| PE-sieve | 无 | 自动检测并运行于目标 PID |
| 行为触发 | 无 | 被监视目录中的文件投放监控 |
| 收割报告 | 无 | 完整时间线 + 区域摘要 |
| 投放模式 | 基础 | 智能文件系统 + 进程扫描 |
| 区域转储 | 无 | 所有可执行区域的 `region_*.bin` |
| CLI 选项 | 6 | 10(`--no-harvest`、`--pesieve-path` 等) |
标签:ASCII字符串, DAST, DLL注入, HTA文件, HTML文件, IOC扫描, IOC提取, JARM, PE-sieve, PE头修复, PE文件解析, Ruby on Rails, Telegram链接, Themida, UTF-16LE字符串, Windows可执行文件, WinLicense, WMI查询, WOW64, x64, x86, 临时服务创建, 云资产清单, 互斥量, 保护壳, 内存分析, 内存快照, 内存收割, 内存转储, 分析工具规避, 加壳, 加密节区, 动态跟踪, 勒索行为, 勒索赎金笔记, 勒索软件响应, 勒索软件检测, 反分析, 反沙箱, 反虚拟机, 可执行文件分析, 字符串提取, 客户端加密, 恶意软件分析, 文件扩展名, 文件监控, 文件路径, 文本文件捕获, 服务DLL, 样本捕获, 样本提取, 比特币钱包, 注册表键, 洋葱服务, 流量审计, 端点可见性, 系统命令, 脱壳, 节区解密, 虚拟机工具清理, 行为监控, 进程挂起, 逆向工程, 邮件地址