Приветствую! Я немного заинтересовался темой написания читов. Не столько для чего то плохого, как просто для обучения. Меня интересует, как пишутся AIM-bots, то есть читы, которые автоматически прицеливаются в играх в какую то точку противника. Например в контре AIM-bot может прицеливаться в голову, шею, руку и т.п... По какому принципу это происходит? Я на 99% уверен, что не с помощью анализа пикселей, потому что даже если противник за стеной, то прицел все равно перескакивает на него. Я считаю, что это происходит благодаря какому то хуку, но точно не уверен. Либо ставиться хук на какие то функции графического драйвера, либо анализ и замена кода игры в реальном времени.
ну если вообше про то как работают всякие тренеры - это замена значений в памяти процесса (ReadProcessMemory, WriteProcessMemory) а вот твои AIM боты похоже заменяют некоторые функции игр или же перехватывают вызовы функциий вот знаю ресурс www.gamedev.ru почитай там если ты играми занимаешься )
кажись там идет хук на OpenGL, если запустить игру в другом режиме то все читы просто бесполезны. в вообще в сети есть исходники ботов всех на срр, так что можно скачать и подредактировать как надо. тема уже поднималась мною, можешь поискать там давали ссылки на сайты разработчиков читов.
А вообще чаще всего читы (в сетевых играх) просто напросто хукают работу с сокетами. типа recv,send и там уже анализируют пакеты которые приходят. Вот к примеру в контре тебе постоянно приходят координаты противника, даже если ты его не видишь(а не видишь потому что какаянить стена есть или еще чтонить). Тем самым чит может всегда хранить у себя координаты соперника. А когда ты стреляешь, то он опять анализирует данные которые идут от тебя, и если координаты выстрела близки к координатам соперника, то он автоматом чуть чуть корректирует эти значения. Это системная реализация, а всё остальное(красивый вывод на экран) - это дело техники и работы с OpenGL. Типа как Fraps выводит свои даные на экран, так и чит может.
очень часто это делается как верно сказал slesh через сплайсинг тех же send/recv в самой игре, иногда это делается через перехват сетевого трафика, к примеру если игра под GG, а снимать его не хочется. но иногда реверсится и сама игрушка и уже в ней подменяются интересующие тебя функции. я к примеру так перехватывал некоторые вещи в lineage2 - трафик между клиентом и сервером зашифрован, перехватывать его нет смысла, зато спокойно межно перехватить все что нужно уже из самой игры где данные расшифрованы и разобраны.
Вот тут архивчег исходников читов под CS:S http://prox-coding.net/Files/SRC%20Pack2.zip А вот ресурс, тут выкладывают читы для популярных игрушек, проскакивают и исходники этих читов http://mpcdownloads.com/