Skip to content

Latest commit

 

History

History
88 lines (66 loc) · 4.22 KB

File metadata and controls

88 lines (66 loc) · 4.22 KB

HugoLock

项目简介

HugoLock 是 Windows 平台下针对希沃(Seewo)教学软件的辅助工具,核心功能为SeewoServiceAssistant.exe 进程注入自定义 DLL,并通过共享内存标志与 DLL 协同工作,实现对“希沃管家”置顶窗口的显示/隐藏控制。工具支持两种运行模式:Direct 模式(后台无交互,持续启用拦截)和 Assist 模式(图形界面,用户手动控制拦截状态)。

程序强制要求管理员权限,具备单实例保护、UIAccess 提升、调试权限启用等特性。

核心功能

  • 单实例保护:确保同一时间只有一个程序实例运行。
  • 自动权限提升
    • 要求以管理员身份运行,否则退出。
    • 尝试启用 UIAccess 以提高窗口操作权限(失败时仅降级功能)。
  • 进程注入
    • 监控 SeewoServiceAssistant.exe 进程,定时检查并注入同目录下的 HugoHSSA.dll
  • 共享标志控制
    • 创建名为 HugoLockFlag 的共享内存标志位,供主程序与注入的 DLL 通信。
    • 标志为 TRUE 时 DLL 执行拦截(隐藏置顶窗口等),为 FALSE 时停止拦截。
  • 双运行模式(通过命令行 /mode 参数指定):
    • Direct 模式(默认):设置共享标志为 TRUE 并循环保持,后台持续运行,无用户界面。
    • Assist 模式:设置共享标志为 FALSE,弹出图形对话框,用户可通过界面按钮开启/关闭拦截或执行一次性解锁。
  • 配置文件支持(仅 Assist 模式):
    • 读取同目录下的 HugoLock.ini,其中 [Config] 节的 UI 项可指定界面风格:
      • dialog:主对话框(功能完整)
      • button:简化对话框(I仅显示关闭按钮)

使用方法

前置要求

  • 权限:必须以管理员身份运行
  • 文件依赖:
    • 程序同目录下必须存在 HugoHSSA.dll(注入用)
    • (可选)HugoLock.ini 用于 Assist 模式的界面配置

运行命令

# Direct 模式(默认)
HugoLock.exe

# Assist 模式(带图形界面)
HugoLock.exe /mode assist

若需自定义界面,在同目录自动创建的 HugoLock.ini中修改,内容示例:

[Config]
UI=dialog      ; 或 button

操作说明(Assist 模式)

  • 主对话框(dialog)通常包含“开启拦截”、“关闭拦截”、“解锁一次”等按钮,根据窗口过程实现控制共享标志。
  • 简化对话框(button)可能仅提供退出程序功能(具体取决于窗口过程实现)。
  • Direct 模式无界面,启动后即持续运行,需通过任务管理器结束进程。

工作原理

  1. 启动准备
    • 检查管理员权限,启用 UIAccess 和调试权限。
    • 确保只有一个实例运行。
  2. 共享标志初始化
    • 创建名为 HugoLockFlag 的内存映射,初始值根据模式设置。
  3. 注入监控线程
    • 后台线程每 500ms 检查 SeewoServiceAssistant.exe 进程,若未注入则执行注入。
  4. 行为分支
    • Direct 模式:主线程循环将共享标志设为 TRUE,保持拦截状态直到程序结束。
    • Assist 模式:显示对话框,用户交互控制标志值,同时后台注入线程持续运行。
  5. DLL 行为(独立实现):
    • 被注入后读取共享标志,当标志为 TRUE 时执行窗口隐藏/事件拦截等操作。

注意事项

  • 权限不足:若非管理员运行,程序会直接退出,不会执行任何操作。
  • DLL 缺失:若 HugoHSSA.dll 不存在或无法注入,共享标志仍可工作,但实际窗口控制会失效。
  • 退出方式
    • Direct 模式:需强制结束进程(任务管理器或关闭控制台窗口)。
    • Assist 模式:正常关闭对话框即可退出程序。
  • 兼容性:程序专为希沃教学软件设计,针对 SeewoServiceAssistant.exe 和标题为“希沃管家”的置顶窗口生效,其他环境可能无效果。
  • 安全提示:注入系统进程可能被安全软件拦截,建议提前添加信任。

许可证

本项目使用 GNU General Public License v3.0 开源协议。详情请参见项目根目录下的 LICENSE 文件。