Во-первых,
Я хочу указать, что я знаю, что любая информация, отправленная с клиента, не может быть доверена, поскольку ее можно подделать. Меня интересуют методы обеспечения безопасности через неясность, чтобы удержать 99,9% потенциальных мошенников и способность обнаруживать программы, которые обходят безопасность в режиме реального времени.
Некоторые идеи, которые у меня были для этого, включали проверку контрольных сумм файлов и памяти как для игры, которую она защищает, так и для любых потенциальных чит-приложений, позволяя клиентской стороне сканировать по запросу с сервера (через TCP), как для обнаружение читов памяти и/или память памяти читов. Поэтому обходной взломам пришлось бы прослушивать всю информацию TCP, отправляемую ему по протоколу SSL, а затем дешифровать сообщение, разобрав функцию шифрования/дешифрования, чтобы понять, чего она хочет. Точно так же сам клиент может быть сам изменен и позволяет ему добавлять/удалять функции по мере необходимости наугад (но держать на сервере), так что читу будет сложно узнать, как обойти его. Это может быть бессмысленно?
Я считаю, что это слишком сложно для более опытных, поэтому я открыт для других методов, которые трудно обойти.
Я интересуюсь только возможными реализациями, а не тем, как невозможно иметь античит на стороне клиента, я просто хочу сделать это действительно тяжело.
Добавлен тег minecraft и java, и он для Minecraft, и я знаю, что сообщество достаточно велико, чтобы кто-то мог побить мою систему, но я надеюсь, что благодаря постоянным обновлениям и изменениям я могу победить их с помощью изобретательности и настойчивость.
Изменить: я нашел этот пост: Как предотвратить обман в наших (многопользовательских) играх?, и я добавляю его предложения, чтобы не дублировать вещи, поскольку я ищущие больше идей, чем очевидные (и я не уверен, что его не обойти)
1) Откройте все остальные процессы и зацепите их функции WriteProcessMemory, чтобы они не могли писать в память в вашей игре. обработать. Сделано правильно, этот один шаг будет блокировать 90% всех читов и чит-двигатели.
2) Сделайте то же самое, подключив эмуляцию мыши и клавиатуры функции. Это предотвратит много боевых целей и других типов автоматические боты.
3) Подключитесь к функциям VirtualProtectEx/VirtualAllocEx/etc в вашем игровой процесс и контролировать, какие модули меняют защиту уровней или выделения новых блоков памяти. Вы должны быть хитрыми с это для того, чтобы предотвратить чрезмерную интенсивность процессора, когда ваш игра делает много распределений, но это можно сделать.
4) Подключиться к функциям LoadLibrary и контролировать любые DLL файлы, которые динамически загружается, чтобы предотвратить инъекцию DLL.
5) Используйте некоторые легкие полиморфные кодировки в ваших игровых подключений.
6) Используйте некоторые методы отладки для предотвращения отладчиков связанных с вашими процессами. Анти-отладка Google, и вы должны быть в состоянии найти много вещей.
7) Используйте специальный запатентованный PE-упаковщик для предотвращения полезной разборки ваша игра.
8) Подключитесь к своим функциям и методам OpenGL или Direct3D с прозрачностью и альфа-смешиванием.
9) Если вы используете шейдеры, проверяйте свои шейдеры и константу шейдера значения.
10) Используйте дополнительные методы удаления окклюзии на персонажах игроков чтобы они вообще не были визуализированы, когда их блокирует другая геометрия. Это может или не поможет также, но это предотвратит многие Wallhacks.