VANGUARDMONITOR/crack-mode
GitHub: VANGUARDMONITOR/crack-mode
在 Ubuntu 上通过 systemd 一键切换 GUI 与 headless 模式,为 hashcat 密码破解会话释放系统 RAM 的轻量级 Bash 脚本。
Stars: 0 | Forks: 0
# ⚡ crack-mode
`
4. 使用 `ping` 验证 Internet 连接性
如果没有找到活动连接,它会发出警告并继续。如果定义了 `CRACKMODE_IFACE`,则仅重新确认该接口。
### 多个活动 target
在 Ubuntu 中,`graphical.target` 将 `multi-user.target` 作为依赖项引入,因此两者可能同时处于活动状态。该脚本处理了这种情况:`off` 会检查 `graphical` 是否存在(如果存在,说明你处于 GUI 模式),而 `on` 会检查 `multi-user` 是否处于活动状态**并且** `graphical` 不存在(真正的 headless 状态)。
## 许可证
MIT — 见 [LICENSE](LICENSE)。
# 🇺🇸 English
**在 Ubuntu 上切换 GUI 和 headless 模式,以便为 hashcat 破解会话释放 RAM。**
[VANGUARDMONITOR/Trinity](https://github.com/VANGUARDMONITOR/Trinity) 生态系统的一部分。
## 为什么
大多数密码破解设备都是 headless 服务器。但如果你的破解机器同时是你日常使用的 GNOME/KDE 笔记本电脑,桌面环境会消耗本可用于 hashcat 的 mask 缓冲区、规则链的 RAM,或者干脆为操作系统页面缓存留出更多空间。
| 指标 | 使用 GUI | Headless | 提升 |
|--------|:-------:|:--------:|:----:|
| 可用 RAM | ~8.5 GiB | ~9.2 GiB | **+700 MiB** |
| GPU MD5 | 11,214 MH/s | 11,541 MH/s | *误差范围 (±3%)* |
| 网络 | 稳定 | 稳定 (已重新确认) | ✅ |
| Systemd 网关 | 活动 | 活动 (linger) | ✅ |
**GPU 性能并没有提升** —— 提升在于 RAM,而不是计算能力。这在你处理大型 wordlist、在内存中保留大量规则链或运行多个 hashcat 实例时非常重要。
## 要求
- **Ubuntu**(或任何带有 `systemd` + `NetworkManager` 的 Linux)
- `bash` ≥ 4
- 用于 `systemctl isolate` 的 `sudo` 访问权限
- `nmcli`(NetworkManager CLI)—— 用于在切换 target 后重新确认连接
- 可选:`sensors`(lm-sensors)用于在 `status` 中显示温度
- 可选:使用 `loginctl enable-linger` 的 systemd 用户服务
## 安装
```
curl -fsSL https://raw.githubusercontent.com/VANGUARDMONITOR/crack-mode/main/crack-mode \
-o ~/.local/bin/crack-mode
chmod +x ~/.local/bin/crack-mode
```
或者通过克隆代码库:
```
git clone https://github.com/VANGUARDMONITOR/crack-mode.git
cp crack-mode/crack-mode ~/.local/bin/
chmod +x ~/.local/bin/crack-mode
```
## 用法
```
crack-mode on # Switch to multi-user.target (kill GUI)
crack-mode off # Switch back to graphical.target
crack-mode status # Show current target, RAM, temperature, gateway health
crack-mode help # Show help
```
### 幂等场景
| 当前状态 | `crack-mode on` | `crack-mode off` |
|---------------|-----------------|------------------|
| GUI (`graphical.target`) | ✅ 切换到 headless | ✅ 跳过 — “已处于 GUI 模式” |
| Headless (`multi-user.target`) | ✅ 跳过 — “已处于 headless 模式” | ✅ 切换到 GUI |
## 配置
| 环境变量 | 默认值 | 用途 |
|---------------------|---------|---------|
| `CRACKMODE_GATEWAY` | *(空 = 跳过)* | 切换后要检查的 Systemd 用户服务(可选) |
| `CRACKMODE_IFACE` | *(自动检测所有)* | 要重新确认的特定接口(可选覆盖) |
## 卸载
```
rm ~/.local/bin/crack-mode
```
如果你定义了环境变量,请从 `~/.bashrc` 中清理它们:
```
# 如果存在此行,请删除:
# export CRACKMODE_GATEWAY=openclaw-gateway.service
```
该脚本不会在系统中留下任何永久性更改 —— isolate 在重启后不会保留。
## 设计说明
### 与介质无关的网络重新确认
`systemctl isolate multi-user.target` 可能会扰乱 NetworkManager,从而导致任何接口(不仅仅是 WiFi)重新连接。记录在案的关键情况是 WiFi(绑定到用户会话的 `wpa_supplicant`,约 6 秒的 DNS 中断),但以太网和其他介质也可能会出现抖动。
该脚本会重新确认**所有活动连接**:
1. 在 isolate 后休眠 5 秒
2. 通过 `nmcli -f NAME,DEVICE,TYPE connection show --active` 检测活动连接
3. 重新确认每一个:`nmcli device connect `
4. 使用 `ping` 验证 Internet 连接性
如果没有找到活动连接,它会发出警告并继续。如果设置了 `CRACKMODE_IFACE`,则仅重新确认该接口。
### 多个活动 target
在 Ubuntu 上,`graphical.target` 将 `multi-user.target` 作为依赖项引入,因此两者可能同时处于活动状态。`crack-mode` 考虑到了这一点:`off` 会检查 `graphical`(如果存在,说明你处于 GUI 模式),而 `on` 会检查 `multi-user` 是否处于活动状态**并且** `graphical` 不存在(真正的 headless 状态)。
## 许可证
MIT — 见 [LICENSE](LICENSE)。
标签:DOS头擦除, Shell脚本, 安全辅助工具, 密码破解, 应用安全, 系统运维, 资源管理