2012-03-09 2 views
2

Я работаю над небольшой сетевой флеш-игрой. У меня есть собственный сервер, встроенный в C/Linux, и я подключаюсь к серверу через флэш-сокет. Я обсуждаю, стоит ли загружать логику игры на клиенте или на сервере. Главная проблема заключается в том, что кто-то взламывает код и разрушает игру для других.Как hackable является кодом ActionScript

Даже если я поставил столько логики на сервере, насколько могу, если кто-то может взломать код и выяснить мои сообщения, отправленные на сервер, кажется невозможным остановить все вторжения.

Как я должен справиться с этим и как беспокоиться, что я должен быть о хакерах AS3?

+1

Каков твой творческий потенциал на уровне "hackability?" –

+0

Вы могли бы по крайней мере обфускать свой код, есть несколько приложений, которые это делают. – Eric

ответ

3

Да, довольно легко декомпилировать swf и изменить его по желанию. Риск довольно низкий, но если есть какое-то большое возможное денежное вознаграждение, тогда да, я был бы осторожен.

Итак, мой совет:

  • Не ставить высокую логику риски на клиенте
  • Но ставить высокие алгоритмы затрат на клиенте.

Edit: Я хотел бы добавить еще один пункт. Если сервер полагается на клиенту на некоторое состояние игры, вы также можете проксировать, проверять, а затем изменять запросы с помощью инструмента, такого как Charles. Кто-то может использовать этот инструмент для настройки точек останова на запросах, а затем изменять результаты перед отправкой их на сервер. Это еще проще, чем декомпиляция и изменение swf.

Урок: вы никогда не должны полагаться на честного клиента.

+0

Спасибо, ребята. Но даже если я поместил всю свою логику на сервер, все, что нужно сделать, это найти сообщения, которые мой клиент отправляет на сервер, и они могут вызвать хаос. Я не знаю, как избежать этого, не так ли? –

+0

Да, никогда не доверяйте клиенту, всегда предполагайте, что клиентское приложение пытается обмануть. Проверьте все пакеты. Так как это игра, клиент должен быть «немым». Нет логики игры на клиенте. Зеркалирование некоторой логики для целей прогнозирования прекрасное, но убедитесь, что сервер является ответственным. – Feltope

+0

Это один из самых больших ответов. Я видел полностью исполняемый файл для декомпиляторов проекта в последнее время кода C#, Java и Delphi, но это не значит, что мы прекратим писать приложения. Просто следуйте лучшим методам борьбы с взломом, и все будет хорошо. В конце концов, файл компиляции, который трудно подгружать на лету, намного лучше, чем полностью источник приложений (проекты html-js), которые можно даже отлаживать на лету - isnt it :) –

0

Flash-код невероятно легко взломать. Возможно, я ошибаюсь, но я думаю, что когда вы декомпилируете swf, это полный декомпилировать - он дает вам оригинальные имена переменных и всего. Также довольно легко использовать инструменты, такие как Cheat Engine, для изменения памяти во время игры. Если вы не намеренно запутываете свой код и свои структуры данных, я бы рекомендовал разместить большинство вычислений на сервере.

+0

В принципе, каждый код может быть взломан, но это не означает, что его легко вытащить на лету. –