文章总结: 本文记录了利用AI工具Hermes在Linux环境下交叉编译Windows驱动分析工具DriverExplorer的实践。作者指出Linux编译Windows资源需将Rust目标从MSVC切换至GNU工具链,最终成功生成4.4MB的静态链接程序。文章还深入剖析了该工具的内核驱动枚举、数字签名验证、服务控制及多格式导出等功能,展示了其在系统安全分析与自动化管理中的实用价值。 综合评分: 81 文章分类: 安全工具,AI安全,安全开发
Hermes的应用(十五):编译exe
原创
MicroPest MicroPest
MicroPest
2026年7月6日 16:54 安徽
在小说阅读器读本章
去阅读
发现一款DriverExplorer的驱动程序浏览器的工具,是个用Rust编写的全面的Windows内核驱动程序分析和管理工具。通过将实时驱动程序枚举、数字签名验证、服务控制和多格式导出结合到一个轻量级(~4 MB)的原生二进制文件中,具有GUI和CLI界面。https://github.com/orinimron123/DriverExplorer
突然兴起,让Hermes来编译它?答案是:能干的Hermes真编译Exe成功了。它自我总结如下:
我做了以下工作才成功编译:
-
环境准备 – 安装 Rust 工具链(rustup + cargo) – 确认 mingw-w64 已安装(提供 x86_64-w64-mingw32-windres)
-
初次尝试(失败) – 尝试原目标 x86_64-pc-windows-msvc – 失败原因:winres 在 MSVC 模式下需要 Windows 专属的 rc.exe,在 Linux 上不可用
-
关键决策:切换为 GNU 目标 – 添加 x86_64-pc-windows-gnu 目标 – 理由:该目标使用 MinGW 工具链,资源编译器为 windres(跨平台可用)
-
构建执行 – cargo clean 清理旧构建 – cargo build –release –target x86_64-pc-windows-gnu – 依赖全部重新编译,3 分 08 秒完成
-
结果 – 输出 driverexplorer.exe(4.4 MB,静态链接) – 位置:/home/kali/DriverExplorer-main/target/x86_64-pc-windows-gnu/release/
核心要点:Windows 资源编译在 Linux 上只能通过 GNU 工具链实现,因此必须使用 *-pc-windows-gnu 而非 *-pc-windows-msvc。
==============
我对 DriverExplorer 功能分析如下:
这是一个 Windows 内核驱动的全功能分析与管理工具:
- 驱动枚举与展示
– 使用 PSAPI.EnumDeviceDrivers 与 NtQuerySystemInformation(SystemModuleInformation) 获取所有已加载内核模块
– 16 列可排列表格:名称、地址、大小、版本、公司、类型、路径、服务名、签名状态等
– 实时刷新、搜索过滤、Microsoft/非 Microsoft 驱动分类显示
- 数字签名验证
– 调用 WinVerifyTrust 和 CryptCATAdmin 进行 Authenticode 与 WHQL 目录验证
– 计算文件 SHA‑256,检查证书链与时间戳
– 显示签名有效、过期、未知或不被信任等状态
- 文件元数据提取
– 解析版本资源(FileVersion、ProductVersion、CompanyName 等)
– 读取创建/修改时间、文件属性、大小
- 驱动服务管理
– 通过 Windows Service Control Manager (OpenSCManager、CreateService/OpenService、StartService、ControlService、DeleteService) 实现:
– 注册/注销服务
– 启动/停止服务
– 配置启动类型(Boot、System、Automatic、Demand、Disabled)
– UAC 提权(ShellExecuteW),不写临时文件
- 快照与比较
– 将当前驱动列表保存为 JSON 快照
– 与另一快照进行差异比较,生成 HTML 报告,高亮新增/删除/变更的驱动
- 导出能力
– 支持 CSV、JSON、HTML、纯文本格式
– 可导出全部或选中的驱动信息
- 图形界面 (GUI)
– 基于 egui/eframe 的即时模式 UI,深色主题
– 多选(Ctrl/Shift)、键盘导航、快捷键(F5 刷新、Ctrl+F 查找等)
– 工具栏与上下文菜单
- 命令行接口 (CLI)
14 个命令,适合自动化与脚本:
– list info load unload start stop register unregister
– verify-signature export batch snapshot compare
技术亮点
– 纯 Rust 实现,调用原生 Windows API(windows crate)
– 单文件部署:Release 静态链接、LTO、符号剥离,最终约 4.4 MB
– 双目标支持:可编译为 x86_64-pc-windows-msvc 或 x86_64-pc-windows-gnu;在 Linux 上交叉编译需使用 GNU 目标
总结:Hermes出色地完成了Windows程序的编译、代码的分析,非常专业。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:MicroPest MicroPest MicroPest《Hermes的应用(十五):编译exe》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论