Booster не обязательно стрелять через стену, достаточно просто знать что там ктото есть, чтобы быть "на готове", а вообще да, многое решаться через код на сервере ( если есть возможность его менять)
Booster приходиться отправлять координаты немного "заранее" иначе будут лаги. А так да, это решает многие проблемы.
Спасибо всем откликнувшимся, за критику и просто так spa, да, исходники к серверу есть, в полном объеме. По поводу проверки на изменение... Я так и думал делать, тем более места изменений вобщем-то известны. Как вы думаете, это довольно надежный метод? Хотя тут многое зависит от реализации..
umberto Вам вобщето дело говорят. Вас спасёт только виртуализация, хотя это тоже вопрос времени. Клоуны с клаба отобьют вашу вм. Но на время это поможет. А системной защиты уже давно нет. Права доступа и имперсонация это какието сферические понятия.
И проект "глупые вопросы по созданию античита" снова с вами! Спасибо всем за советы - решил использовать вмпрот для мутирования дллок. И новый вопрос: Как узнать адреса и размеры исполняемого кода (ехе и подгруженных дллок), чтобы можно было удостоверяться время от времени, что их никто не поменял?
а если вражина вызовет WriteProcessMemory после твоей проверки? али зациклишь? помню была одна защитка с подсчетом чексуммы на лету рабятки нафигарили сложный руками код эквивалентный как раз MapFileAndChecksum но на входе не path HMODULE люблю трудоголиков ;') только там они после всего вызывали настоящий MapFileAndChecksum сравнивали числа хехе я похучил MapFileAndChecksum и через Sleep(1000) делал спокойно свой WriteProcessMemory работает пока уже год почти
Да, зациклить) Допустим раз в 30 сек пересчитывать все чексуммы. Вобщем то я понял как можно получить все модули, а как выяснить где у них сам исполняемый код и какой у него размер?
z0mailbox Могли не менять кодовый сегмент по 0:Ip, а сместить его на X:Ip. Читать вы будите оригинальный код, но на чамом деле он будет изменённый. Или раграничить исполняемый код от читаемого изменив кодовый селектор. Это в пе хидере описано.
Хороший вопрос) В большинстве случаев можно сделать так: получить PE заголовок модуля и сделать расчет crc для каждой секции с флагом IMAGE_SCN_MEM_EXECUTE
Если известны переменные, которые чит перетирает - напишите простенький античит, который дублирует содержимое переменных и с заданной периодичностью проверяет их. Если переменная изменена не по правилам (например резко увеличилась), то пусть античит отправляет сообщение на сервер.
Magnum, в том то и дело, что меняют не переменные, а исполняемый код в запущенном процессе. То есть стирают некоторые проверки, что ли. А так как клиент получает даже те данные, что ему не видны (например, включен туман войны, но игрок все равно получает информацию о юнитах противника). И затирая проверки он начинает видеть соперника.