С чего начать разработку сетевого приложения для взаимодействия со сторонним сервером?

Здравствуйте.

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

Всегда готов ответить на уточняющие вопросы.
  • Вопрос задан
  • 449 просмотров
Пригласить эксперта
Ответы на вопрос 2
TrueBers
@TrueBers
Гуглю за еду
  1. Берётся сначала анализатор исполняемых файлов. Там нужно посмотреть, защищён ли бинарник каким-то алгоритмом, запакован ли, зашифрован?
  2. Если защищён, то нужно снять защиту. Для этого нужно знать реверс-инжиниринг и тонкости работы операционной системы. Обычно, защиты снимаются в модифицированных виртуальных машинах. Ну, или руками ковырять можно, но это очень долго.
  3. После снятия защиты, нужно расчехлять дизассемблер, отладчик, можно, опять же, пропатчить виртуалку под свои требования. По опыту скажу, что реверс и эталонная реализация простой библиотеки АПИ с 4-5 сотнями функций занимает около двух месяцев, в зависимости от опыта. Если опыта нет, можно и на полгода засесть.
  4. Ещё один важный момент: игра может детектить доступ с неоригинального клиента и банить. Банить может как просто аккаунт, так и по идентификатору железа вашего компьютера, т.е. второй аккаунт с этого железа вы уже не создадите. Это САМЫЙ сложный этап, на котором фейлятся даже мировые лидеры ботостроения. Здесь одному в принципе нереально ничего сделать. Здесь сотни человек работают, и несмотря на это бывают фейлы, как у известного бота для WoW, у которого была упущена пара байт в протоколе, которые с виду ничего не значили (всегда передавался ноль), а потом, как оказалось, это было замедленной защитой, которая внезапно "включилась" в следующем обновлении, и 50 тысяч пользователей получили баны.
  5. Ну и, наконец, игра может содержать античит. Они обычно реализуются в виде ядерного драйвера. Соответственно, нужно знать принципы работы ядра операционной системы.

Грубо говоря, если вы задаёте подобные вопросы, у вас опыта нет вообще. Поэтому, если интересно, учите реверсинг, ассемблер, операционные системы. Годика должно хватить для понимания. А потом, уже зависит от того, насколько хорошо усвоили, насколько работает логика, решение нестандартных ситуаций. В игры уровня WoW одному можно даже не соваться. А что-то поменьше за 2-3 года можно раскурить, в свободное от работы время.
Ответ написан
martin74ua
@martin74ua Куратор тега Компьютерные сети
Linux administrator
с постановки задачи и формулирования ТЗ
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы