Консольный cheat engine с основным функционалом. Был написан для практики в языке C/C++
Запускать обязательно от имени администратора!!!!
⚠️ Проект учебный. Используй его только на своих программах и процессах, которые тебе разрешено изменять. Вмешательство в чужое ПО, онлайн-игры и сервисы может нарушать их правила и закон. Автор не несёт никакой ответственности за использование вами программы в плохих целях, используйте на свой страх и риск.
Консольный сканер и редактор памяти процессов для Windows — упрощённый аналог Cheat Engine. Написан на C/C++ для практики в работе с WinAPI, памятью процессов и многопоточностью.
Программа подключается к выбранному процессу, ищет в его памяти значения нужного типа, позволяет отфильтровать результаты несколькими повторными сканированиями, изменить найденное значение, «заморозить» его (постоянно перезаписывать) и сохранить найденные адреса в файл.
- First Scan — первичный поиск значения в памяти процесса с выбором типа данных:
short(2 байта),int(4 байта),float(4 байта),double(8 байт). Сканируются только подходящие регионы памяти (выделенные, доступные на чтение/запись). - Next Scan — повторная фильтрация уже найденных адресов по условиям: увеличилось (Increased), уменьшилось (Decreased), точное значение (Exact Value), изменилось (Changed), не изменилось (Unchanged).
- Change value — запись нового значения по выбранному адресу.
- Freeze value — «заморозка» значения: в отдельном потоке оно постоянно перезаписывается, чтобы не менялось. Можно заморозить несколько адресов одновременно.
- Unfreeze value — снятие заморозки с выбранного адреса.
- Show found addresses — вывод списка найденных адресов с текущими значениями.
- Save / Load addresses — сохранение найденных адресов в файл
adres.txtи загрузка их обратно.
Для float и double сравнение идёт с погрешностью (эпсилон 0.001), чтобы учитывать неточность представления дробных чисел.
cce/
├─ main.cpp # точка входа: выбор процесса и главное меню
├─ Functions/
│ ├─ Structs/
│ │ └─ structs.h # структуры данных (ScanEntry, ScanContext, FreezeParams)
│ ├─ ReadWriteMemory/
│ │ ├─ readwritememory.h
│ │ └─ readwritememory.cpp # чтение/запись значений, поток заморозки
│ ├─ ActionsWithMemory/
│ │ ├─ actionswithmemory.h
│ │ └─ actionswithmemory.cpp # логика пунктов меню (сканы, заморозка, сохранение)
│ └─ ShowData/
│ ├─ showdata.h
│ └─ showdata.cpp # вывод списка адресов
├─ cce.sln # решение Visual Studio
└─ cce.vcxproj # проект Visual Studio
- Windows
- Visual Studio 2019/2022/2026 с рабочей нагрузкой «Разработка классических приложений на C++»
- Стандарт C++17
- Открой
cce.slnдвойным кликом. - Вверху выбери конфигурацию
Debug | x64(илиRelease | x64). - Собери и запусти —
F5. Готовыйcce.exeпоявится в папкеx64/Debug/.
- Заходим сюда - https://github.com/Darkiich/console-cheat-engine/releases
- Нажимаем на console-ce.exe
- После скачивания открываем от имени администратора!!!!
-
Запусти
cce.exe. Программа выведет список процессов в форматеPID | Name. -
Введи PID процесса, с которым хочешь работать (число из левого столбца).
-
После открытия процесса показывается диапазон сканируемой памяти и появляется меню:
1. First Scan 2. Next Scan 3. Change value 4. Freeze value 5. Unfreeze value 6. Show found addresses 7. Save addresses to file 8. Load addresses from file 0. Exit -
Введи номер действия и следуй подсказкам.
Допустим, в программе есть число (например, количество очков), и ты хочешь его изменить:
- First Scan — выбери тип данных (чаще всего
int) и введи текущее значение. Программа найдёт все адреса с таким значением (обычно их много). - Измени значение внутри целевой программы (например, очки выросли), вернись и сделай Next Scan → Increased (или Exact Value с новым числом). Список адресов сократится.
- Повторяй шаг 2, пока не останется один-два адреса.
- Change value — выбери нужный адрес по номеру и впиши своё значение.
- При желании Freeze value — чтобы значение не менялось обратно.
- Save addresses to file — сохранить найденные адреса, чтобы не искать заново в следующий раз (загрузка — пункт 8).
Выход — пункт 0 (при этом дескриптор процесса корректно закрывается).
Адреса сохраняются в adres.txt в рабочей папке. Первая строка — количество записей, далее по строке на адрес:
<адрес в hex> <тип> <размер в байтах> <значение>
См. файл LICENSE.