Secure Quality Uncrackable Runtime Encryption - 用于Windows PE文件的高级二进制保护工具包。
SQURE 提供针对逆向工程、调试和篡改的多层保护:
| 功能 | 描述 |
|---|---|
| 纳米指令(Nanomite) | 将条件分支替换为 INT3,运行时由 VEH 调度 |
| XTEA 加密 | 对 .text 段按页加密,密钥从 PE 头部派生 |
| 虚拟机保护 | 将代码虚拟化为自定义字节码解释器 |
| 潮汐内存(Tidal Memory) | 按页粒度加密,VEH 按需解密 |
| 蜜罐(Honeypot) | 诱饵函数和陷阱代码,误导分析 |
| 反调试(Anti-Debug) | 检测 PEB.BeingDebugged 并触发密钥污染 |
| 反转储(Anti-Dump) | 防止内存转储的技术 |
| 沙箱检测(Sandbox Detection) | 基于 CPUID 的虚拟机/虚拟机管理器检测 |
| 导入混淆(Import Obfuscation) | 对 IAT 进行哈希处理,运行时解析 |
| 完整性检查(Integrity Checking) | 级联哈希链检测篡改 |
| Shamir 秘密共享 | 在 GF(2^64) 上将密钥拆分为 3 份 |
| 白盒密码(White-box Crypto) | 抗 DCA 攻击的查表实现 |
# 克隆仓库
git clone https://github.com/mttm2/squre.git
cd squre
# 构建发布二进制
cargo build --release
# CLI 位于 target/release/squre-cli.exe
# 基本保护
squre-cli protect app.exe -o protected.exe
# 最大保护(启用所有特性)
squre-cli protect app.exe -o protected.exe --level maximum
# 使用自定义种子实现可重现构建
squre-cli protect app.exe -o protected.exe -s 0xDEADBEEF
squre-cli protect [OPTIONS] --output <OUTPUT> <INPUT>
选项:
-o, --output <OUTPUT> 输出 PE 文件路径
-s, --seed <SEED> CEWE 种子(十六进制,未指定则随机)
-l, --level <LEVEL> 保护级别:standard(默认)或 maximum
保护特性:
--vm 启用 VM 保护(虚拟化代码)
--honeypot 启用蜜罐模式(诱饵函数、陷阱)
--tidal 启用潮汐内存(页粒度加密)
--ultra 启用超强化模式(16 个反分析阶段)
--harden 启用强化模式(多态节区)
--anti-dump 启用防内存转储保护
--integrity-check 启用代码完整性检查
--direct-syscall 启用直接系统调用(绕过用户态钩子)
调优:
--junk-level <0-3> 垃圾代码插入级别
--fake-keys <N> 嵌入的诱饵密钥数量
--layers <1-3> 加密层数(XTEA/XOR/Rolling)
--obfuscate <0-3> 混淆级别
--no-nanomite 禁用纳米指令分支
--no-anti-debug 禁用反调试检查
--level maximum)SQURE 可以通过源码级集成自动保护 Rust 二进制文件:
# 构建并保护一个 Rust 项目
squre-cli build ./my-rust-project -o protected.exe --level maximum
添加 squre-core crate 以启用基于宏的保护:
use squre_core::anti_debug;
fn main() {
// 安装反调试和纳米指令处理器
anti_debug!();
// 你的代码
}
┌─────────────────────────────────────────────────────────────┐
│ 保护流程 │
├─────────────────────────────────────────────────────────────┤
│ 1. OS 加载 PE → 入口点 = .sqpre(混淆存根) │
│ 2. .sqpre 使用 PE 派生的 XOR 密钥解密 .sqinit │
│ 3. .sqinit 使用 XTEA 按页密钥解密 .text │
│ 4. 跳转到原始入口点(CRT 初始化 → main) │
│ 5. anti_debug!() 安装 VEH 并加载纳米指令表 │
│ 6. INT3 分支由 VEH 处理器调度 │
│ 7. 潮汐内存加密页面 → VEH 按需解密 │
└─────────────────────────────────────────────────────────────┘
squre/
├── crates/
│ ├── squre-cli/ # 二进制保护 CLI 工具
│ │ ├── src/
│ │ │ ├── main.rs # CLI 入口点
│ │ │ ├── pe/ # PE 解析和写入
│ │ │ └── transform/ # 保护变换
│ │ │ ├── hardening.rs # 反分析阶段
│ │ │ ├── honeypot.rs # 诱饵代码生成
│ │ │ ├── vm_protect.rs # VM 字节码编译器
│ │ │ └── ...
│ └── squre-core/ # 用于 Rust 集成的运行时宏
├── examples/ # 示例项目
└── TUTORIAL.md # 详细使用指南
SQURE 旨在用于合法软件保护:
请勿用于恶意软件。 本工具仅用于防御目的。
受保护二进制文件具有极小的运行时开销:
欢迎贡献!请随时提交 Issue 和 Pull Request。
git checkout -b feature/amazing)git commit -m 'Add amazing feature')git push origin feature/amazing)MIT 许可证 - 详见 LICENSE 文件。
SQURE - 因为你的代码值得保护。