执行CMD命令,下载文件、执行exe、屏幕截图、后台拍照等等。
第一次执行exe则隐藏自身,并开机自启,隐藏和修改exe文件。
支持邮件白名单和md5签名验证,选择性的接收邮件
有界面版:通过界面,来设置相关参数(可做到完全隐藏)。
无界面版:无须任何配置,启动exe则完全隐藏界面,后台静默运行。
软件 | 版本 | 作用说明 |
---|---|---|
Python | 3.7 | 此版本支持模块较多 |
PyInstaller | 3.5 | 3.5+才支持upx排除 |
UPX | 3.9.5(x86_64) | 加壳,压缩exe |
Gow | 8.0 | 增强CMD命令(bin目录) |
自带modules | cp37_amd64 | 尽量使用自带模块 |
自带x86软件 | curl,7z | 经测试,同时兼容x64系统 |
当前项目 | x86_64 | 仅支持x64的windwos系统 |
UPX加壳注意事项
确实能够压缩exe文件大小,21M的界面程序压缩成15M左右,7M的无界面程序压缩成6M左右
仅3.5及以上才支持upx排除,不自定义upx排除会找不到vcruntime140.dll
需要排除vcruntime140.dll,听说此文件自身有hash校验。
相关参数:--upx-exclude=vcruntime140.dll
不需要的模块
请问:cmd命令一个参数为数组时如何传参,只能重复写两个参数名吗?
win32ui和mfc140u,相关参数:--exclude-module=win32ui --exclude-module=mfc140u
查看错误日志方法
相关参数:-c --debug=all
并使用cmd控制台的方式打开程序,以便错误信息输出的控制台。
资源文件的相对路径
项目的根目录,相对于启动项目的启动路径。如MainUi.py在bin目录下,则就相对于bin目录读取资源
因此,本项目中,启动项目的py代码放在项目的根目录下,以便读取资源文件
打包成exe后的资源文件
exe会解压在用户的目录下,资源文件也在此目录。因此读取资源文件时,需要使用绝对路径,否则只会读取exe文件所在路径下的文件
解决方案:根据getattr(sys, 'frozen', False)
获得项目路径,并设置工作路径:os.chdir(base_path)
官方文档:https://pyinstaller.readthedocs.io/en/stable/index.html
删除自身
当前先复制自身(now_file)到其他目录(target_file),启动target_file并使用其删除now_file。
这个过程中,now_file需要向target_file传递指令,target_file执行完成后,now_file才能退出,导致now_file无法删除。
当前解决方案为:使用文件传递指令,创建target_file时同时创建参数文件,target_file启动后从文件中读取参数。
后台服务截屏
本程序采用注册成后台服务的方式自启。在windows系统中服务无法截屏,必须要登录到用户。
同时启动一个前台服务,由前台服务截屏返回,由后台服务发送数据。
以服务方式运行
和登录用户不在同一空间,无法操作用户数据
程序重新安装
需要判断是否第一次启动服务,并更新或者安装windows服务。
解决方案:释放文件时,同时释放服务重新安装文件,服务启动时,判断是否有重新安装文件。
暂时未解决服务的运行,且当前无法通过服务管理的方式终止服务。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。