Hermes的应用(十五):编译exe

admin 2026-08-15 06:06:39 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文记录了利用AI工具Hermes在Linux环境下交叉编译Windows驱动分析工具DriverExplorer的实践。作者指出Linux编译Windows资源需将Rust目标从MSVC切换至GNU工具链,最终成功生成4.4MB的静态链接程序。文章还深入剖析了该工具的内核驱动枚举、数字签名验证、服务控制及多格式导出等功能,展示了其在系统安全分析与自动化管理中的实用价值。 综合评分: 81 文章分类: 安全工具,AI安全,安全开发


cover_image

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成功了。它自我总结如下:

我做了以下工作才成功编译:

  1. 环境准备        – 安装 Rust 工具链(rustup + cargo)        – 确认 mingw-w64 已安装(提供 x86_64-w64-mingw32-windres)

  2. 初次尝试(失败)        – 尝试原目标 x86_64-pc-windows-msvc        – 失败原因:winres 在 MSVC 模式下需要 Windows 专属的 rc.exe,在 Linux 上不可用

  3. 关键决策:切换为 GNU 目标        – 添加 x86_64-pc-windows-gnu 目标        – 理由:该目标使用 MinGW 工具链,资源编译器为 windres(跨平台可用)

  4. 构建执行        – cargo clean 清理旧构建        – cargo build –release –target x86_64-pc-windows-gnu        – 依赖全部重新编译,3 分 08 秒完成

  5. 结果        – 输出 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 内核驱动的全功能分析与管理工具:

  1. 驱动枚举与展示

    – 使用 PSAPI.EnumDeviceDrivers 与 NtQuerySystemInformation(SystemModuleInformation) 获取所有已加载内核模块

    – 16 列可排列表格:名称、地址、大小、版本、公司、类型、路径、服务名、签名状态等

    – 实时刷新、搜索过滤、Microsoft/非 Microsoft 驱动分类显示

  1. 数字签名验证

    – 调用 WinVerifyTrust 和 CryptCATAdmin 进行 Authenticode 与 WHQL 目录验证

    – 计算文件 SHA‑256,检查证书链与时间戳

    – 显示签名有效、过期、未知或不被信任等状态

  1. 文件元数据提取

    – 解析版本资源(FileVersion、ProductVersion、CompanyName 等)

    – 读取创建/修改时间、文件属性、大小

  1. 驱动服务管理

    – 通过 Windows Service Control Manager (OpenSCManager、CreateService/OpenService、StartService、ControlService、DeleteService) 实现:

      – 注册/注销服务

      – 启动/停止服务

      – 配置启动类型(Boot、System、Automatic、Demand、Disabled)

    – UAC 提权(ShellExecuteW),不写临时文件

  1. 快照与比较

    – 将当前驱动列表保存为 JSON 快照

    – 与另一快照进行差异比较,生成 HTML 报告,高亮新增/删除/变更的驱动

  1. 导出能力

    – 支持 CSV、JSON、HTML、纯文本格式

    – 可导出全部或选中的驱动信息

  1. 图形界面 (GUI)

    – 基于 egui/eframe 的即时模式 UI,深色主题

    – 多选(Ctrl/Shift)、键盘导航、快捷键(F5 刷新、Ctrl+F 查找等)

    – 工具栏与上下文菜单

  1. 命令行接口 (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》

评论:0   参与:  0