Python-利用os,tkinter库编写一个伪恶意程序文件(Pro版)
前言:上一期我们简单学习了如何编写一个多次弹窗警告用户的exe伪恶意文件。我们知道了把Python初始文件编译为exe文件后,程序在没有Python环境的情况下也能正常运行。我们上次编写的程序仅仅只是伪造系统正在执行关机命令前的倒计时的假象,实际系统最后并不会执行关机命令。那么好,本次我们将学习如何让程序先进行倒计时警告用户系统即将关机,最后执行关机指令。
编程思路:本次编程我们是对上次程序的修改优化(即补充关机指令,优化弹窗显示)并补充上次所讲的需要扩展讲解的内容。因次编程思路与上次相比基本无异 -先从主题入手,tkinter,os库是主体;其次,多次的弹窗,我们需要多线程,因此threading库必不可少;为了伪造系统的随机性,我们需要random库;为了获取系统的真实信息及执行系统操作,我们需要os,platform两个库;为了表现程序真实性,我们需要time库......至此,所有库都准备好了-tkinter,random,time,os,platform,threading。
import tkinter
import os
import threading
import time
import random
import platform
import ctypes
1,弹窗颜色修改,优化
上次我们为了编程方便,使用十种颜色:红,橙,黄,绿,蓝,紫,白,黑,金,灰)来给我们的弹窗上色。但是运行之后我们发现了两个需要改进的地方:一,弹窗颜色中有黑色,这导致程序运行后弹出的弹窗匹配到黑色时,窗口显示的内容会完全看不清楚,严重影响程序的整体运行效果;二,颜色种类过于单一,导致弹窗主体颜色重复率很高。因次本次编程中我们将解决这两个主要问题:一,删除列表s中的黑色;二,增加列表s中的颜色数量(扩充至15个)。(当然,以上只是我的个人感受,大家可自行调整,挑选自己喜欢的颜色)。(如下所示)
s=['red','orange','yellow','green','blue','teal','purple','peru','gold','violet','salmon','navy','tan','maroon','azure']
2,主窗口优化
上次我们利用while函数对倒计时迭代器的返回内容进行一对一匹配(即不让弹窗颜色始终保持原状)。但是后面我们发现程序运行后while循环的效果与删除后无异,秉持代码追求更简洁,更高效的原则,我们删除了while循环(wihle循环影响程序运行速度)。(如下所示)
def windows():window = tkinter.Tk()window.title('{} {} {} {}警告!!!'.format(os.name,platform.machine(),platform.node(),platform.version()))window.geometry("{}x{}".format(1160,600))number=random.randint(0,14)tkinter.Label(window,text='{}系统将在{}秒后自动关机'.format(platform.system(),count_down()[0])*1,font=('楷体',30),bg='{}'.format(s[number]),width=1160,height=600).pack()window.mainloop()count_down().remove(count_down()[0])
3,添加关机执行单元
在 Python 中,可以使用 os 模块中的 os.system() 函数来执行系统命令。因此,可以使用如下命令执行关机:
os.system('shutdown -s -t 0')
但是注意:这个命令执行的并不是强制关机。因此当系统关机前还有正在运行的程序时,在最后关机时系统会提示用户是否确认关机,此时用户有撤销关机的权利。因此,如果你觉得你需要程序执行强制关机来整蛊室友,可以将以上命令修改为以下命令:
os.system('shutdown -f -s -t 0')
注意:这种方法只能在 Windows 系统中使用,在其他操作系统中可能不能正常工作。需要注意的是,强制关机会导致程序强行终止,可能会导致未保存的数据丢失,因此应谨慎使用,别让室友把你打成猪头。
程序衔接(如下所示)
time.sleep(1)
os.system('shutdown -f -s -t 0')
4,完整代码展示:
import tkinter
import os
import threading
import time
import random
import platform
import ctypess=['red','orange','yellow','green','blue','teal','purple','peru','gold','violet','salmon','navy','tan','maroon','azure']begin=12
def count_down():seconds=[]for i in range(begin,0,-1):seconds.append(i)return secondsdef windows():window = tkinter.Tk()window.title('{} {} {} {}警告!!!'.format(os.name,platform.machine(),platform.node(),platform.version()))window.geometry("{}x{}".format(1160,600))number=random.randint(0,14)tkinter.Label(window,text='{}系统将在{}秒后自动关机'.format(platform.system(),count_down()[0])*1,font=('楷体',30),bg='{}'.format(s[number]),width=1160,height=600).pack()window.mainloop()count_down().remove(count_down()[0])while begin>0:mark=threading.Thread(target=windows)mark.start()time.sleep(1)begin-=1time.sleep(1)
os.system('shutdown -f -s -t 0')
5,运行效果展示:
后面将Python初始文件编译为exe文件的步骤我就不再赘述了,新手小白可以看一下我的上一篇文章,谢谢!
拓展延伸:
一,什么是Python第三方库?
Python第三方库是除Python官方提供的标准库之外,由第三方公司、社区或个人开发并发布的库。
二,Python标准库与第三方库的联系和区别
Python标准库和第三方库是Python编程中常用的两种不同类型的库,它们在安装方式、来源、可靠性和功能等方面存在一些区别。
三,Pyinstaller的常用命令有哪些?
-h, --help 显示帮助信息并退出
-v, --version 显示程序版本信息并退出
-F, --onefile 生成单个可执行文件(默认为多文件捆绑包)
-D, --onedir 生成一个包含多个文件的目录作为可执行程序
-a, --ascii 不包含 Unicode 字符集支持
-d, --debug 产生 debug 版本的可执行文件
-w, --windowed, --noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c, --nowindowed, --console 指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR, --out=DIR 指定 spec 文件的生成目录
-p DIR, --path=DIR 设置 Python 导入模块的路径
-n NAME, --name=NAME 指定项目(产生的 spec)名字
-i ICON, --icon=ICON 为 Windows 可执行文件指定图标
-add-data SOURCE:DEST 添加非 Python 文件或目录到打包文件中
-add-binary SOURCE:DEST 添加其他二进制文件到可执行文件中
-p DIR, --paths DIR 搜索导入的路径(如使用 PYTHONPATH)
-h, --help 显示帮助信息并退出
-v, --version 显示程序版本信息并退出
-F, --onefile 生成单个可执行文件(默认为多文件捆绑包)
-D, --onedir 生成一个包含多个文件的目录作为可执行程序
-a, --ascii 不包含 Unicode 字符集支持
-d, --debug 产生 debug 版本的可执行文件
-w, --windowed, --noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows 有效)
-c, --nowindowed, --console 指定使用命令行窗口运行程序(仅对 Windows 有效)
-o DIR, --out=DIR 指定 spec 文件的生成目录
-p DIR, --path=DIR 设置 Python 导入模块的路径
-n NAME, --name=NAME 指定项目(产生的 spec)名字
-i ICON, --icon=ICON 为 Windows 可执行文件指定图标
-add-data SOURCE:DEST 添加非 Python 文件或目录到打包文件中
-add-binary SOURCE:DEST 添加其他二进制文件到可文件中
期待你的交流指教,我是闪云-微星,我们下期再见!
相关文章:

Python-利用os,tkinter库编写一个伪恶意程序文件(Pro版)
前言:上一期我们简单学习了如何编写一个多次弹窗警告用户的exe伪恶意文件。我们知道了把Python初始文件编译为exe文件后,程序在没有Python环境的情况下也能正常运行。我们上次编写的程序仅仅只是伪造系统正在执行关机命令前的倒计时的假象,实…...

Oracle视频基础1.4.4练习
1.4.4 [dbs] 删干净上次创建的bbk ll rm -f *dbf ll rm -f spfilebbk.ora clear ll创建bbk的pfile,准备对应的目录 ll strings spfilewilson.ora | more strings spfilewilson.ora > initbbk.ora :%s/wilson/bbk :%s/*\.//g :wq ll vi initbbk.ora####### 创…...
GOF的C++软件设计模式的分类和模式名称
“GOF” 指的是 “Gang of Four”,即“四人帮”,他们是指 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides。这四位作者在其著作《Design Patterns: Elements of Reusable Object-Oriented Software》中定义了23种设计模式,这些…...

有向图的完全可达性(有向图搜索全路径的问题) C#DFs
在考察输入输出方面我觉得是道难题了 第一次遇见邻接表的数据结构该怎么声明 卡码网105 在力扣没找见完全相同的题 感觉需要多练习多复习这种类型的题 105. 有向图的完全可达性 题目描述 给定一个有向图,包含 N 个节点,节点编号分别为 1&…...

前端开发实现自定义勾选/自定义样式,可复选,可取消勾选
基于后端返回数组实现多选、复选 以下代码基于vue2,如果有需要React/Vue3或者其他框架代码的,可以通过国内直连GPT4o进行代码转换,转换正确率99% 前端代码如下(直接拷贝到你的vue代码即可): <!-- CustomCheckboxList.vue --&g…...
鸿蒙-promptAction.showToast基于PC屏幕底部提示
PC端app缩小,右击出菜单后,点菜单项 菜单关闭,并弹promptAction.showToast提示,但提示是基于PC底部弹提示的,需要的是基于app底部弹提示 原因是UIContext是右击菜单的UIContext,需要拿到菜单下面UI的UICont…...

Vert.x,应用监控 - 全链路跟踪,基于Zipkin
关于Zipkin Zipkin是一款开源的分布式实时数据追踪系统(Distributed Tracking System),能够收集服务间调用的时序数据,提供调用链路的追踪。Zipkin每一个调用链路通过一个trace id来串联起来,通过trace id,就能够直接定位到这次调…...
Rust常用数据结构教程 序列
文章目录 一、Vec1.Vec与堆栈2.什么时候需要Vec3.get()方法4.与枚举的结合 二、VecDeque1.什么情况适合VecDeque2.VecDeque的方法 三、LinkedList1.什么时候用LinkedList 参考 一、Vec 可变数组(vector)数组存储在heap上,在运行时(runtime)可以增加或减少数组 长度 有人把Ve…...

智慧城市路面垃圾识别系统产品介绍方案
方案介绍 智慧城市中的路面垃圾识别算法通常基于深度学习框架,这些算法因其在速度和精度上的优势而被广泛采用。这些模型能够通过训练识别多种类型的垃圾,包括塑料袋、纸屑、玻璃瓶等。系统通过训练深度学习模型,使其能够识别并定位多种类型…...
网络安全:构建坚固的数字堡垒
网络安全:构建坚固的数字堡垒 在当今数字化时代,网络安全已经成为企业和个人不可忽视的重要议题。随着互联网的普及和信息技术的快速发展,网络攻击、数据泄露和隐私侵犯等问题日益严重,给企业和个人带来了巨大的风险和损失。本文…...
LeetCode题练习与总结:打乱数组--384
一、题目描述 给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。打乱后,数组的所有排列应该是 等可能 的。 实现 Solution class: Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset() 重设数组到它的初始状态并返回int[]…...

科技改变生活:最新智能开关、调光器及插座产品亮相
根据QYResearch调研团队的最新力作《欧洲开关、调光器和插座市场报告2023-2029》显示,预计到2029年,欧洲开关、调光器和插座市场的规模将攀升至57.8亿美元,并且在接下来的几年里,将以4.2%的复合年增长率(CAGRÿ…...

传统RAG流程;密集检索器,稀疏检索器:中文的M3E
目录 传统RAG流程 相似性搜索中:神经网络的密集检索器,稀疏检索器 密集检索器 BGE系列模型 text-embedding-ada-002模型 M3E模型 稀疏检索器 示例一:基于TF-IDF的稀疏检索器 示例二:基于BM25的稀疏检索器 稀疏检索器的特点与优势 传统RAG流程 相似性搜索中:神经…...
基于统计方法的语言模型
基于统计方法的语言模型 基于统计方法的语言模型主要是指利用统计学原理和方法来构建的语言模型,这类模型通过分析和学习大量语料库中的语言数据,来预测词、短语或句子出现的概率。 N-gram模型:这是最基础的统计语言模型之一,它基…...
Flux comfyui 部署笔记,整合包下载
目录 comfyui启动: 1、下载 Flux 模型 2、Flux 库位置 工作流示例: Flux学习资料免费分享 comfyui启动: # 配置下载模型走镜像站 export HF_ENDPOINT="https://hf-mirror.com" python3 main.py --listen 0.0.0.0 --port 8188 vscode 点击 port 映射到本地,…...

高性能分布式缓存Redis-数据管理与性能提升之道
一、持久化原理 Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下次Redis重启时,利用持久化文件实现数据恢复。除此…...

BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测
BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测 目录 BO-CNN-LSTM回归预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络多输入单输出回归预测效果一览基本介绍模型搭建程序设计参考资料 效果一览 …...

DataWind将字符串数组拆出多行的方法
摘要: 可视化建模中先将字符串split为array再用explode(array)即可 可视化建模 进入“可视化建模”页面 1.1 新建任务 如果团队内没有可视化建模任务。请点击“新建任务”,输入名称并确定。 1.2 建立数据连接 在左边栏中选择“数据连接”,…...
try...catch 和then...catch的异同点分析
try…catch 和 then…catch 的异同点分析 在现代 JavaScript 编程中,异常处理和 Promise 的处理是非常常见的两种方式。try...catch 语句主要用于同步代码的异常处理,而 .then().catch() 是 Promise 中的异步处理方法。 1. 基础概念 1.1 try…catch …...

Mit6.S081-实验环境搭建
Mit6.S081-实验环境搭建 注:大家每次做一些操作的时候觉得不太保险就先把虚拟机克隆一份 前言 qemu(quick emulator):这是一个模拟硬件环境的软件,利用它可以运行我们编译好的操作系统。 准备一个Linux系统…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...

Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...