Как сделать пакмана на питоне

Добавил пользователь Владимир З.
Обновлено: 05.10.2024

Зачем кому-то писать вредоносное ПО на Python? Мы собираемся сделать это, чтобы изучить общие принципы разработки вредоносных программ, а в то же время вы сможете попрактиковаться в использовании этого языка и применить полученные знания для других целей. Кроме того, вредоносное ПО Python встречается в естественных условиях, и не все программы защиты от вирусов обращают на него внимание.

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

Теория

Определяем IP

Во-первых, нам (то есть нашему трояну) нужно определить, где он оказался. Важной частью вашей информации является IP-адрес, который вы можете использовать для подключения к зараженному компьютеру в будущем.

Нач­нем писать код. Сра­зу импорти­руем биб­лиоте­ки:

Обе биб­лиоте­ки не пос­тавля­ются с Python, поэто­му, если они у тебя отсутс­тву­ют, их нуж­но уста­новить коман­дой pip .

Код получе­ния внеш­него и внут­ренне­го адре­сов будет таким. Обра­ти вни­мание, что, если у жер­твы нес­коль­ко сетевых интерфей­сов (нап­ример, Wi-Fi и Ethernet одновре­мен­но), этот код может вес­ти себя неп­равиль­но.

Ес­ли с локаль­ным адре­сом все более‑менее прос­то — находим имя устрой­ства в сети и смот­рим IP по име­ни устрой­ства, — то вот с пуб­личным IP все нем­ного слож­нее.

Я выб­рал сайт api. ipify. org , так как на выходе нам выда­ется толь­ко одна стро­ка — наш внеш­ний IP. Из связ­ки пуб­личный + локаль­ный IP мы получим поч­ти точ­ный адрес устрой­ства.

Вы­вес­ти информа­цию еще про­ще:

Ни­ког­да не встре­чал конс­трук­ции типа print( f'<> ') ? Бук­ва f озна­чает фор­матиро­ван­ные стро­ковые литера­лы. Прос­тыми сло­вами — прог­рам­мные встав­ки пря­мо в стро­ку.

Строковые литералы не только хорошо смотрятся в вашем коде, они также помогают избежать таких ошибок, как сложение строк и добавление чисел (Python это не JavaScript!).

5 классных вещей, которые вы можете сделать с Python

Python - очень популярный язык среди разработчиков. Легко и весело писать сценарии для автоматизации и сборки.

Некоторые из распространенных случаев использования:

  • Создание ботов
  • Создание сайтов
  • Машинное обучение, визуализация данных и анализ
  • Веб-разработка с такими фреймворками, как Django и Flask
  • Разработка игр с Pygame
  • Мобильные приложения с фреймворками, такими как Kivy

В этой статье я постараюсь охватить несколько примеров и покажу вам некоторые забавные вещи, которые вы можете делать с Python.

1. Для веб-разработки

Python имеет очень хорошую поддержку для веб-разработки с его фреймворками, такими как Django, Flask и другими. Он может использоваться для создания веб-приложений на стороне сервера и может быть интегрирован с любым внешним интерфейсом. Обычно разработчики используют JavaScript во внешнем интерфейсе и python для поддержки операций на стороне сервера. Python не используется напрямую в браузерах.

Django является одним из самых популярных веб-фреймворков на Python. Эти инфраструктуры предоставляют пакет, в котором у вас есть определенная структура, с легкостью поддерживает взаимодействие с базой данных; все это настраивается с помощью минимальной команды установки. Если вы хотите что-то минимальное для начала - я рекомендую Flask!

Пример - доступ к файловой системе компьютера со смартфона.

Вы можете получить доступ к вашей файловой системе, запустив файловый сервер на вашем компьютере. Перейдите в нужный каталог, к которому вы хотите получить доступ, и выполните следующую команду:

Данная команда запускает файловый сервер, к которому можно получить доступ в той же сети. Чтобы получить доступ к своим файлам на мобильном устройстве, просто подключитесь к той же сети (Wi-Fi или воспользуйтесь точкой доступа телефона на ноутбуке). Теперь откройте браузер в вашем телефоне.

Проверьте свой IP, запустив - ifconfig . Проверьте ваш локальный IP (должен начинаться с 192.168….)

И на мобильном телефоне вы увидите текущий каталог

2. Автоматизация и скриптинг

Если вы программист, вы, вероятно, будете ленивы и захотите автоматизировать практически все, что можете, верно?

Не беспокойтесь, питон тебя прикроет. Есть множество вещей, которые вы можете автоматизировать всего за 4-5 строк кода. От установки заданий cron и напоминаний до загрузки ваших любимых видео на YouTube, вы можете сделать все это с помощью нескольких строк в python.

Пример - конвертировать CSV в JSON

Вы можете преобразовать файл CSV в JSON с помощью всего одной команды в Python!

Замените его на filename.csv, и вы получите вывод JSON!

3. Создание игр

С помощью Python вы можете разрабатывать игры. Его библиотека Pygame очень крутая. Он поддерживает художественные, музыкальные, звуковые, видео и мультимедийные проекты, которые будут создаваться вместе с ним. Вы даже можете создавать кроссплатформенные игры, используя Kivy , который работает на Windows, Mac, Linux, Android и iOS.

Виселица в терминале

Вот простая программа на Python, которая позволяет вам играть в виселицу в терминале. Код может быть значительно сокращен, и я оставлю это в качестве упражнения для вас!

Вывод будет выглядеть примерно так:

Виселица в терминале (python)

4. Веб-парсинг

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

Вот некоторые популярные библиотеки для парсинга:

Пример - получить значение валюты по сравнению с долларом США

Давайте используем парсинг для получения значений валюты:


5. Наука о данных и машинное обучение

Python хорошо подходит для манипулирования данными, анализа и реализации сложных алгоритмов. Синтаксический анализ и визуализация данных обычно представляют собой простые функции или несколько строк кода с библиотеками Python, такими как NumPy, scipy, scikit-learn и т.д.

Python можно использовать в приложениях с интенсивным использованием данных и машинном обучении, используя множество популярных библиотек, таких как:

Есть много инструментов глубокого обучения, которые поддерживают Python. Некоторые популярные библиотеки и фреймворки:

Еще одна причина, по которой Python популярна, заключается в том, что даже сложные модели машинного обучения могут быть реализованы с помощью 20-40 строк кода.

Заключение

В этом руководстве обсуждались различные области, в которых может использоваться python. Я предоставил несколько классных и простых примеров для демонстрации, но есть гораздо больше замечательных приложений и инструментов, которые вы можете создать с помощью Python. Я надеюсь, что вы узнали что-то новое!

Комментарий может занимать всю строчку:

или может находиться на строчке после какого-нибудь кода:

Внимание: любую строку можно превратить в комментарий, достаточно в начале строки набрать комбинацию клавиш Ctrl+/

Числа

Числа в Python бывают трёх типов:

Строки

Строка – это последовательность символов. Чаще всего строки – это просто некоторые наборы слов. Слова могут быть как на английском языке, так и почти на любом языке мира.

Кавычки

Строку можно указать, используя одинарные кавычки, как например, 'Это строка'. Любой одиночный символ в кавычках, например, 'ю' — это строка. Пустая строка '' — это тоже строка. То есть строкой мы считаем всё, что находится внутри кавычек.

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

Внимание :
Если строка началась с двойной кавычки — значит и закончиться должна на двойной кавычке.
Если внутри строки мы хотим использовать двойные кавычки, то саму строку надо делать в одинарных кавычках.

Театр '' Современник ' '
print ('Театр '' Современник '' ')

Строка, занимающая несколько строк, должна быть обрамлена тройными кавычками ( '' '' '' или ''' ). Например:

'''В Python можно использовать одинарные,
двойные и тройные кавычки,
чтобы обозначить строку'''

Отступы

Сдвиг строки с помощью пробелов называется отступами .

Оператор присваивания

Переменная – это именованная область памяти, в которой хранятся данные. Данные помещаются в эту область памяти, как в ящик, с помощью оператора присваивания. Общая форма записи операции присваивания:

Знакомый нам знак равно (=) в программирование это знак операции присваивания. Различие между знаками равно и присваивания в следующем.
Например:

В обычной математической записи выражение b (рано) = b + 2 является не верным. Однако запись оператора присваивания b (присвоить) = b + 2 правильная и означает следующее: к текущему значению переменной b, например, оно было равно 4, прибавляется число 2 , и после выполнения данного оператора, значение переменной будет равно 6.

Основные операторы

Оператор

Краткое описание

Сложение (сумма x и y)

Вычитание (разность x и y)

Умножение (произведение x и y)

Внимание! Если x и y целые, то результат всегда будет целым числом! Для получения вещественного результата хотя бы одно из чисел должно быть вещественным. Пример: 40/5 → 8, а вот 40/5.0 → 8.0

y+=x; эквивалентно y = y + x;

y-=x; эквивалентно y = y - x;

y*=x; эквивалентно y = y * x;

y/=x; эквивалентно y = y / x;

y%=x; эквивалентно y = y % x;

больше или равно

меньше или равно

Деление по модулю - деление, в котором возвращается остаток.

4 % 2 в результате будет 0
5 % 2 в результате будет 1

Целочисленное деление - деление, в котором возвращается целая часть результата. Часть после запятой отбрасывается

4 // 3 в результате будет 1
25 // 6 в результате будет 4

Возведение в степень

5 ** 2 в результате будет 25

логическое отрицание НЕ

Основные типы данных

Имя

Тип

Описание

int

float

str

Последовательность символов: " abc " , " pyhton " , " 123 "

list

Последовательность объектов: [ 1, 2.0, " Привет! " ]

dist

tuple

Последовательность неизменных объектов:(20,25 )

set

Последовательность уникальных объектов:

bool

Логические значения: True или False

Список

Список (list) представляет тип данных, который хранит набор или последовательность элементов.
Для создания списка в квадратных скобках [ ] через запятую перечисляются все его элементы.

Создание пустого списка

Создание списка чисел:

Создание списка слов:

Создание списка из элементов разного типа

Для управления элементами списки имеют целый ряд методов. Некоторые из них:

Кроме того, Python предоставляет ряд встроенных функций для работы со списками:

Генераторы

Для создания списков, заполненных по более сложным формулам можно использовать генераторы: выражения, позволяющие заполнить список значениями, вычисленными по некоторым формулам.

Общий вид генератора следующий :

Прим ер. Создать список чисел от 0 до 10

[ i for i in range ( 0 , 10 )]
Вся конструкция заключается в квадратные скобки, потому что будет создан список. Внутри квадратных скобок можно выделить три части:

1) что делаем с элементом i : просто добавляем значение i в список
2) что берем: берем i
3) откуда берем : из объекта range .
Части отделены друг от друга ключевыми словами for и in .

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Пример . Создать список заглавных букв английского алфавита. Код символа ' A ' – 65, код символа ' Z ' – 91. Поскольку символы идут подряд, то возможно использовать генератор.

что делаем: к значению элемента i применяем функцию chr ( i ).

Внимание. Функция chr ( i ) – по числовому коду символа возвращает сам символ. Пример. chr (65) даст символ ' A '.

['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

Пример. Создать список строчный букв английского алфавита. Код символа 'a' – 97, код символа 'z' – 123. Поскольку символы идут подряд, то возможно использовать генератор.

['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

Библиотека math

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

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

Можно подключать не весь модуль, а какую-то его часть. Например, программист хочет использовать только одну функцию из математической библиотеки math . Если он подключит всю библиотеку, то будет добавлено более 40 функций, которые будут занимать место. Чтобы добавить в проект какую-то часть, используют ключевое слово from :

Ниже приведен список основных функций модуля math . Некоторые из перечисленных функций ( int , round , abs ) являются стандартными и не требуют подключения модуля math для использования.

Функция

Описание

Округление

int(x)

Округляет число в сторону нуля. Это стандартная функция, для ее использования не нужно подключать модуль math .

round(x)

Округляет число до ближайшего целого. Если дробная часть числа равна 0.5, то число округляется до ближайшего четного числа.

round(x, n)

Округляет число x до n знаков после точки. Это стандартная функция, для ее использования не нужно подключать модуль math .

floor(x)

ceil(x)

abs(x)

Модуль (абсолютная величина). Это — стандартная функция.

Корни, логарифмы

sqrt(x)

Квадратный корень. Использование : sqrt(x)

log(x)

Натуральный логарифм. При вызове в виде log(x, b) возвращает логарифм по основанию b .

e

Основание натуральных логарифмов e = 2,71828.

Тригонометрия

sin(x)

Синус угла, задаваемого в радианах

cos(x)

Косинус угла, задаваемого в радианах

tan(x)

Тангенс угла, задаваемого в радианах

asin(x )

Арксинус, возвращает значение в радианах

acos(x)

Арккосинус, возвращает значение в радианах

atan(x)

Арктангенс, возвращает значение в радианах

atan2(y, x)

Полярный угол (в радианах) точки с координатами (x, y).

degrees(x)

Преобразует угол, заданный в радианах, в градусы.

radians(x)

Преобразует угол, заданный в градусах, в радианы.

pi

Константа π = 3.1415.

Генерация случайных чисел (модуль random)

Python порождает случайные числа на основе формулы, так что они на самом деле не случайные, а, как говорят, псевдослучайные.

Модуль random позволяет генерировать случайные числа и имеет большое множество важных для практики функций. Рассмотрим основные функции:

Функция random . random () случайное число от 0 до 1.


В этой статье я рас­ска­жу, как написать на Python прос­тей­ший тро­ян с уда­лен­ным дос­тупом, а для боль­шей скрыт­ности мы встро­им его в игру. Даже если ты не зна­ешь Python, ты смо­жешь луч­ше понять, как устро­ены такие вре­доно­сы, и поуп­ражнять­ся в прог­рамми­рова­нии.

Ко­неч­но, при­веден­ные в статье скрип­ты никак не годят­ся для исполь­зования в боевых усло­виях: обфуска­ции в них нет, прин­ципы работы прос­ты как пал­ка, а вре­донос­ные фун­кции отсутс­тву­ют нап­рочь. Тем не менее при некото­рой сме­кал­ке их воз­можно исполь­зовать для нес­ложных пакос­тей — нап­ример, вырубить чей‑нибудь компь­ютер в клас­се (или в офи­се, если в клас­се ты не наиг­рался).

Теория

Ло­гика подоб­ного зараже­ния в том, что поль­зователь сам ска­чает себе вре­донос на компь­ютер (нап­ример, под видом кряк­нутой прог­раммы), сам отклю­чит защит­ные механиз­мы (ведь прог­рамма выг­лядит хорошей) и захочет оста­вить надол­го. Хакеры и тут не дрем­лют, так что в новос­тях то и дело мель­кают сооб­щения о новых жер­твах пират­ско­го ПО и о шиф­роваль­щиках, поража­ющих любите­лей халявы. Но мы‑то зна­ем, что бес­плат­ный сыр быва­ет толь­ко в мусор­ке, и сегод­ня научим­ся очень прос­то начинять тот самый сыр чем‑то не впол­не ожи­даемым.

warning

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

Определяем IP

Сна­чала нам (то есть нашему тро­яну) нуж­но опре­делить­ся, где он ока­зал­ся. Важ­ная часть тво­ей информа­ции — IP-адрес, по которо­му с заражен­ной машиной мож­но будет соеди­нить­ся в даль­нейшем.

Нач­нем писать код. Сра­зу импорти­руем биб­лиоте­ки:

Обе биб­лиоте­ки не пос­тавля­ются с Python, поэто­му, если они у тебя отсутс­тву­ют, их нуж­но уста­новить коман­дой pip .

Код получе­ния внеш­него и внут­ренне­го адре­сов будет таким. Обра­ти вни­мание, что, если у жер­твы нес­коль­ко сетевых интерфей­сов (нап­ример, Wi-Fi и Ethernet одновре­мен­но), этот код может вес­ти себя неп­равиль­но.

Ес­ли с локаль­ным адре­сом все более‑менее прос­то — находим имя устрой­ства в сети и смот­рим IP по име­ни устрой­ства, — то вот с пуб­личным IP все нем­ного слож­нее.

Я выб­рал сайт api. ipify. org , так как на выходе нам выда­ется толь­ко одна стро­ка — наш внеш­ний IP. Из связ­ки пуб­личный + локаль­ный IP мы получим поч­ти точ­ный адрес устрой­ства.

Вы­вес­ти информа­цию еще про­ще:

Ни­ког­да не встре­чал конс­трук­ции типа print( f'<> ') ? Бук­ва f озна­чает фор­матиро­ван­ные стро­ковые литера­лы. Прос­тыми сло­вами — прог­рам­мные встав­ки пря­мо в стро­ку.

Стро­ковые литера­лы не толь­ко хорошо смот­рятся в коде, но и помога­ют избе­гать оши­бок типа сло­жения строк и чисел (Python — это тебе на JavaScript!).

Читайте также: