
PyMemoryEditor v2.2.0
Библиотека на чистом Python, которая позволяет просматривать, изменять и искать в памяти любого запущенного процесса всего в несколько строк кода на Python :snake: .
PyMemoryEditor
Чисто-Python библиотека (построенная на ctypes), которая позволяет просматривать, изменять и искать память любого запущенного процесса в несколько строк Python — рабочие процессы Cheat Engine на Windows, Linux и macOS!
Читайте, записывайте и сканируйте память любого процесса — прямо из Python.
Один унифицированный API. Три операционные системы. Без C-компилятора. Без этапа нативной сборки.
Работает на 🪟 Windows · 🐧 Linux · 🍎 macOS — 32-битных и 64-битных системах.
Измените значение в запущенной игре · проверьте состояние живой программы · извлекайте данные прямо из RAM.
Установка
pip install PyMemoryEditor
Чтобы также установить встроенное GUI-приложение (сканер в стиле Cheat Engine), используйте дополнительный пакет app:
pip install "PyMemoryEditor[app]"
pymemoryeditor
Для более быстрого сканирования больших процессов добавьте дополнительный пакет speed. Он подтягивает NumPy
и автоматически векторизует цикл числового сравнения при сканировании — примерно в 10–30 раз быстрее при
выборочном сканировании:
pip install "PyMemoryEditor[speed]"
📖 Полное руководство на Read the Docs.
Пример использования
from PyMemoryEditor import OpenProcess
with OpenProcess(name="game.exe") as process:
# Сканируем весь процесс на предмет всех адресов, содержащих значение 100.
for address in process.search_by_value(int, value=100):
print(f"Found at 0x{address:X}")
# Читаем текущее значение, затем записываем новое обратно.
current = process.read_int(address)
process.write_int(address, current + 500)
Вот и всё — читайте, записывайте или сканируйте другой процесс в три строки, одинаково на любой платформе.
📖 Документация
Полная документация находится на pymemoryeditor.readthedocs.io — установка, рабочий процесс Cheat Engine, каждый метод и параметр, руководство по GUI-приложению, заметки о платформах и устранение неполадок.
Краткая карта разделов:
| Быстрый старт | Откройте процесс, читайте, записывайте и выполните первое сканирование. |
| Поиск в памяти | Сканирование значений, диапазоны, уточнение результатов, цикл Cheat Engine. |
| Сканирование по шаблону | Поиск кода/данных по байтовым сигнатурам (AOB) и регулярным выражениям. |
| Указатели | Многоуровневые цепочки указателей и живой RemotePointer. |
| Сканирование указателей | Поиск статических указателей, переживающих ASLR. |
| GUI-приложение | Встроенный сканер в стиле Cheat Engine. |
| Справочник API | Каждый публичный класс, метод и параметр. |
| Заметки о платформах | Права доступа и особенности Windows, Linux и macOS. |
| Устранение неполадок | Частые ошибки и способы их исправления. |
Что можно создать с помощью этой библиотеки?
- 🎮 Инструменты для модификации игр и спидраннинга — классический сценарий использования Cheat Engine.
- 🔬 Отладка и интроспекция — проверка живого состояния без подключения отладчика.
- 📊 Инструменты наблюдаемости — выборка переменных в запущенном процессе для телеметрии.
- 🔐 Исследования в области безопасности и реверс-инжиниринга — на системах, которыми вы владеете или на тестирование которых у вас есть разрешение.
- 🎓 Обучение — встроенное приложение — отличный учебный инструмент для понимания того, как работает сканирование памяти.
[!NOTE] Ответственное использование. PyMemoryEditor взаимодействует с другими процессами через API уровня ОС. Направляйте его только на процессы, которыми вы владеете или на проверку которых имеете явное разрешение.
🤝 Вклад в проект
Pull request'ы, сообщения об ошибках и идеи новых функций очень приветствуются. Прочитайте
CONTRIBUTING.md, чтобы узнать о настройке среды разработки, структуре тестов и
небольшом наборе особенностей, специфичных для платформ, о которых следует знать.
Если PyMemoryEditor помогла вашему проекту, пожалуйста, поставьте ⭐ репозиторию — это самый простой способ поддержать работу и помочь другим обнаружить библиотеку.
Лицензия
Выпущена под лицензией MIT — бесплатно для личного и коммерческого использования.