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, 样本捕获, 样本提取, 比特币钱包, 注册表键, 洋葱服务, 流量审计, 端点可见性, 系统命令, 脱壳, 节区解密, 虚拟机工具清理, 行为监控, 进程挂起, 逆向工程, 邮件地址