Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
АнтиЧит - 4 способа борьбы

Автор: Вычегжанин Сергей
WEB-сайт: http://daddy.mirgames.ru

В этой статье речь пойдёт о читерах (Cheat - обман) и способах борьбы с ними. В начале я расскажу чем они так сильно вредны. Когда читер играет один и взламывает игру это его личное дело (хотя и неприятное), хуже когда он ломает сетевую игру особенно во время чемпионатов ради набора очков, тем самым намного осложняя жизнь честным игроком.

Естественно все мировые производители игр предусматривают некую очень сложную и дорогую защиту против читерства. Но поскольку нам такие способы не доступны будем искать другие, менее дорогие, но достаточно эффективные, способы борьбы.

Итак, как действуют большинство чит программ? Если они не заточены под определённую игру, то обычно они ищут адреса в памяти, содержащие нужные игроку значения (например, количество золота/опыта/жизней/ресурсов), после этого читер меняет их значение на нужное ему число.

От сюда вытекает способ номер 1:

Создать два числа: одно с реальными очками, а другое с очками которые видны игроку. То есть с самого начала первое число равно скажем 76 (хотя лучше генерировать его случайным образом), а второе нулю. Во время игры очки добавлять обоим числам, так что всегда первое число будет больше второго на 76. Если считать что под очками подразумеваются ресурсы или деньги то счёт вести от первого числа, и когда скажем игроку показано, что он набрал 1500 на самом деле у него будет 1576. Естественно при попытке найти свои 1500 очков читер их найдёт и может даже изменит, тут его и постигнет неудача, т.к. он заменит мнимые данные, а не настоящее значение. Способ хорош, особенно для стратегий.

Способ номер 2 достаточно похож на первый:

Опять таки имеется два числа, но совершенно одинаковых, через каждую миллисекунду они сравниваются если совпадения нет, то здесь явный взлом, можно делать что хотим :). Теперь объясняю как работает. Когда читер ищет нужное ему число он находит их два и менять их одновременно естественно не может, а как только поменял первое тут же происходит сравнение и тут то он попался. Но есть маленькая загвоздка, здесь необходима синхронизация с тиком таймера. Вот, например, вы строите здание первое число уменьшилось, втрое не успевает, происходит тик таймера и ошибка, досадная правда, но ошибка. Эти два способа хороши для стратегий где числовые массивы динамически не появляются. Как быть если это аркада или шутер?

А вот как. Способ номер 3.

Тут всё легко и сложно одновременно. Просто-напросто надо отследить загрузку чит программ. Как это сделать? Это вопрос для отдельной статьи и пример вы найдёте на бескрайних просторах инета. Конечно все чит программы в базу вы не соберёте, но наиболее популярные вы и сами знаете, кроме того можно пополнять их список с новыми патчами. Также этот способ можно использовать для борьбы со СпецЧитами написанными специально под вашу игру.

Способ номер 4 похож на третий, но более радикален.

Весь смысл сводится в том, чтобы не "пускать" игрока к форточкам и не давать запускать в обще ничего, так же отключить Alt-Tab. Ну, вот собственно и все предложенные на сегодня мной способы. Теперь поговорим о приятном, а то есть о мерах наказания читеров. Для начала возьмём сетевую игру, здесь к мерам предложенным ниже можно добавить рассылку всем игрокам сообщений, что игрок "Rize" играющий за синих: "!!!Злобный ЧиТеР!!!", отослать это же сообщению админу игрового веб сервера (если конечно игра идёт через интернет). В offline (и не только) можно поставить клеймо на игрока чей ник был замечен в читерстве и при любой игре ставить ему статус "мошенник", компанию (если он играет в компанию) его обнулить, ну а ко всему добавить очень страшные надписи типа "System error! Please reload", "вылетание" программы, искусственно сделанные "синие окна", принудительную перезагрузку компьютера и т.д. Но последнее правда вроде бы предусматривается уголовным кодексом РФ и очень даже наказуемо ;). Ну вот пожалуй и всё.

P.S. Будте честными!.. Пользуйтесь кодами...

Проект Delphi World © Выпуск 2002 - 2024
Автор проекта: USU Software
Вы можете выкупить этот проект.