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 ctypes


s=['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 seconds

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])


while begin>0:
    mark=threading.Thread(target=windows)
    mark.start()
    time.sleep(1)
    begin-=1
    

time.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    添加其他二进制文件到可文件中

 

期待你的交流指教,我是闪云-微星,我们下期再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/911372.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型训练的全过程:预训练、微调、RLHF

一、 大语言模型的训练过程 预训练阶段:PT(Pre training)。使用公开数据经过预训练得到预训练模型,预训练模型具备语言的初步理解;训练周期比较长;微调阶段1:SFT(指令微调/有监督微调…

字节青训-小S的倒排索引

问题描述 小S正在帮助她的朋友们建立一个搜索引擎。为了让用户能够更快地找到他们感兴趣的帖子,小S决定使用倒排索引。倒排索引的工作原理是:每个单词都会关联一个帖子ID的列表,这些帖子包含该单词,且ID按从小到大的顺序排列。 例…

你需要了解的正则表达式相关知识

正则表达式(Regular Expression,简称 regex 或 regexp)是一种用于匹配字符串的模式。它广泛应用于文本查找、替换、验证等场景,尤其是在数据处理、网络爬虫、编程等领域非常有用。下面将详细介绍正则表达式的基本语法、常用元字符…

掌握分布式系统的38个核心概念

天天说分布式分布式,那么我们是否知道什么是分布式,分布式会遇到什么问题,有哪些理论支撑,有哪些经典的应对方案,业界是如何设计并保证分布式系统的高可用呢? 1. 架构设计 这一节将从一些经典的开源系统架…

【C++进阶】智能指针的使用和原理(2)

5. shared_ptr和weak_ptr 5.1 shared_ptr循环引用问题 shared_ptr大多数情况下管理资源⾮常合适,⽀持RAII,也⽀持拷贝。但是在循环引⽤的场景下会导致资源没得到释放内存泄漏,所以我们要认识循环引用的场景和资源没释放的原因,并…

【Uniapp】Uniapp Android原生插件开发指北

前言 在uniapp开发中当HBuilderX中提供的能力无法满足App功能需求,需要通过使用Andorid/iOS原生开发实现时,或者是第三方公司提供的是Android的库,这时候可使用App离线SDK开发原生插件来扩展原生能力。 插件类型有两种,Module模…

linux进程的状态之环境变量

我们在前面了解了进程的状态及相关概念 接下来我们接着上一篇进程的状态接着了解环境变量 进程的状态 文章目录 目录 文章目录 前言 二、环境变量 1、常见环境变量 2、查看环境变量 3、修改PATH 4、HOME 5、PATH ​编辑 6、和环境变量相关的命令 三、环境变量的组织…

揭秘集装箱箱号自动识别原理,箱号识别算法

集装箱箱号自动识别算法是一种高效且实用的软件工具。它利用相机、手机或其他摄像头捕获集装箱箱号图像,并通过深度学习的OCR(光学字符识别)识别技术对集装箱号码进行准确识别。要想进行集装箱箱号识别,需要以下几个基本步骤&…

AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。

2024-10-31,由清华大学和北京大学共同创建的AndroidLab数据集,为安卓自主代理的训练和评估提供了一个包含操作环境、行动空间和可复现基准的系统框架,这对于推动安卓代理技术的发展具有重要意义。 数据集地址:Android Instruct|A…

使用axois自定义基础路径,自动拼接前端服务器地址怎么办

请求路径: http://localhost:5173/http://pcapi-xiaotuxian-front-devtest.itheima.net/home/category/head 很明显多拼接了路径地址 查看基础路径文件发现: //axios基础封装 import axios from axiosconst httpInstance axios.create({baseURL: /h…

Densenet模型花卉图像分类

项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【基于CNN-RNN的影像报告生成】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实现…

【Mysql NDB Cluster 集群(CentOS 7)安装笔记一】

Mysql NDB Cluster 集群(CentOS 7)安装笔记 NDB集群核心概念 NDBCLUSTER(也称为NDB)是一个内存存储引擎,提供高可用性和数据保存功能。 NDBCLUSTER存储引擎可以配置一系列故障转移和负载平衡选项,但从集群级别的存储引擎开始是最容易的。NDB集群的NDB存储引擎包含一整套…

Pattern program MPAT 详解

本文为VIP文章,主要介绍Pattern中元素与格式、常用指令、地址&数据产生指令等。 目录 一、pattern概述 二:Pattern构成元素 1、pattern构成元素:MPAT、END 2、pattern构成元素:pattern file name 3、pattern构成元素:SDEF 4、Pattern构成元素:REGISETR 5、Pa…

【通义灵码】AI编码新时代

目录 一.初识灵码,开启新篇 安装 登录 二.灵码相伴,探索新境 实时续写 自然生成 单元测试生成 解释代码 优化建议 快捷键 三.智慧流转,高效开发 驱动移植 LVGL框架 项目总结 四.融合创新,携手同行 一.初识灵码&#…

RabbitMQ客户端应用开发实战

这一章节我们将快速完成RabbitMQ客户端基础功能的开发实战。 一、回顾RabbitMQ基础概念 这个RabbitMQ的核心组件,是进行应用开发的基础。 二、RabbitMQ基础编程模型 RabbitMQ提供了很多种主流编程语言的客户端支持。这里我们只分析Java语言的客户端。 上一章节提…

PySide6百炼成真(2)

文章目录 1.简单的登录页面2.简单的计算器 本篇根据前面所学做两个小demo 制作一个简单的登录页面制作一个计算器 因为还没有学习布局流等,所以就只能拖拉到设计师中. 1.简单的登录页面 下面就到计算器了,在图形界面中计算器就跟我们编程语言的hello,world一样,所以一定要自己…

群控系统服务端开发模式-应用开发-上传工厂开发

现在的文件、图片等上传基本都在使用oss存储。而现在常用的oss存储有阿里云、腾讯云、七牛云、华为云等,但是用的最多的还是前三种。而我主要封装的是本地存储、阿里云存储、腾讯云存储、七牛云存储。废话不多说,直接上传设计图及说明,就一目…

服务器被病毒入侵如何彻底清除?

当服务器遭遇病毒入侵时,彻底清除病毒是确保系统安全和数据完整性的关键步骤。这一过程不仅需要技术上的精准操作,还需要严密的计划、合理的资源调配以及后续的防范措施。以下是一篇关于如何在服务器被病毒入侵时彻底清除病毒的详细指南。 一、初步响应与…

修改 title标题图标

路径 \web\views\webclient_templates.xml \web\static\src\webclient\webclient.js 再升级web模块

docker安装zookeeper,以及zk可视化界面介绍

1. zookeeper 1.1. zookeeper简单介绍 ZooKeeper 是一个分布式的开源协调服务,最初由 Apache Hadoop 项目开发,用于构建分布式应用程序。它提供了一个简单的接口,允许开发人员实现诸如配置维护、域名服务、分布式同步、组服务等常见任务。Z…