Если вы используете
Что это делает?
- `filters.CommandStart()`: Фильтр для команды
- `filters.Command(commands=["help"])`: Фильтр для команды
Aiogram 3.x и хотите создать хендлер для команды /help, используйте filters.Command(commands=["help"]):from aiogram import filters
def register_handlers(dp: Dispatcher):
dp.message.register(cmd_start, filters.CommandStart())
dp.message.register(cmd_help, filters.Command(commands=["help"]))
dp.message.register(echo)
Что это делает?
- `filters.CommandStart()`: Фильтр для команды
/start.- `filters.Command(commands=["help"])`: Фильтр для команды
/help.Чиним замедление YouTube на уровне роутера / Хабр
https://habr.com/ru/articles/833564/
https://habr.com/ru/articles/833564/
Замедление YouTube с технической стороны: ограничение и обход / Хабр
https://habr.com/ru/articles/832678/
https://habr.com/ru/articles/832678/
Хабр
Замедление YouTube с технической стороны: ограничение и обход
Привет, Хабр! В последнее время замечаю огромное количество информации по поводу замедления Великого, но очень мало где видел конкретику о том, как именно это работает. Одно лишь отчаяние "мы все...
Forwarded from Хабр
Любой может получить доступ к удалённым и приватным данным репозиториев GitHub
Кто угодно может получать доступ к данным из удалённых форков, удалённых репозиториев и даже приватных репозиториев GitHub. И эти данные доступны всегда. Это известно разработчикам GitHub, и они намеренно спроектировали систему таким образом.
Кто угодно может получать доступ к данным из удалённых форков, удалённых репозиториев и даже приватных репозиториев GitHub. И эти данные доступны всегда. Это известно разработчикам GitHub, и они намеренно спроектировали систему таким образом.
Доброе утро!
Твое задание — арендовать VPS в Европе и установить на него VPN-сервис, такой как Amnezia VPN или OpenVPN/ShadowSocks. Позволь мне объяснить шаги:
### 1. Аренда VPS в Европе
Для начала нужно арендовать VPS (Virtual Private Server) в европейском дата-центре. Это может быть любой сервис, который предоставляет VPS: такие как DigitalOcean, Hetzner, Vultr, OVH, Linode и другие.
Шаги:
- Зарегистрируйся на одном из этих сервисов.
- Создай новый сервер (VPS) в Европе, выбери подходящее местоположение (например, Германия, Нидерланды или Франция).
- Выбери операционную систему, чаще всего это будет Ubuntu или Debian.
- Получи доступ к серверу через SSH.
### 2. Установка Amnezia VPN (самое простое решение)
Amnezia VPN — это простой в установке и использовании VPN-сервер. Вот как его установить:
1. Зайди на сервер через SSH (используя терминал, например
2. На сервере, выполняй команды:
3. Далее нужно скачать и запустить Amnezia VPN:
4. После этого Amnezia автоматически сгенерирует конфигурации, которые можно будет использовать для подключения через клиент VPN на своем устройстве.
Amnezia подходит тем, кто хочет максимально простую настройку без особого углубления в технические детали.
### 3. Установка OpenVPN / ShadowSocks (если хочется поковыряться)
OpenVPN и ShadowSocks требуют более глубокой настройки.
#### Установка OpenVPN:
1. Установи OpenVPN на сервер:
2. Настрой сервер, следуя детальным инструкциям или используй скрипт, чтобы автоматизировать установку:
3. Скрипт предложит тебе несколько опций (настройка протоколов, выбор порта и т.д.), а после окончания работы выдаст файл конфигурации, который ты сможешь использовать для подключения через клиент OpenVPN.
#### Установка ShadowSocks:
1. Установи ShadowSocks:
2. Отредактируй файл конфигурации
3. Запусти сервис ShadowSocks:
4. Затем используй клиент ShadowSocks на своем устройстве для подключения к серверу.
### Итог:
- Amnezia VPN — быстрое и простое решение, требует минимальных настроек.
- OpenVPN/ShadowSocks — более гибкие решения для тех, кто хочет тонкую настройку и готов поковыряться.
Твое задание — арендовать VPS в Европе и установить на него VPN-сервис, такой как Amnezia VPN или OpenVPN/ShadowSocks. Позволь мне объяснить шаги:
### 1. Аренда VPS в Европе
Для начала нужно арендовать VPS (Virtual Private Server) в европейском дата-центре. Это может быть любой сервис, который предоставляет VPS: такие как DigitalOcean, Hetzner, Vultr, OVH, Linode и другие.
Шаги:
- Зарегистрируйся на одном из этих сервисов.
- Создай новый сервер (VPS) в Европе, выбери подходящее местоположение (например, Германия, Нидерланды или Франция).
- Выбери операционную систему, чаще всего это будет Ubuntu или Debian.
- Получи доступ к серверу через SSH.
### 2. Установка Amnezia VPN (самое простое решение)
Amnezia VPN — это простой в установке и использовании VPN-сервер. Вот как его установить:
1. Зайди на сервер через SSH (используя терминал, например
ssh root@IP_сервера).2. На сервере, выполняй команды:
sudo apt update
sudo apt install docker.io -y
3. Далее нужно скачать и запустить Amnezia VPN:
sudo docker run --privileged -p 1194:1194/udp -p 443:443/tcp amnezia
4. После этого Amnezia автоматически сгенерирует конфигурации, которые можно будет использовать для подключения через клиент VPN на своем устройстве.
Amnezia подходит тем, кто хочет максимально простую настройку без особого углубления в технические детали.
### 3. Установка OpenVPN / ShadowSocks (если хочется поковыряться)
OpenVPN и ShadowSocks требуют более глубокой настройки.
#### Установка OpenVPN:
1. Установи OpenVPN на сервер:
sudo apt update
sudo apt install openvpn -y
2. Настрой сервер, следуя детальным инструкциям или используй скрипт, чтобы автоматизировать установку:
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
3. Скрипт предложит тебе несколько опций (настройка протоколов, выбор порта и т.д.), а после окончания работы выдаст файл конфигурации, который ты сможешь использовать для подключения через клиент OpenVPN.
#### Установка ShadowSocks:
1. Установи ShadowSocks:
sudo apt install shadowsocks-libev -y
2. Отредактируй файл конфигурации
/etc/shadowsocks-libev/config.json, чтобы указать ключевые параметры (порт, пароль и метод шифрования).3. Запусти сервис ShadowSocks:
sudo systemctl start shadowsocks-libev
sudo systemctl enable shadowsocks-libev
4. Затем используй клиент ShadowSocks на своем устройстве для подключения к серверу.
### Итог:
- Amnezia VPN — быстрое и простое решение, требует минимальных настроек.
- OpenVPN/ShadowSocks — более гибкие решения для тех, кто хочет тонкую настройку и готов поковыряться.
dotPeek — это инструмент от JetBrains для декомпиляции .NET-приложений (файлов .exe и .dll), который позволяет просматривать исходный код из скомпилированных файлов. Вот пошаговая инструкция, как его использовать:
### 1. Установка dotPeek
- Перейдите на сайт [JetBrains dotPeek](https://www.jetbrains.com/decompiler/) и скачайте последнюю версию.
- Установите программу, следуя инструкциям установщика.
### 2. Запуск dotPeek
- Запустите dotPeek после установки.
### 3. Открытие .exe файла
- Нажмите на значок “Open” или используйте сочетание клавиш
- Найдите и выберите .exe файл, который вы хотите декомпилировать.
- После открытия dotPeek проанализирует содержимое файла и отобразит его в виде дерева.
### 4. Навигация по дереву проекта
- В левом боковом меню вы увидите дерево классов и ресурсов вашего файла. Это аналог структуры проекта в исходном коде.
- Вы можете развернуть узлы дерева и исследовать различные элементы программы, включая классы, методы, ресурсы и строки.
### 5. Просмотр исходного кода
- Нажав на любой класс или метод в дереве, вы увидите декомпилированный код в главном окне. Код будет похож на исходный C# код, но не обязательно полностью идентичный.
- dotPeek автоматически декомпилирует .exe файл и отображает код как текст, с которым можно работать.
### 6. Поиск текста или данных
- Используйте функцию поиска
### 7. Экспорт кода
- Если хотите экспортировать декомпилированный проект, выберите опцию “Export to Project” (в меню File).
- Это позволит вам сохранить декомпилированный код в виде полноценного проекта, который можно открыть в IDE (например, Visual Studio).
### 8. Ресурсы
- Если вопросы и ответы хранятся в виде ресурсов (например, в файлах или строках), вы сможете найти их в разделе Resources или Strings.
### Важные моменты:
- dotPeek работает только с .NET-приложениями. Если ваш .exe файл не является .NET-приложением, он не сможет его декомпилировать.
- При декомпиляции не всегда удается восстановить исходный код в точности, но полученные результаты часто достаточно близки к оригиналу для анализа и изучения.
Попробуйте пройтись по файлу и посмотреть, где могут находиться вопросы и ответы (например, в строковых переменных, ресурсах или базах данных).
### 1. Установка dotPeek
- Перейдите на сайт [JetBrains dotPeek](https://www.jetbrains.com/decompiler/) и скачайте последнюю версию.
- Установите программу, следуя инструкциям установщика.
### 2. Запуск dotPeek
- Запустите dotPeek после установки.
### 3. Открытие .exe файла
- Нажмите на значок “Open” или используйте сочетание клавиш
Ctrl + O.- Найдите и выберите .exe файл, который вы хотите декомпилировать.
- После открытия dotPeek проанализирует содержимое файла и отобразит его в виде дерева.
### 4. Навигация по дереву проекта
- В левом боковом меню вы увидите дерево классов и ресурсов вашего файла. Это аналог структуры проекта в исходном коде.
- Вы можете развернуть узлы дерева и исследовать различные элементы программы, включая классы, методы, ресурсы и строки.
### 5. Просмотр исходного кода
- Нажав на любой класс или метод в дереве, вы увидите декомпилированный код в главном окне. Код будет похож на исходный C# код, но не обязательно полностью идентичный.
- dotPeek автоматически декомпилирует .exe файл и отображает код как текст, с которым можно работать.
### 6. Поиск текста или данных
- Используйте функцию поиска
Ctrl + F или Ctrl + Shift + F, чтобы искать конкретные строки или ключевые слова. Если вопросы и ответы хранятся как строки, вы сможете их найти через поиск.### 7. Экспорт кода
- Если хотите экспортировать декомпилированный проект, выберите опцию “Export to Project” (в меню File).
- Это позволит вам сохранить декомпилированный код в виде полноценного проекта, который можно открыть в IDE (например, Visual Studio).
### 8. Ресурсы
- Если вопросы и ответы хранятся в виде ресурсов (например, в файлах или строках), вы сможете найти их в разделе Resources или Strings.
### Важные моменты:
- dotPeek работает только с .NET-приложениями. Если ваш .exe файл не является .NET-приложением, он не сможет его декомпилировать.
- При декомпиляции не всегда удается восстановить исходный код в точности, но полученные результаты часто достаточно близки к оригиналу для анализа и изучения.
Попробуйте пройтись по файлу и посмотреть, где могут находиться вопросы и ответы (например, в строковых переменных, ресурсах или базах данных).
UV. Обзор пакетного менеджера Python / Хабр
https://habr.com/ru/articles/828016/
https://habr.com/ru/articles/828016/
Хабр
UV. Обзор пакетного менеджера Python
Всем привет! Недавно познакомился с замечательным пакетным менеджером UV. Хочу и Вас с ним познакомить! Hidden text На Хабре статей не нашел. В русском сегменте youtube так же...
Есть две таблицы Excel. В одной содержатся данные ФИО, дата рождения граждан страны, которым закрыт въезд. Во второй - данные об изменении этими лицами старых установочных данных на новые. Т.е. они меняют ФИО и потом нарушают закон и едут в нашу страну. Как можно эти две таблицы сравнить быстро и выявить лиц, которые поменяли фамилию, имя, отчество, но продолжают нарушать закон? Может быть используем Python, poetry?
Python с pandas и возможно fuzzywuzzy или rapidfuzz (для нечеткого сравнения) подойдёт идеально!
🔍 Цель
Выявить граждан, ранее получивших запрет на въезд, но поменявших ФИО и снова нарушивших закон. Сравниваем таблицу запретников и таблицу с обновлёнными установочными данными.
🧩 Что потребуется:
Python 3.8+
Poetry (для управления зависимостями)
Библиотеки:
pandas — для работы с таблицами
rapidfuzz — для нечеткого сравнения ФИО
(опционально python-Levenshtein, ускоряет fuzzy-сравнение)
Выявить граждан, ранее получивших запрет на въезд, но поменявших ФИО и снова нарушивших закон. Сравниваем таблицу запретников и таблицу с обновлёнными установочными данными.
🧩 Что потребуется:
Python 3.8+
Poetry (для управления зависимостями)
Библиотеки:
pandas — для работы с таблицами
rapidfuzz — для нечеткого сравнения ФИО
(опционально python-Levenshtein, ускоряет fuzzy-сравнение)
Напоминаю пошагово, как с нуля поднять Python-проект с Poetry и начать в VS Code (через WSL):
---
🚀 1. В терминале внутри WSL:
Эта команда создаёт структуру проекта:
---
📦 2. Установка зависимостей:
*(опционально:
---
⚙️ 3. Активация Poetry venv
Чтобы запускать Python прямо в терминале VS Code (через WSL):
Теперь ты в виртуальном окружении, все модули ставятся изолированно.
---
✍️ 4. Создание файла для логики
В папке
Пример запуска:
---
▶️ 5. Запуск
Из корня проекта (где
---
✅ Готово!
Теперь ты можешь:
* читать таблицы в
* писать аналитику,
* позже — создать
---
🚀 1. В терминале внутри WSL:
poetry new fio_checker --src
cd fio_checker
Эта команда создаёт структуру проекта:
fio_checker/
├── pyproject.toml
├── README.md
├── src/
│ └── fio_checker/
│ ├── __init__.py
└── tests/
└── __init__.py
---
📦 2. Установка зависимостей:
poetry add pandas openpyxl rapidfuzz
*(опционально:
poetry add python-Levenshtein — ускоряет работу rapidfuzz)*---
⚙️ 3. Активация Poetry venv
Чтобы запускать Python прямо в терминале VS Code (через WSL):
poetry shell
Теперь ты в виртуальном окружении, все модули ставятся изолированно.
---
✍️ 4. Создание файла для логики
В папке
src/fio_checker/ создай файл main.py:src/fio_checker/main.py
Пример запуска:
# main.py
import pandas as pd
from rapidfuzz import fuzz
def extract_birth_date(pin: str) -> pd.Timestamp:
try:
date_str = pin[2:10] # символы с 3 по 10
return pd.to_datetime(date_str, format='%d%m%Y').date()
except:
return None
def main():
print("Работаем с таблицами...")
if __name__ == '__main__':
main()
---
▶️ 5. Запуск
Из корня проекта (где
pyproject.toml):poetry run python src/fio_checker/main.py
---
✅ Готово!
Теперь ты можешь:
* читать таблицы в
main.py,* писать аналитику,
* позже — создать
bot.py и подключить aiogram.Когда ты запускаешь
---
📌 Что происходит на самом деле:
1. Если ты пишешь:
— библиотека
2. Когда ты пишешь:
— Poetry активирует виртуальное окружение, и ты попадаешь внутрь него. Это окружение может быть в:
*
* или в
---
🔍 Как проверить, что ты не в глобальном окружении?
1. Выполни в
2. Ты увидишь путь не к системному Python, а к виртуальному:
---
✅ Вывод:
Ты всё сделал правильно:
* зависимости установлены только для этого проекта;
* глобальная система чиста;
* можно безопасно экспериментировать.
---
Если хочешь, можешь сделать так, чтобы виртуальное окружение создавалось прямо в папке проекта (удобно для WSL и VS Code):
Тогда будет папка
poetry shell, ты работаешь внутри изолированного виртуального окружения, даже если всё выглядит "глобально".---
📌 Что происходит на самом деле:
1. Если ты пишешь:
poetry add pandas
— библиотека
pandas ставится в виртуальное окружение конкретного проекта, а не в глобальную систему.2. Когда ты пишешь:
poetry shell
— Poetry активирует виртуальное окружение, и ты попадаешь внутрь него. Это окружение может быть в:
*
~/.cache/pypoetry/virtualenvs/...* или в
.venv/ рядом с проектом (если указано virtualenvs.in-project = true в poetry config)---
🔍 Как проверить, что ты не в глобальном окружении?
1. Выполни в
poetry shell:which python
2. Ты увидишь путь не к системному Python, а к виртуальному:
/home/ты/.cache/pypoetry/virtualenvs/fio-checker-xxxxxx/bin/python
---
✅ Вывод:
Ты всё сделал правильно:
* зависимости установлены только для этого проекта;
* глобальная система чиста;
* можно безопасно экспериментировать.
---
Если хочешь, можешь сделать так, чтобы виртуальное окружение создавалось прямо в папке проекта (удобно для WSL и VS Code):
poetry config virtualenvs.in-project true
Тогда будет папка
.venv/ рядом с pyproject.toml.Команда cipher в Windows может быть использована для гарантированного очищения свободного места на диске (т.е. чтобы удалённые файлы нельзя было восстановить). Вот как это делается:
📌 Команда:
🔍 Пояснение:
cipher — встроенная в Windows утилита для работы с шифрованием;
/w:C:\ — ключ /w указывает, что нужно очистить свободное пространство на указанном диске (в данном случае — диск C:);
Это не удаляет файлы, а только затирает свободное пространство, где могли бы остаться удалённые данные.
✅ Как использовать:
Откройте командную строку от имени администратора.
Введите:
(или замените C:\ на другой диск, например D:\, если нужно)
⏱ Учти:
Процесс может занять много времени, особенно если диск большой.
Это не затронет существующие файлы.
Можно использовать и для флешек, внешних дисков, например:
📌 Команда:
cipher /w:C:\ 🔍 Пояснение:
cipher — встроенная в Windows утилита для работы с шифрованием;
/w:C:\ — ключ /w указывает, что нужно очистить свободное пространство на указанном диске (в данном случае — диск C:);
Это не удаляет файлы, а только затирает свободное пространство, где могли бы остаться удалённые данные.
✅ Как использовать:
Откройте командную строку от имени администратора.
Введите:
cipher /w:C:\ (или замените C:\ на другой диск, например D:\, если нужно)
⏱ Учти:
Процесс может занять много времени, особенно если диск большой.
Это не затронет существующие файлы.
Можно использовать и для флешек, внешних дисков, например:
cipher /w:E:\Forwarded from ИБ Книга | Библиотека ИБ
— В статье пошагово рассказано и показано как же сделать программу для прослушки
Прослушка хорошо реализована в Metasploit и Cobalt Strike. Metasploit написан на Ruby, а исходный код Cobalt Strike закрыт
Другие реализации не
приходят на ум сразу, но было бы неплохо иметь небольшие и чистые примеры кода, которые легко можно добавить в свою программу
1. Статья на Spy-Soft
Please open Telegram to view this post
VIEW IN TELEGRAM
