2014-02-14 3 views
0

Я программирую компьютерную игру под названием Crysis Wars, и в последнее время игроки постоянно просят новое обновление игры (патч сообщества), чтобы исправить проблемы, включая довольно ироничную ошибку сценариев.Защита процесса

Есть несколько игр хаки известный как Infinium, Gamg, Annihilator & Longpoke, которые полагаются на инъекционные методы DLL, чтобы поместить Хаки & читы в игре без внутренней системы заметив античит. Эти хаки довольно просты и используют код главной игры DLL через шестнадцатеричные модификации, а некоторые (например, Gamg) сделаны с собственным SDK игрового движка (я знаю создателя этого взлома).

Как и другие, у меня есть доступ к SDK CryEngine 2 (игровой движок) (включая исходный код в основную игровую dll), и я предлагаю изменить имя & местоположение всех игровых функций (как для клиента, так и для сервера), поэтому существующие хаки больше не будут работать.

Будет ли это работать, чтобы остановить хаки, сделанные с изменением шестнадцатеричных значений основной игровой библиотеки dll? Я подтверждаю, что хаки, сделанные с SDK, больше не будут функционировать, но я хочу проверить с другими, прежде чем пытаться это сделать, поскольку для этого потребуется много работы.

В общем, что я спрашиваю:

Хакеры эксплуатируют в DLL в игре, изменяя исходный код, если я изменю все функции в исходном коде и выдает (сообщество) обновление для игры (без выпуская новый исходный код), смогут ли хакеры использовать одни и те же хаки без каких-либо проблем?

Приносим извинения, если это кажется запутанным - скажите, если мне нужно быть более четким.

+0

Ответ: Зависит. См. Http://stackoverflow.com/questions/3784389/difference-between-api-and-abi – dgrat

+1

Я немного наивна. Меняют ли адреса вызовы функций? Помогло бы ASLR? – Simple

+0

Собираюсь сделать некоторые тесты - я отвечу на свой вопрос, когда я соберу результаты. @ Простой. Да, они меняют адреса вызовов функций. ASLR выглядит интересным - я отдам его. – cybermonkey

ответ

3

Вы сломаете все, юридические и незаконные моды. Незаконные моды, вероятно, скоро будут исправлены; это довольно тривиально, чтобы перепроектировать ваши предложенные изменения.

Лучшим методом является включение предотвращения выполнения данных и подключение функции VirtualProtect, которая необходима для обхода DEP. Затем вы сможете поймать попытки установить более поздний крючок. Конечно, проверьте, нет ли существующего крючка для VirtualProtect, ни какой-либо известный DLL-хак, который уже присутствует.

+0

Да, но это потребует много работы, чтобы перепроектировать изменения. Помимо этого, хакеры не могут коснуться функций, которые клиент использует для отправки данных на сервер.Это означает, что, если они закончат обратное проектирование, они фактически не смогут навредить их изменениям. Я посмотрю на VirtualProtect. – cybermonkey

+2

@zyboxenterprises: Я ожидаю, что хакерам потребуется около 2 часов, чтобы перепроектировать изменение имени; сколько времени это будет стоить вам? И, конечно, хакеры не могут коснуться вашего кода сервера, но это уже сейчас. Вам ничего не нужно для этого. – MSalters

+0

* Одно единственное изменение имени *, для того, чтобы действительно работать, всем хакам требуется по крайней мере три изменения кода по умолчанию, и их можно легко найти и изменить с помощью шестнадцатеричного редактора. Если имена функций изменены (а также содержимое функций), шестнадцатеричное значение будет изменено, что почти невозможно найти правильную функцию. – cybermonkey

Смежные вопросы