Привет чуваки. Сегодня мы приведем пример того, как можно использовать криптографию в атаках. Мы называем это атакой программ-вымогателей. Атаки программ-вымогателей — очень опасные и распространенные типы атак. Они могут быть действительно хлопотными.

  • Что такое RansomWare
  • Шифрование
  • Расшифровка

Что такое программы-вымогатели?

Программы-вымогатели, как следует из названия, являются программами-вымогателями. Ха-ха-ха, я знаю, это странное предложение. Нам нужно немного уточнить. Что вы требуете, когда просите у кого-то выкуп? (пожалуйста, не делайте этого)

У тебя есть что-то, что принадлежит ему. И, угрожая им, вы требуете оплаты. Это выкуп. Небольшое напоминание. Неважно, насколько это файл Python, это большое преступление. Бросьте это как шутку своей семье, друзьям. Но никогда не злоупотребляйте. Это только для образовательных целей. Напоминание закончилось.

Шифрование

Алгоритм программы-вымогателя разделен на две части. Первая часть — это та часть, где мы encrpyt. Наша цель в части шифрования — зашифровать все файлы в соответствии с определенным ключом.

Открываем наш проект и сначала импортируем наши библиотеки.

Мы используем две библиотеки в проекте. Библиотека ОС и библиотека криптографии.

Модуль ОС в Python предоставляет функции для создания и удаления каталога (папки), извлечения его содержимого, изменения и определения текущего каталога и т. д.. Сначала вам нужно импортировать модуль os для взаимодействия с базовой операционной системой.

Python поддерживает пакет криптографии, который помогает нам шифровать и расшифровывать данные. Модуль fernet пакета криптографии имеет встроенные функции для генерации ключа, шифрования открытого текста в зашифрованный текст и расшифровки зашифрованного текста в открытый текст с использованием методов шифрования и дешифрования соответственно.

Давай продолжим

Мы создаем глобальную переменную с именем key и генерируем новый ключ для ключа.

Это сгенерирует для нас ключ шифрования. И назначит его ключу.

Далее мы создаем пустой массив с именем files. Наша цель для создания этого состоит в том, чтобы включить файлы, которые будут зашифрованы.

Затем мы создаем функцию для извлечения файлов. Хитрость здесь в том, что если имена файлов совпадают с именами, которые мы дали в запросе if, он не должен добавлять эти файлы в массив файлов. Потому что, если его добавить, наш ключ никогда не будет расшифрован, так как он тоже будет зашифрован.

Теперь создадим функцию шифрования. Здесь мы хотим зашифровать все файлы в файле с помощью ключа fernet.

Мы зашифровали данные, которые у нас есть. теперь остаются операции печати и вызова.

Мы вызываем ключ с помощью функции write_key. Наконец, мы вызываем наши функции с помощью функции main.

Расшифровка

На самом деле мы не собираемся писать сильно отличающийся код. теперь мы создаем другой файл Python. Имена файлов важны, поэтому следите за тем, чтобы не оставлять пробелов. После создания нашего файла мы можем импортировать наши библиотеки.

Мы импортируем одни и те же библиотеки.

Хитрость здесь все та же. Мы не хотим, чтобы наши имена файлов добавлялись в список. Это было бы большой проблемой. Разница лишь в том, что мы не создаем новый ключ. Почему мы должны?

Мы шифруем наш файл decrpty. Таким образом, они не смогут расшифровать, не зная пароля.

И, наконец, если ввод пользователя и установленный нами пароль (user_pass) совпадают, (secret_pass) может расшифровать пароль. Но не расшифровывайте, если это неправильно.

Помните, что это только для образовательных целей.
Пожалуйста, не используйте его злонамеренно, так как оно предназначено для образовательных целей.

Спасибо, что были со мной в этой статье.

Добрый день всем.