276 lines
6.2 KiB
Markdown
276 lines
6.2 KiB
Markdown
# EXE文件加密保护系统 v2.0
|
||
|
||
这是一个完整的EXE文件加密保护系统,支持卡密验证、机器码绑定和数据库管理。
|
||
|
||
## ⚡ 主要功能
|
||
|
||
- **EXE文件加密**: 将任意EXE文件加密,生成需要卡密验证的版本
|
||
- **卡密系统**: 生成、管理、验证授权卡密
|
||
- **机器码绑定**: 防止卡密在多台设备上使用
|
||
- **数据库管理**: MySQL数据库存储卡密信息
|
||
- **图形化界面**: 友好的GUI操作界面
|
||
- **完整性验证**: 内置文件完整性检查工具
|
||
|
||
## 🛠️ 系统要求
|
||
|
||
- **操作系统**: Windows 7/8/10/11 (推荐), Linux, macOS
|
||
- **Python版本**: Python 3.7 或更高版本
|
||
- **数据库**: MySQL 5.7 或更高版本
|
||
- **内存**: 至少 512MB RAM
|
||
- **磁盘空间**: 至少 100MB 可用空间
|
||
|
||
## 📦 依赖包
|
||
|
||
系统会自动安装以下依赖包:
|
||
|
||
```
|
||
mysql-connector-python>=8.0.0
|
||
cryptography>=3.4.0
|
||
pyperclip>=1.8.0
|
||
cx_Freeze>=6.0 (用于构建)
|
||
PyInstaller>=4.0 (备用构建工具)
|
||
```
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 准备文件
|
||
|
||
确保以下文件在同一目录中:
|
||
- `main.py` - 主程序界面
|
||
- `validator.py` - 验证程序
|
||
- `database.py` - 数据库操作
|
||
- `encryptor.py` - 加密功能
|
||
- `machine_code.py` - 机器码生成
|
||
- `build.py` - 构建脚本
|
||
- `db_config.json` - 数据库配置(可选)
|
||
|
||
### 2. 构建可执行文件
|
||
|
||
运行构建脚本:
|
||
|
||
```bash
|
||
python build.py
|
||
```
|
||
|
||
构建成功后,在 `dist_final` 或 `dist` 目录中找到:
|
||
- `EXE加密工具.exe` - 主程序
|
||
- `validator.exe` - 验证程序
|
||
|
||
### 3. 配置数据库
|
||
|
||
1. 安装并启动MySQL服务器
|
||
2. 创建数据库和用户:
|
||
|
||
```sql
|
||
CREATE DATABASE license_system;
|
||
CREATE USER 'license_user'@'%' IDENTIFIED BY 'your_password';
|
||
GRANT ALL PRIVILEGES ON license_system.* TO 'license_user'@'%';
|
||
FLUSH PRIVILEGES;
|
||
```
|
||
|
||
3. 运行主程序,在"数据库配置"标签页中填入连接信息
|
||
4. 点击"连接数据库"和"创建数据库表"
|
||
|
||
### 4. 生成卡密
|
||
|
||
1. 在"卡密生成"标签页中设置有效期和数量
|
||
2. 点击"生成卡密"
|
||
3. 复制或导出生成的卡密
|
||
|
||
### 5. 加密EXE文件
|
||
|
||
1. 在"EXE加密"标签页中:
|
||
- 选择要加密的EXE文件
|
||
- 设置输出路径
|
||
- 选择validator.exe作为验证程序
|
||
2. 点击"加密EXE文件"
|
||
3. 等待加密完成
|
||
|
||
### 6. 测试加密文件
|
||
|
||
1. 双击加密后的EXE文件
|
||
2. 输入有效的卡密
|
||
3. 验证通过后,原程序将自动启动
|
||
|
||
## 📖 详细使用说明
|
||
|
||
### 数据库配置
|
||
|
||
**连接参数说明**:
|
||
- **主机**: MySQL服务器IP地址或域名
|
||
- **数据库**: 数据库名称(默认: license_system)
|
||
- **用户名**: MySQL用户名
|
||
- **密码**: MySQL密码
|
||
|
||
**建议配置**:
|
||
- 使用专用的数据库用户
|
||
- 设置强密码
|
||
- 如果是生产环境,配置SSL连接
|
||
|
||
### 卡密管理
|
||
|
||
**卡密状态说明**:
|
||
- `unused` - 未使用
|
||
- `active` - 已激活
|
||
- `expired` - 已过期
|
||
- `banned` - 已封禁
|
||
|
||
**操作说明**:
|
||
- **搜索**: 支持按卡密、状态、机器码搜索
|
||
- **封禁/解封**: 可以手动管理卡密状态
|
||
- **刷新**: 重新加载最新数据
|
||
|
||
### 加密过程详解
|
||
|
||
1. **文件验证**: 检查源文件和验证程序的完整性
|
||
2. **数据加密**: 使用AES-256加密算法加密源文件
|
||
3. **数据组合**: 将验证程序、配置信息、密钥和加密数据组合
|
||
4. **文件生成**: 生成新的可执行文件
|
||
5. **完整性测试**: 自动测试加密文件的完整性
|
||
|
||
### 验证流程
|
||
|
||
当用户运行加密后的EXE时:
|
||
|
||
1. **提取数据**: 从文件中提取加密信息
|
||
2. **输入卡密**: 弹窗要求用户输入卡密
|
||
3. **连接数据库**: 连接到授权服务器
|
||
4. **验证卡密**: 检查卡密有效性和机器码绑定
|
||
5. **解密运行**: 验证通过后解密并运行原程序
|
||
|
||
## 🔧 高级配置
|
||
|
||
### 自定义数据库配置
|
||
|
||
创建 `db_config.json` 文件:
|
||
|
||
```json
|
||
{
|
||
"host": "your-database-host",
|
||
"database": "license_system",
|
||
"user": "your-username",
|
||
"password": "your-password"
|
||
}
|
||
```
|
||
|
||
### 机器码调试
|
||
|
||
如果遇到机器码相关问题,可以运行:
|
||
|
||
```bash
|
||
python machine_code.py
|
||
```
|
||
|
||
这将显示详细的硬件信息和机器码生成过程。
|
||
|
||
### 构建选项
|
||
|
||
构建脚本支持以下选项:
|
||
|
||
```bash
|
||
python build.py --help # 显示帮助信息
|
||
```
|
||
|
||
## 🐛 常见问题
|
||
|
||
### 1. 加密后的文件无法运行
|
||
|
||
**可能原因**:
|
||
- validator.exe文件损坏或版本不匹配
|
||
- 数据库连接配置错误
|
||
- 原始EXE文件有特殊依赖
|
||
|
||
**解决方案**:
|
||
- 重新构建validator.exe
|
||
- 检查数据库配置
|
||
- 使用测试工具验证加密文件完整性
|
||
|
||
### 2. 卡密验证失败
|
||
|
||
**可能原因**:
|
||
- 卡密已过期或被封禁
|
||
- 机器码不匹配
|
||
- 数据库连接失败
|
||
|
||
**解决方案**:
|
||
- 检查卡密状态
|
||
- 确认机器码是否正确绑定
|
||
- 测试数据库连接
|
||
|
||
### 3. 构建失败
|
||
|
||
**可能原因**:
|
||
- Python版本不支持
|
||
- 依赖包安装失败
|
||
- 权限不足
|
||
|
||
**解决方案**:
|
||
- 升级Python到3.7+
|
||
- 手动安装依赖包
|
||
- 以管理员身份运行
|
||
|
||
### 4. 机器码不稳定
|
||
|
||
**可能原因**:
|
||
- 虚拟机环境
|
||
- 硬件信息获取失败
|
||
- 系统配置变化
|
||
|
||
**解决方案**:
|
||
- 使用物理机测试
|
||
- 运行机器码稳定性测试
|
||
- 重置机器码缓存
|
||
|
||
## 🔒 安全注意事项
|
||
|
||
1. **数据库安全**:
|
||
- 使用强密码
|
||
- 限制数据库访问IP
|
||
- 定期备份数据库
|
||
|
||
2. **文件保护**:
|
||
- 保护validator.exe不被替换
|
||
- 定期更新加密密钥
|
||
- 监控异常访问
|
||
|
||
3. **网络安全**:
|
||
- 使用HTTPS连接数据库
|
||
- 配置防火墙规则
|
||
- 监控数据库访问日志
|
||
|
||
## 📝 更新日志
|
||
|
||
### v2.0 (当前版本)
|
||
- 重写validator.py,修复验证逻辑
|
||
- 优化加密过程,提高稳定性
|
||
- 增加完整性测试功能
|
||
- 改进机器码生成算法
|
||
- 添加详细的错误处理
|
||
- 优化用户界面体验
|
||
|
||
### v1.0
|
||
- 基础功能实现
|
||
- 简单的EXE加密
|
||
- MySQL数据库支持
|
||
|
||
## 📞 技术支持
|
||
|
||
如果遇到问题,请提供以下信息:
|
||
|
||
1. 操作系统版本
|
||
2. Python版本
|
||
3. 错误信息截图
|
||
4. 详细的操作步骤
|
||
5. 相关日志文件
|
||
|
||
## ⚖️ 许可证
|
||
|
||
本软件仅供学习和研究使用。请遵守相关法律法规,不得用于商业用途或非法活动。
|
||
|
||
## 🤝 贡献
|
||
|
||
欢迎提交Issue和Pull Request来改进这个项目。
|
||
|
||
---
|
||
|
||
**警告**: 此工具涉及EXE文件的加密和验证,请确保遵守当地法律法规,仅用于合法用途。 |