Skip to content
idolinskyyPublic

About

Linux memory editor for local single-player games — scan, refine, freeze, pointers, hex, watchpoints (C++20 / Qt)

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

13 Commits

Folders and files

Repository files navigation

GameX

Редактор пам'яті локальних процесів на Linux. Знайдіть у грі число (гроші, життя, набої), відсійте зайві адреси, підставте своє значення і за потреби заморозьте його.

Чого немає і не буде

GameX — локальний редактор значень у пам'яті (читання/запис через process_vm_readv / process_vm_writev, заморозка, .gxt). Для своїх однокористувацьких ігор і навчальних програм.

Не плануються і не додаються:

Немає Пояснення
Обхід античиту Немає приховування GameX, драйверів ядра, патчів захисту
Мережевий / онлайн-чит Немає клієнт–серверних хаків, пакетів, спільних читів для матчів
Приховування процесу GameX видно в системі як звичайна програма
NOP / підміна коду / inject Немає патчу інструкцій у грі (у «Хто пише…» NOP теж не ставиться)
Speedhack Немає прискорення/уповільнення таймерів і часу гри

Онлайн-матчі, чужі сервіси й захищені ігри — не ціль. Якщо порушите правила сервісу чи закон — відповідальність на вас.

Збірка і встановлення

Мова — C++20. Інтерфейс — Qt Widgets. Ядро (gamex_core) від Qt не залежить.

Залежності

sudo apt install g++ cmake ninja-build
# системний Qt (один із варіантів):
sudo apt install qt6-base-dev
# опційно — мнемоніка в «Хто пише…»:
sudo apt install libcapstone-dev

Повідомлення cmake Capstone not found — не помилка: без Capstone збірка йде нормально, лише без тексту інструкцій у watchpoint.

Звичайна збірка (системний Qt)

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/gamex_core_tests   # має надрукувати ok
./build/gamex              # запуск без встановлення

Qt з офіційного інсталера (~/Qt/…)

Якщо Qt стоїть з офіційного інсталера в ~/Qt/… (наприклад 6.12), вкажіть шлях до нього. Інакше після install може підвантажитись системний Qt іншої версії — і буде помилка version Qt_6.12 not found:

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX="$HOME/.local" \
  -DGAMEX_QT_ROOT="$HOME/Qt/6.12.0/gcc_64"
cmake --build build
cmake --install build

Шлях до бібліотек Qt ($GAMEX_QT_ROOT/lib) потрапляє в RUNPATH бінарника — окремий LD_LIBRARY_PATH не потрібен.

Встановлення

У домашній каталог (без root; переконайтесь, що $HOME/.local/bin у PATH):

cmake -S . -B build -G Ninja \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX="$HOME/.local"
# за потреби додайте -DGAMEX_QT_ROOT=...
cmake --build build
cmake --install build
gamex

Встановлюється: bin/gamex, ярлик share/applications/gamex.desktop, іконки share/icons/hicolor/…, документація share/doc/gamex/ (LICENSE, NOTICE, README.md).

Видалення

З $HOME/.local:

rm -f "$HOME/.local/bin/gamex" \
  "$HOME/.local/share/applications/gamex.desktop" \
  "$HOME/.local/share/icons/hicolor/"*/apps/gamex.png \
  "$HOME/.local/share/icons/hicolor/scalable/apps/gamex.svg"
rm -rf "$HOME/.local/share/doc/gamex"

Доступ до пам'яті

На Ubuntu з kernel.yama.ptrace_scope = 1 (так зазвичай і є):

Як запускаєте GameX Що працює
Звичайний користувач Краще кнопка Запустити (гра — дочірній процес). Обрати процес до вже відкритої гри ядро часто блокує.
З правами root Кнопка / меню З правами root або sudo -E gamex. Окреме вікно; зазвичай можна підключатись і до чужих (не дочірніх) процесів.

Не тримайте GameX під root без потреби. Деякі захищені процеси (snap, dumpable=0, ptrace_scope=3) можуть лишатись недоступними навіть для root.

Кнопка З правами root питає пароль у zenity і передає його в sudo -S (не через аргументи командного рядка). На своїй машині цього зазвичай досить; пароль на мить є в пам'яті GameX. Якщо хочете без цього — просто sudo -E gamex у терміналі.

Як користуватись

  1. Запустити гру (файл + аргументи; наступні рази — Процес → Недавні запуски) або Обрати процес, якщо права дозволяють.
  2. Ввести значення з екрана (або вираз 100*10, або шаблон DE ?? AD) → Шукати.
  3. Змінити параметр у грі → Відсіяти. Помилково звузили список — Скасувати відсів (Ctrl+Z, один крок). Поки сесія активна, Шукати вимкнено (спочатку Скинути пошук).
  4. У верхньому списку можна фільтрувати адреси/значення і Ctrl+C (або ПКМ) — копіювати адреси.
  5. Додати обране (або подвійне клацання) вниз → правити «Значення → у гру».

Меню: Файл, Процес, Пошук, Таблиця, Інструменти, Довідка (F1 — кейси людською мовою; Що це? / Shift+F1 — підказка по кнопці). Частина дій лише в меню (наприклад Від'єднати, F5–F8, Недавні запуски).

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

Можливості

Що Коротко
Пошук Рівність, порівняння, діапазон, «зросло/зменшилось на N», невідомий знімок, відсів у фоні + Стоп; undo відсіву
Збіги Фільтр за адресою/значенням, копіювання адрес (Ctrl+C); прев’ю до 5000 рядків
Типи 1–8 байтів (є i24), float, UTF-8, байти; LE/BE
Таблиця Заморозка (4 режими; під час пошуку пауза), групи, F5–F8, файл .gxt
ASLR module+зсув, пошук статичних вказівників
Формули Вирази в полі пошуку; блок Знімки M1–M4 + шаблони; під час пошуку M/формула вимкнені
Структура Кілька полів зі зсувами, пошук у фоновому потоці
Послідовність Кнопка Послідовність…: кілька чисел одного типу підряд (1000 555 333 5555)
Hex Перегляд і запис байтів навколо адреси
Watchpoint «Хто пише…» через ptrace; RIP — інструкція після запису; TRACECLONE
Емулятори Профілі NES/SNES/GBA/…; при кількох кандидатах RAM — вибір зі списком pathname

Каталоги

src/core   пам'ять, сканер, таблиця, заморозка, watchpoint, профілі емуляторів
src/ui     вікно Qt
tests      перевірки ядра без Qt
cmake/     шаблон номера/часу збірки

Розробка / Contributors

Збірка для розробки, архітектура, тести, стиль коду й що не приймаємо у патчах — у CONTRIBUTING.md. Коротко також у довідці програми (F1 → «Для розробників»).

Ліцензія

GameX розповсюджується на умовах GNU GPL версії 3 (або пізнішої, на ваш вибір). Текст — у LICENSE.

Сторонні залежності (Qt, опційний Capstone тощо) описані в NOTICE.

About

Linux memory editor for local single-player games — scan, refine, freeze, pointers, hex, watchpoints (C++20 / Qt)

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages