一、概述
這個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