Я программирую компьютерную игру под названием Crysis Wars, и в последнее время игроки постоянно просят новое обновление игры (патч сообщества), чтобы исправить проблемы, включая довольно ироничную ошибку сценариев.Защита процесса
Есть несколько игр хаки известный как Infinium, Gamg, Annihilator & Longpoke, которые полагаются на инъекционные методы DLL, чтобы поместить Хаки & читы в игре без внутренней системы заметив античит. Эти хаки довольно просты и используют код главной игры DLL через шестнадцатеричные модификации, а некоторые (например, Gamg) сделаны с собственным SDK игрового движка (я знаю создателя этого взлома).
Как и другие, у меня есть доступ к SDK CryEngine 2 (игровой движок) (включая исходный код в основную игровую dll), и я предлагаю изменить имя & местоположение всех игровых функций (как для клиента, так и для сервера), поэтому существующие хаки больше не будут работать.
Будет ли это работать, чтобы остановить хаки, сделанные с изменением шестнадцатеричных значений основной игровой библиотеки dll? Я подтверждаю, что хаки, сделанные с SDK, больше не будут функционировать, но я хочу проверить с другими, прежде чем пытаться это сделать, поскольку для этого потребуется много работы.
В общем, что я спрашиваю:
Хакеры эксплуатируют в DLL в игре, изменяя исходный код, если я изменю все функции в исходном коде и выдает (сообщество) обновление для игры (без выпуская новый исходный код), смогут ли хакеры использовать одни и те же хаки без каких-либо проблем?
Приносим извинения, если это кажется запутанным - скажите, если мне нужно быть более четким.
Ответ: Зависит. См. Http://stackoverflow.com/questions/3784389/difference-between-api-and-abi – dgrat
Я немного наивна. Меняют ли адреса вызовы функций? Помогло бы ASLR? – Simple
Собираюсь сделать некоторые тесты - я отвечу на свой вопрос, когда я соберу результаты. @ Простой. Да, они меняют адреса вызовов функций. ASLR выглядит интересным - я отдам его. – cybermonkey