用Python实现安全封装EXE文件加密保护工具
一、概述
这个Python脚本实现了一个强大的EXE文件加密保护工具,它能够将任何Windows可执行文件封装到一个带密码保护的GUI程序中。核心功能包括:
-
使用AES-256加密算法保护原始EXE文件
-
创建美观的密码验证界面
-
支持自定义程序图标
-
自动处理PyInstaller打包过程
-
修复Tkinter在打包环境中的运行时问题
二、核心功能模块
1. 文件加密模块
def encrypt_file(key, in_path, out_path):"""使用AES-256 CBC模式加密文件"""iv = get_random_bytes(16) # 生成随机初始化向量cipher = AES.new(key, AES.MODE_CBC, iv) # 创建加密器with open(in_path, 'rb') as f_in:data = f_in.read() # 读取原始文件内容# 加密并填充数据ct_bytes = cipher.encrypt(pad(data, AES.block_size))encrypted = iv + ct_bytes # 组合IV和密文with open(out_path, 'wb') as f_out:f_out.write(encrypted) # 写入加密文件
2. Stub程序生成器
这是加密后的EXE文件运行时显示的解锁界面核心代码:
def generate_stub_code(password_hash, encrypted_data_base64):"""生成包含密码验证界面的Python代码"""return f'''#!/usr/bin/env python
# Tkinter运行时修复 - 解决打包环境下的关键问题
def fix_tkinter_runtime():if getattr(sys, 'frozen', False):base_path = sys._MEIPASStk_data_dir = os.path.join(base_path, '_tk_data')if not os.path.exists(tk_data_dir):tk_data_dir = os.path.join(ba