Как создают программы, внедряющиеся в память другой программы/игры (чит)?
Всем привет! Заинтересовался одной темой, прямо не могу. Сколько гуглю, как создавать чит-программы, все сетуют на Cheat Engine и прочее-прочее, Assembler, но так и не сформировал картину и "план" для себя. Добрые люди, подскажите пожалуйста, как же создаются читы и что определенно нужно знать для этого? Я до этого занимался JavaScript и немного писал на плюсах, с математикой дружу, но все ещё грызу гранит науки. Просто направьте, я там уж погуглю по материалам. Заранее огромное спасибо!
Базово существует 3 подхода:
1) Путем чтения\записи памяти. Самый простой вариант это поиск нужного адреса памяти а далее воля фантазии в виде замены значения дав себе +1000 хп или просто чтение значения к примеру чтобы сделать wallhack. Самый простой вариант и делается очень легко.
2) Путем инжекции в игру\программу. Пример игра использует некую стороннюю библиотеку library.dll, в случае если она опенсурс то цепляются в ней к методу типа init() и дальше копаются в игре или на асме инжектятся в нужную функцию. Сложность в том что придется восстанавливать структуры данных, искать функции и т.д. а уже потом дергать нужные с нужными параметрами.
3) Типа MItM, пишут простенький прокси сервер который ловит весь трафик между игрой и сервером. Придется разбираться в пакетах и также восстанавливать структуры если они есть, быть очень быстрой и хранить очень много данных. Самый профитный среди всех и одновременно самый сложный. Не так давно подобным способом роняли ММ в КСГО, роняли сервера в ОВ, загубили пару онлайн ММО но давно(вечная память разрабу той универсальной софтины).
Как правило 95% читов относятся к 1 категории public и private, оставшиеся 5% ко 2й и 3й personal и именно они самые дорогие и делаются под заказ ограниченному числу людей(часто ценник уходят за 1к бакс и выше).