一、概述

这个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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910235.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910235.shtml
英文地址,请注明出处:http://en.pswp.cn/news/910235.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3监听属性watch和watchEffect的详解

文章目录 1. 前言2. 常规用法3. 监听对象和route变化4. 使用场景4.1 即时表单验证4.2 搜索联想功能4.3 数据变化联动处理 5. watchEffect详解5-1 基本概念5-2 核心用法基础示例:自动响应依赖变化处理异步副作用停止监听与清理副作用 5-3 高级场景应用监听多个响应式…

Spring IoC核心实现揭秘

Spring IoC(控制反转)的实现机制是Spring框架的核心,其本质是将对象的创建、依赖管理和生命周期控制权从应用程序代码转移到容器中。以下是其核心实现机制: 🔧 一、核心实现步骤 配置元数据加载 容器启动时读取XML/注解/Java配置类,解析为BeanDefinition对象(包含类名、…

Solidity内部合约创建全解析:解锁Web3开发新姿势

合约创建基础 new 关键字创建合约 在 Solidity 中,new关键字是创建合约实例的最基本方式,它就像是一个 “魔法钥匙”,能够在以太坊区块链上生成一个全新的合约实例。使用new关键字创建合约的过程非常直观,就像我们在其他编程语言…

OCR大模型,破解金融文档处理困境,从文字识别到文字理解

金融机构在日常运营中处理海量文档。这些文档类型多样,格式复杂,是业务运营的基础。如何高效、准确地处理这些文档,直接影响机构的运营效率与风险控制水平。新一代的OCR大模型技术为此提供了有效的解决方案。它提升了文档处理的自动化程度与数…

2025.6.21笔记(2)

1.编写一个程序,输入一个整数,判断它是奇数还是偶数 解题思路: 1.因为要判断输入的数是奇数还是偶数,所以要用到if判断 2.判读奇偶数:如果这个数%20,则它为偶数,如果这个数%2!0,则…

【Ambari3.0.0 部署】Step7—Mariadb初始化-适用于el8

如果有其他系统部署需求可以参考原文 https://doc.janettr.com/install/manual/ MariaDB 10 是 Ambari 及大数据平台的常见数据库方案。本文适配 Rocky Linux 8.10,涵盖 MariaDB 10.11 推荐安装、YUM 源配置、参数优化、初始化和安全设置,帮助你一步到位…

SpringBoot电脑商城项目--删除收获地址+热销排行

删除收获地址 1 删除收获地址-持久层 1.1 规划sql语句 在删除操作之前判断该数据是否存在,判断该条地址的归属是否是当前的用户执行删除收货地址的操作 delete from t_address where aid? 如果用户删除的时默认地址,将剩下地址的某一条作为默认收货地…

MIMIC-III 数据集文件简介

文件简介: 共26个文件 admissions.csv 患者入院信息(入院时间、出院时间、入院类型、科室等)。 callout.csv ICU 外科室请求 ICU 会诊的呼叫记录。 caregivers.csv 护理患者的医护人员信息(身份、角色等)。…

UL/CE双认证!光宝MOC3052-A双向可控硅输出光耦 智能家居/工业控制必备!

光宝MOC3052-A双向可控硅输出光耦详解 1. 产品定位 MOC3052-A 是光宝科技(Lite-On)推出的 双向可控硅驱动光耦,属于光电隔离型半导体器件,主要用于交流负载的隔离控制,实现低压控制电路(如MCU)…

让没有小窗播放的视频网站的视频小窗播放

让没有小窗播放的视频网站的视频小窗播放 // 视频小窗播放控制台脚本 // 将此代码复制到浏览器控制台运行 // 运行后,页面中的视频将添加小窗播放功能(function() {// 获取页面中的所有video元素const videos document.querySelectorAll(video);if (videos.length…

Linux内核在启动过程中挂载根文件系统rootfs的过程

一、挂载根文件系统rootfs的过程: 1. ‌初始虚拟根文件系统的挂载‌ 内核启动时首先会创建并挂载一个‌临时虚拟根文件系统(如initramfs或rootfs)‌‌15。该阶段主要作用: 提供基础的设备节点和目录结构,确保内核能访…

【LeetCode】力扣题——轮转数组、消失的数字、数组串联

🔥个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》、《数据结构与算法》、C语言刷题12天IO强训 🍉学习方向:C/C方向 ⭐️人生格言:为天地立心,为生民立命,为往圣继绝学,…

Java Stream详解

Java Stream详解 Stream 是 Java 8 引入的流式数据处理工具,可以像流水线一样对集合数据进行高效操作(过滤、转换、统计等)。核心特点: 链式操作:支持多个操作串联不修改原始数据:生成新结果支持并行处理…

Java回归循环理解

一、Java循环的四种 1. 传统for循环 - 精确控制的首选 // 遍历数组 int[] numbers {1, 2, 3, 4, 5}; for (int i 0; i < numbers.length; i) {System.out.println(numbers[i]); }// 嵌套示例&#xff1a;矩阵遍历 int[][] matrix {{1, 2}, {3, 4}}; for (int row 0; r…

飞腾D2000金融工控主板,点亮经济高质量发展

近年来&#xff0c;国家不断推出金融行业的政策和法规&#xff0c;推动金融业高质量发展。在国家大力推进金融行业改革和创新的大环境下&#xff0c;金融工控主板市场也迎来了新的发展机遇。随着国产CPU技术的不断突破&#xff0c;以及我国对金融安全重视程度的提高&#xff0c…

SimpleITK——创建nrrd体素模型

在介绍如何生成nrrd前&#xff0c;了解一下为什么医学影像上一般使用nrrd的体素模型&#xff1f; 为什么医学影像上一般使用nrrd的体素模型&#xff1f; 在医学影像领域&#xff0c;‌NRRD&#xff08;Nearly Raw Raster Data&#xff09;格式‌被广泛用于存储体素模型&#x…

Docker容器部署KES

一、安装部署 1&#xff0c;导入镜像 #导入镜像&#xff08;root用户&#xff09; [rootnode docker ]# mv kdb_x86_64_V008R006C009B0014.tar kingbase.tar [rootnode docker]# docker load -i kingbase.tar#查看镜像&#xff08;root用户&#xff09; [rootnode docker]# d…

C++基础练习 sort函数,用于排序函数

题目&#xff1a; https://acm.hdu.edu.cn/showproblem.php?pid2039 解答&#xff1a; #include <iostream> #include <cmath> #include <algorithm> using namespace std;double a[3]; int main(){int n;cin>>n;while(n--){cin>>a[0]>>…

棱镜观察|EMB“重构”卡钳,车企降本压力与Brembo困局

传统制动卡钳市场&#xff0c;正在迎来变革时刻。 一直以来&#xff0c;采埃孚、大陆集团、日立安斯泰莫等外资供应商占据中国乘用车卡钳前装市场&#xff08;包括前制动卡钳和后集成EPB卡钳&#xff09;的半壁江山。同时&#xff0c;伯特利、亚太股份、万向、弗迪等中国供应商…

《颠覆传统:CSS遮罩的图像创意设计指南》

想象有一块神奇的模板&#xff0c;上面有各种形状的镂空区域&#xff0c;当我们将这块模板覆盖在图像上时&#xff0c;只有透过镂空区域才能看到图像的部分&#xff0c;而模板遮挡的地方则被隐藏起来&#xff0c;这便是CSS遮罩的核心概念。遮罩&#xff0c;简单来说&#xff0c…