HydraDragonAntivirus/HydraDragonPlatform
GitHub: HydraDragonAntivirus/HydraDragonPlatform
面向 Windows 的综合性本地恶意软件与可执行文件分析平台,集成多引擎检测、机器学习、动态静态分析、自动脱壳反混淆及反编译功能。
Stars: 150 | Forks: 12
# Hydra Dragon 自动化恶意软件/可执行文件分析平台
警告:正在积极开发中
此项目尚未准备好投入生产环境。 预期会出现破坏性变更、错误和不完整的功能。
## 重要说明与限制 ### 项目范围 HydraDragon 是一个本地杀毒软件项目,目前处于积极的实验性开发阶段。 - 它在系统本地运行。 - 目前尚未实现客户端-服务器架构。 - 旨在用于研究、学习和恶意软件分析实验。 本项目并不旨在替代您日常使用的主要杀毒软件解决方案。 ### 检测理念 - 可能会发生误报。 - 系统假设机器处于干净状态(非感染后状态)。 - 项目优先考虑深度分析而非速度。 - 目标是长期的检测改进,而不是快速但浅显的检测。 - 这并不意味着该项目达到了 99% 的检出率——这仅反映了开发理念。 ### 实验状态 - 这是一个高度实验性的项目。 - 早期版本的一些架构决策并非最佳,影响了稳定性。 - 项目正在积极改进和完善中。 - 请谨慎使用。 ### 样本检测策略 - 非常旧的恶意软件样本可能无法被检测到。 - 签名退役参考: https://blog.clamav.net/2025/12/clamav-signature-retirement.html - 显示为垃圾数据或完全未知数据的文件可能会被有意忽略。 - 如果 PE header 被移除,某些检测引擎可能不再标记该文件。 - 根据规则逻辑(例如,不验证文件类型的规则),YARA 检测仍可能触发。 示例: 移除 PE header 的样本: https://www.virustotal.com/gui/file/9b7e921e971fe7523ba83a4599b4006ad214854eb043372129e4f5a68c5a427f 原始样本: https://www.virustotal.com/gui/file/1ef6c1a4dfdc39b63bfe650ca81ab89510de6c0d3d7c608ac5be80033e559326 ### 安装与使用说明 - 您必须手动卸载软件(自动卸载程序不可用)。 - 安装过程中出现的临时 ClamAV 更新错误可以安全忽略。 - 如果驱动程序安装失败,请禁用 Secure Boot 并重试。 - 建议等待杀毒软件界面完全加载,即使某些防护功能似乎已处于活动状态。 ### 进程保护 - 杀毒软件可以由用户手动终止。 - 恶意软件进程无法终止它,因为驱动程序会验证终止请求的来源。 - 如果您手动关闭它,这并不表示安全失效。 ### 隔离目录 C:\ProgramData\HydraDragonAntivirus\Quarantine ## 描述 在此阶段: - 应用程序**仅在本地工作**。 - **客户端-服务器架构尚未实现**。 - 功能可能不完整或不稳定。 - 可能随时发生破坏性变更,恕不另行通知。 - 本项目**尚未准备好投入生产环境**,应仅用于开发和测试目的。 - 针对 Windows 的动态和静态分析实时恶意软件/可执行文件分析平台,包括开源 XDR(2 个 EDR 项目)、ClamAV、YARA-X、机器学习 AI、行为分析、Unpacker、Deobfuscator、Decompiler、网站签名、Ghidra、Suricata、Sigma、基于 Kernel 的保护等超乎想象的功能。 - HydraDragonPlatform - 统一可执行文件分析与检测框架 ## 许可证 本项目基于 **GNU Affero General Public License v3.0** (AGPLv3) 授权。 有关更多信息,请参阅 [LICENSE](./LICENSE) 文件。 ## 下载机器学习恶意软件与良性数据库 - **恶意软件数据库:** [下载链接](https://drive.google.com/file/d/1QwdxdwX_nH-oF-5hVTkbTuFkrwUfR0-h) - **良性数据库:** [下载链接](https://drive.google.com/file/d/12L1s4FC3tGmxhrzi_Q1VTgPy6l7S4Hwe) (目前已过时,我有 20.4 万个样本,还有 JavaScript 样本) - **注意:** 该集合仅包含小于 10MB 的 PE 文件。由于我的 U 盘损坏且无法恢复,大约 6,000 个良性样本永久丢失。其中一些样本甚至在 VirusTotal 上都找不到。 - **密码:** infected ## 机器学习训练指南 - 安装恶意软件 (datamaliciousorder) 和良性 (data2) 数据库,然后从 train.py 安装 requirements.txt,并在包含 datamaliciousorder 和 data2 的同一文件夹中运行 train.py。 - 然后删除 results.pkl 并将 ml_definitions.pkl 重命名为 results.pkl 以合并 pickled 数据。 ## 从源代码编译指南 - 这是一项非常复杂的任务。我需要为此创建 wiki。请联系我。 ## Ghidra 源代码 - 我现在使用的是 11.4.3 版本:https://ghidra-sre.org/ ## Java Development Kit - 请查看 https://www.oracle.com/java/technologies/downloads/#jdk21-windows ## 安装设置 - 发布版中的安装文件 HydraDragonAntivirus.exe ## Ghidra - Ghidra: %ProgramFiles%\aHydraDragonAntivirus\hydradragon\ghidra - Ghidra 运行: %ProgramFiles%\aHydraDragonAntivirus\hydradragon\ghidra\ghidraRun.bat - Ghidra 脚本: %ProgramFiles%\aHydraDragonAntivirus\hydradragon\scripts ## Sigma-HQ - Hayabusa - https://github.com/Yamato-Security/hayabusa/releases/tag/v3.8.1 (hayabusa-3.8.1-win-x64.zip) ## 重要提示 - 重启程序时,任何日志都将被删除。所以要小心! - 分析结束后,您必须重启程序。 - 请勿在日志中分享您的 IP。 - 确保 ClamAV 数据库安装无问题。 - 我们强烈建议您拍摄快照,并在完成工作后恢复。 - 将您的用户名设为 hydradragonav(例如,以避免反分析)。 - 由于 ClamAV 数据库下载存在问题,安装程序还包含 daily.cvd、main.cvd、bytecode.cvd。 ## Discord 社区服务器 - 服务器链接:https://discord.gg/Rdyw59xqMC ## 准备环境 - 创建大量文件以检测勒索软件。 ## 指南 **注意 1:**。 - 在 Windows 防火墙上允许 Java,因为它将反编译 PE 文件。 **注意 2:** - 如果发现问题,请创建 issue。杀毒软件可能会被网站签名触发,因为它们没有经过混淆,所以请排除 `%ProgramFiles%\aHydraDragonAntivirus\hydradragon` 文件夹。由于存在风险,请仅在虚拟机 (VM) 中使用。 **注意 3:** - https://github.com/icsharpcode/ILSpy - https://github.com/extremecoders-re/nuitka-extractor - https://github.com/horsicq/Detect-It-Easy - https://github.com/extremecoders-re/decompyle-builds - https://github.com/mandiant/gostringungarbler - https://github.com/cod3nym/Deobfuscar - https://github.com/Vineflower/vineflower - https://github.com/GDATAAdvancedAnalytics/de4dotEx/releases/tag/3.2.4 - https://www.rathlev-home.de/index-e.html?tools/prog-e.html#unpack - https://github.com/myfreeer/7z-build-nsis - https://github.com/upx/upx - https://github.com/syssec-utd/pylingual - https://github.com/glmcdona/Process-Dump/releases/tag/v2.1.1 - https://github.com/lifenjoiner/ISx/releases/tag/v0.3.11 - https://github.com/nazywam/AutoIt-Ripper - https://github.com/SychicBoy/NETReactorSlayer - https://github.com/Veysel072/VMPUnpacker - https://github.com/MadMin3r/UnconfuserEx - https://github.com/LockBlock-dev/pkg-unpacker - https://github.com/j4k0xb/View8 - https://github.com/HydraDragonAntivirus/MegaDumper - https://github.com/GuardianN06/SourceUndefender - https://github.com/Lil-House/Pyarmor-Static-Unpack-1shot - https://github.com/HydraDragonAntivirus/HydraDragonPythonReverser - 我使用这些项目进行反编译(使用当前的 Detect-It-Easy 自定义数据库)。 - https://github.com/starhopp3r/ML-Antivirus - https://github.com/HydraDragonAntivirus/yarGen - 我使用这些项目进行 AI 开发。 - https://github.com/HydraDragonAntivirus/Owlyshield - https://github.com/HydraDragonAntivirus/Sanctum - 我使用这些项目作为 EDR(注意:最新的 fork 已添加到主仓库而不是其他仓库)。 - https://github.com/HydraDragonAntivirus/MBRFilter - 我使用此项目进行 MBR 保护。 - https://github.com/HydraDragonAntivirus/PYAS_Protection - 我使用这些项目来保护杀毒软件。 - https://github.com/clamwin/python-clamav - 我使用这些项目来优化杀毒软件。 - https://github.com/HyperDbg/HyperDbg - 我使用这些项目来实现 HyperVisor **注意 4:**。 - 您需要互联网连接进行安装。这不是离线安装程序。 **注意 5:** - 不要忘记进行清理,因为针对勒索软件等处理文件时会占用过多空间。 - 您需要大量存储空间,因为它会记录所有内容。 **注意 6:** - 我从互联网上收集了所有恶意 IP 和域名。因此肯定会有很大的误报率,但我会处理它们。 **注意 7:** - Inno Setup 版本 6.6.1 ## 技巧 **技巧 1:** - 不要在您的机器上使用可疑的虚拟机 (VM) 名称。(John Doe 等) **技巧 2:** - 使用 VSCode、VSCodium 或其他编辑器查看 .log 文件的实时更改。 **技巧 3:** - 关闭虚拟机 (VM) 上的 Windows 防火墙以避免任何防火墙阻止。我们正在测试此程序,而不是 Windows 防火墙。 ### 常见问题解答: **这会收集数据吗?** - 不。我们可以允许 GridinSoft 和许多其他公司收集数据。与其他公司不同,他们自由允许使用其云服务,但我不允许这样做。 **我该如何使用它?** - 只需从桌面运行快捷方式,然后对文件运行高级动态和静态分析。 **它的效果如何?** - 它在所有类型的分析方面都非常出色,并且可以通过允许您配置更具攻击性或更少攻击性来平衡一切。 **为什么我的杀毒软件将此检测为恶意软件?** - 这是误报。它包含网站、HIPS 签名且未经混淆。这是一个完全开源的可执行文件分析产品。 **为什么它有 2GB+?** - 由于网站签名、Ghidra、ClamAV 和 Java Development Kit。网站签名不是很有效,但它们可以检测新旧病毒。如果您愿意,我可以移除它们。Ghidra 用于反编译,但占用太多空间。Java Development Kit 是为了 Ghidra。那就是 1GB+。请注意,这是一个完全本地化(更新数据库除外)的专业开源杀毒软件。 **为什么 antivirus.exe 应用程序运行时间太长?** - 有时您可能需要等待 5 分钟以上(或更短),因为首次运行程序时会加载很多东西。 **支持哪些 Windows 版本?** - Windows 10 不再受官方支持。请切换到 Windows 11 25H2。 **最低 RAM 和磁盘空间要求是多少?** - 至少需要 8 GB RAM:ClamAV 使用 3 GB,其余 5 GB 由其他引擎使用。 **有赞助商或支持者吗?** - 是的,这个项目有支持者。Xcitium (Comodo) 表示有兴趣通过提供恶意软件样本来支持该项目,以及 Cisco Talos ClamAV 社区项目。但这仍然是一个人的项目。 **您是否在使用泄露的 YARA 规则?** - 不,我们没有,但如果您有证据,请创建 issue,我们可以将其移除。 **为什么不使用 NictaSoft、GridinSoft 和 Bitdefender 云?** - 它可以显著提升我的杀毒软件。但是,存在一些问题。除非付费,否则这些服务不是开源的。我们不仅关注检测,还致力于维护开源原则。 **其他相关事项?** - 我使用 yarGen 创建了 machinelearning.yar。 **您为什么要开源?隐蔽式安全不是更好吗?** - 如果我不开源这个项目,那么我就无法使用其他开源工具,这会像其他太新和未知的闭源杀毒软件一样让它变得很烂。如果您能像 Kaspersky 那样保护您的源代码(仅从 2008本泄露过一次,其他泄露都是假的,而且最新版本具有来自内核的反篡改保护,因此它的源代码保护得很好。)而不是像其他厂商那样 Bitdefender(API + 签名可解决) Norton(源代码泄露过一次) Malwarebytes(源代码泄露过四次) Zemana(云端可解决且为 C#,但目前其云服务已关闭) Windows Defender(DefenderYARA 将规则转换为 YARA)以及许多其他反面教材……简而言之,如果您能保护您的源代码,那为什么不闭源呢?为了额外的安全性,您可以那样做。 所以如果您能在没有其他杀毒软件误报的情况下保护源代码,我不反对闭源。但由于我想用开源工具做得更好,并希望获得开源社区的支持,我把它们开源了。这当然有巨大的缺点和优点。但我不能花时间从零开始创建一切并在没有误报的情况下很好地保护我的源代码,那将花费很长时间。 **您为这个项目查看了多少个代码库?** - 对于 YARA 和网站签名,我查看了许多项目——可能超过 1,000 个。 **为什么程序打不开?** - 您的安装可能已损坏。您可以检查日志以确定问题,因为如果安装过程中连接断开,可能会严重影响安装。尝试重新安装以解决问题。 ### 致谢: - 所有功劳归于 Emirhan Uçan(是的,这是一个人的项目) - 感谢 Hacı Murad 收集和编译一些机器学习签名。 ## 提取与反编译目录 本文档描述了可执行文件分析工具用于各种提取、反编译和脱壳操作的所有输出目录。 # HydraDragon 提取与反编译输出 — README 本文档描述了 HydraDragon 分析工具使用的输出目录以及每个目录包含的内容。将此 README 放在分析输出旁边,以便分析师可以快速找到反编译/提取的构件。 ## 输出如何组织 * 每个提取器/反编译器写入分析根目录下的专用目录。 * 工具创建编号子文件夹(`1/`、`2/`...)以避免在多次处理同一加壳器/结果时发生覆盖。 * 尽可能保留文件名和子文件夹,以便更容易追溯到原始构件。 * 目录由提取/反编译模块自动创建。 ## 顶层目录类别(快速参考) * **加壳器/混淆器提取**: `hydra_dragon_dumper_extracted/`, `upx_extracted/`, `themida_unpacked/`, `vmprotect_unpacked/`, `debloat/` * **.NET 分析**: `dotnet/`, `obfuscar/`, `de4dot_extracted/`, `net_reactor_extracted/`, `un_confuser_ex_extracted/` * **Android/APK**: `jadx_decompiled/`, `androguard/` * **Python**: `pyinstaller_extracted/`, `pyarmor8_and_9_extracted/`, `pyarmor7_extracted/`, `nuitka/`, `nuitka_extracted/`, `nuitka_source_code/`, `cx_freeze_extracted/`, `pylingual_extracted/`, `python_deobfuscated/`, `python_deobfuscated_marshal_pyc/`, `pycdas_extracted/`, `python_source_code/` * **JavaScript / Node / Electron**: `webcrack_javascript_deobfuscated/`, `asar/`, `npm_pkg_extracted/`, `decompiled_jsc/` * **Java**: `jar_extracted/`, `FernFlower_decompiled/` * **安装程序 / 归档**: `inno_setup_unpacked/`, `advanced_installer_extracted/`, `installshield_extracted/`, `zip_extracted/`, `seven_zip_extracted/`, `tar_extracted/`, `general_extracted_with_7z/`, `pe_extracted/` * **脚本反编译器**: `autohotkey_decompiled/`, `autoit_extracted/` * **Go / Ungarbler 输出**: `ungarbler/`, `ungarbler_string/` * **杂项 / 分析构件**: `decompiled/`, `ole2/`, `memory/`, `resource_extractor/`, `html_extracted/` ## 详细目录描述 (每行显示目录名称和其中文件的用途。) * `hydra_dragon_dumper_extracted/` — Hydra Dragon Dumper (Mega Dumper Fork) 输出提取。 * `enigma1_extracted/` — Enigma Virtual Box 提取的文件。 * `decompiled/` — 来自各种工具的常规反编译文件。 * `upx_extracted/` — UPX (Ultimate Packer for eXecutables) 提取的文件。 * `webcrack_javascript_deobfuscated/` — 使用 webcrack 去混淆的 JavaScript 文件。 * `inno_setup_unpacked/` — Inno Setup 解包的安装程序文件。 * `autohotkey_decompiled/` — AutoHotkey 脚本反编译输出。 * `themida_unpacked/` — Themida 解包输出。 * `nuitka/` — Nuitka onefile 提取目录。 * `ole2/` — OLE2 提取的资源和复合文件结构。 * `dotnet/` — .NET 反编译源码。 * `jadx_decompiled/` — 使用 JADX 反编译的 APK(Java 源码)。 * `androguard/` — 来自 androguard 的 APK 反编译输出 (smali/java)。 * `asar/` — ASAR (Electron) 归档提取内容。 * `npm_pkg_extracted/` — NPM 包提取(JavaScript bundles)。 * `decompiled_jsc/` — V8 / JSC 字节码对象和反编译构件。 * `obfuscar/` — 使用 Obfuscar 混淆的 .NET 程序集。 * `de4dot_extracted/` — 使用 de4dot 去混淆的 .NET 文件。 * `net_reactor_extracted/` — .NET Reactor Slayer 输出。 * `un_confuser_ex_extracted/` — UnConfuserEx 去混淆输出。 * `pyinstaller_extracted/` — PyInstaller onefile 提取结果。 * `pyarmor8_and_9_extracted/` — PyArmor 8/9 解包输出。 * `pyarmor7_extracted/` — PyArmor 7 特定的解包输出。 * `cx_freeze_extracted/` — cx_Freeze `library.zip` 内容提取。 * `pe_extracted/` — PE 文件内部结构和提取的节/资源。 * `zip_extracted/` — ZIP 归档内容。 * `seven_zip_extracted/` — 7-Zip 归档内容。 * `general_extracted_with_7z/` — 7-Zip 操作的常规提取区域。 * `nuitka_extracted/` — Nuitka 二进制输出和支持文件。 * `advanced_installer_extracted/` — Advanced Installer 提取输出。 * `tar_extracted/` — TAR 归档内容。 * `memory/` — 动态分析内存转储文件 (.dmp / 原始内存转储)。 * `resource_extractor/` — 资源提取器提取的 RCData 和嵌入资源。 * `ungarbler/` — 去混淆的 Go (garble) 二进制文件和输出。 * `ungarbler_string/` — 来自 Go Garble 输出的去混淆字符串。 * `debloat/` — 精简文件目录(修剪后的安装程序/二进制文件)。 * `jar_extracted/` — JAR 文件的提取内容。 * `FernFlower_decompiled/` — 使用 FernFlower 反编译的 JAR。 * `pylingual_extracted/` — pylingual-reversed Python 源码 (.pyc -> .py)。 * `vmprotect_unpacked/` — VMProtect 解包目录。 * `python_deobfuscated/` — 去混淆的 Python 源码。 * `python_deobfuscated_marshal_pyc/` — 来自 marshal blobs 的去混淆 .pyc。 * `pycdas_extracted/` — pycdas / Decompyle++ 提取的 Python 源码。 ( 21-Oct-2025) * `python_source_code/` — 提取并整理的 Python 项目源码。 * `nuitka_source_code/` — Nuitka 逆向工程源码树。 * `html_extracted/` — 分析期间捕获的 HTML 和网页资源。 * `installshield_extracted/` — InstallShield 解包输出。 * `autoit_extracted/` — AutoIt 脚本提取结果。 ## 使用与最佳实践 * 运行后检查每个提取目录以定位配置 blobs、嵌入资源、字符串和可疑二进制文件。 * 如果需要重新生成提取的输出,请再次运行相关的提取器;编号子文件夹可防止意外覆盖。 ## 故障排除 * 如果目录为空,请检查相应的提取日志是否有错误。如果二进制文件损坏,工具可能会静默失败。 * 如果引用看起来格式错误(例如 `Unknown.0,Unknown`),请运行提供的 `reference_fix_and_rebuild.py` 以规范化和重建引用。 * 如果加载器很慢,请启用分片缓存或批量查询(参见加载器文档),而不是为每次查找重新加载每个分片。 ## 联系方式 如需更改此 README 或添加新的提取器目录,请更新此文件并将其提交到您的代码库,以便每个人都能看到映射关系。标签:AMSI绕过, Apex, ClamAV, Conpot, DAST, DNS 反向解析, EDR, Ghidra, Go语言工具, JS文件枚举, Metaprompt, Sigma规则, Suricata, UML, URL提取, Web 安全测试, Windows安全, YARA, 云安全监控, 云资产可视化, 人工智能, 内核保护, 反混淆, 反病毒, 反编译, 威胁检测, 恶意软件分析, 机器学习, 沙箱, 现代安全运营, 用户模式Hook绕过, 目标导入, 脆弱性评估, 脱壳, 逆向工具, 静态分析