# MythwareToolkit（极域工具包）开发者文档

> 本文档面向开发/运维人员，介绍本软件的定位、技术特点、功能清单、构建与分发方式。
> 上游仓库：**https://github.com/BengbuGuards/MythwareToolkit**
> 原始项目：https://github.com/Jsenn123/MythwareToolkit-Jsen（由 小流汗黄豆 & Jsenn123 开发）
> 当前版本：**v2.1.1**（纯 C++ Win32 原生程序）

---

## 1. 软件定位

MythwareToolkit 是一个单文件、零依赖的 Windows 桌面工具，用于对抗机房教学管理软件：

- **极域电子教室**（StudentMain.exe）的进程控制、屏幕广播、键鼠锁、网络/U 盘限制
- **学生机房管理助手**（v6.8 ~ v12.99）的进程黑名单、系统程序禁用、临时密码机制

不依赖 .NET、不依赖运行库、不写注册表服务，**静态链接单 EXE，约 0.7 MB**，可直接放 U 盘运行。

---

## 2. 技术特点（开发者视角）

| 特性 | 实现方式 |
|------|----------|
| 零依赖单文件 | C++ + Win32 API，`-static` 静态链接，无 CRT/MFC/DLL 外部依赖 |
| 反强杀保护 | 启动即开启进程保护，任务管理器无法直接结束本进程 |
| 全面防截屏 | `SetWindowDisplayAffinity(WDA_EXCLUDEFROMCAPTURE)` + 定时器防重置，主窗口、悬浮窗、所有弹窗与菜单对教师端屏幕监控不可见 |
| 超级置顶 | UIAccess manifest（`uiAccess="true"`），可覆盖任务管理器、放大镜等高权限窗口 |
| 免提权杀进程 | 不依赖 `taskkill`/`ntsd`，通过进程保护绕过机制杀掉管理端进程 |
| 挂起/恢复 | `NtSuspendProcess` / `NtResumeProcess`（ntdll 动态绑定） |
| 全局热键 | Alt+C 双击杀前台进程、Alt+W 最小化前台窗口、Alt+B 唤起主界面 |
| 随机窗口标题 | 主窗口标题周期性随机化，规避按窗口标题封禁的黑名单 |
| 崩溃诊断 | `SetUnhandledExceptionFilter` 捕获，完整寄存器 + 栈回溯写入崩溃日志 |
| 日志系统 | `MythwareToolkit_run.log` / `MythwareToolkit_crash.log`，追加模式，记录每步操作 |
| 嵌入式子工具 | MeltdownDFC、crdisk 以 `RT_RCDATA` 资源内嵌，运行时释放到 `%TEMP%` 并 runas 提权启动 |
| 权限自适应 | 自动检测运行级别（用户/管理员/SYSTEM），`-s` 参数可 SYSTEM 权限启动 |

### 代码结构

```
src/          9 个 .cpp（入口/进程/绕过/助手/极域/钩子/密码/悬浮窗/工具）
include/      4 个 .h（globals/process/mythware/...）
res/          图标、manifest（原版/便携版两套）、嵌入的子工具 exe
scripts/      build_portable.bat / package.bat / sign.ps1 / cleanup.bat
cert/         deploy.bat + mythware.cer（UIAccess 版部署所需）
Makefile      MinGW 一键构建
```

---

## 3. 功能清单

### 极域控制
- 杀掉极域（不依赖系统工具）；极域未运行时反向启动（自动降权到登录用户）
- 实时状态：未运行/运行中/已挂起/无响应 + PID + 版本号（状态栏与托盘提示同步）
- 挂起（冻结）/恢复极域
- 解除极域网络限制（黑/白名单或直接禁用，2016 版验证通过）
- 解除极域 U 盘限制（软解禁 / 硬解禁两种方式）
- 广播窗口化/全屏化切换
- 退出黑屏安静：4 级递进（隐藏 → 最小化 → ESC → 确认杀进程）
- 解鼠标限制、解键盘锁（TDKeybd 设备控制码，启动默认开启）

### 学生机房管理助手
- 关闭 v6.8 ~ v12.99 全系版本
- 动态密码计算器（v9.x ~ v12.0 四代算法）
- 一键解禁系统程序：CMD、注册表、任务管理器、浏览器下载、小游戏
- 重启资源管理器

### 通用
- 圆形悬浮窗：置顶、可拖拽；左键开主面板、中键一键广播窗口化、右键快捷菜单（防截屏）
- 托盘常驻：**完整快捷菜单**（15 项，杀/启极域、挂起/恢复、解限制等无需打开主窗口），左键单击即开主面板，悬停提示实时同步极域状态
- 内置 MeltdownDFC（冰点还原密码破解）、crdisk（保护系统删除，慎用）
- 防教师端强制关机提示见上游 README 附录

---

## 4. 发行包说明（bin/pkg）

| 文件 | 用途 | 前置条件 |
|------|------|----------|
| `MythwareToolkit_Portable.exe` | 便携版，双击即用 | 无 |
| `MythwareToolkit.zip` | 超级置顶版发行包（`MythwareToolkit.exe` + `deploy.bat` + `mythware.cer`） | 见下 |
| `MythwareToolkit/` | ZIP 解压后的内容目录 | — |

两个 EXE 均已使用自签代码签名证书（`CN=MythwareToolkit`，有效期 30 年）签名。

**UIAccess 版部署三条件**（Windows 安全机制，缺一不可）：
1. EXE 已签名
2. 签名证书在系统受信任根
3. EXE 位于 `C:\Program Files\` 下

`deploy.bat`（管理员运行）一步完成：装证书 → 复制到 Program Files → 建桌面快捷方式。
若双击 EXE 能直接打开，则无需以上步骤。

---

## 5. 从源码构建

**工具链**：MinGW-w64（GCC，需 g++ + windres），无其他依赖。

```bash
# UIAccess 超级置顶版
windres -i res/resource.rc -o bin/resource.res -O coff
g++ -c src/*.cpp -O3 -pipe -lntdll -fexec-charset=UTF-8 -Iinclude -DUIACCESS_BUILD
g++ bin/*.o bin/resource.res -o bin/MythwareToolkit.exe \
    -s -mwindows -lcomctl32 -lole32 -loleaut32 -luuid -static

# 便携版：改用 res/sys_portable.manifest → res/sys.manifest，去掉 -DUIACCESS_BUILD，
# 链接库改为 -lcomctl32 -lgdi32 -static
```

仓库内 `Makefile` 与 `scripts/` 目录提供等价的一键脚本（注意 bat 中含 `pause`，CI 环境需去掉）。

**已知构建坑（GCC ≥ 15）**：
1. 新版 ld 会自动链接一份默认 manifest，与 rc 内嵌的自定义 manifest 冲突——解决办法：用 `-B` 指向一个含有空壳 `default-manifest.o` 的目录，令链接器优先命中空文件。
2. `sign.ps1` 为无 BOM UTF-8，Windows PowerShell 5.1 下按 ANSI 解析会失败——需转存为带 BOM 的 UTF-8。

**签名**（UIAccess 版必需）：
```powershell
$cert = New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=MythwareToolkit" `
    -CertStoreLocation Cert:\CurrentUser\My -NotAfter (Get-Date).AddYears(30)
Set-AuthenticodeSignature -FilePath bin\MythwareToolkit.exe -Certificate $cert
Export-Certificate -Cert $cert -FilePath cert\mythware.cer
```

---

## 6. 权限模型

- **默认**：普通用户权限即可运行大部分功能（杀极域、挂起、解键鼠锁、悬浮窗等）
- **自动提权**：解网络限制（内部以 `runas` 重启自身执行 `-net`）、MeltdownDFC、crdisk
- **SYSTEM 模式**：命令行加 `-s` / `/s`，通过 lsass/winlogon 令牌复制提权，用于对抗高权限安装的极域
- 运行级别实时显示在状态栏提示（用户/管理员/系统权限）

---

## 7. 相关链接

| 资源 | 地址 |
|------|------|
| 本仓库 | https://github.com/BengbuGuards/MythwareToolkit |
| 原始项目 | https://github.com/Jsenn123/MythwareToolkit-Jsen |
| 更新日志 / 开发者文档 | 仓库内 `CHANGELOG.md` / `DEV.md` |

> 本软件仅限学习研究用途，请于授权环境下测试。
