![]() |
eXeL@B —› Вопросы новичков —› Как пишут читы к онлайн играм? |
Посл.ответ | Сообщение |
|
Создано: 04 июня 2009 02:02 · Личное сообщение · #1 Начал изучать онлайн игры. Планирую написать небольшого бота под один проект. Умные люди подсказали что для реализации задуманных вещей (хочу организовать автоматическую скупку вещей в магазине) нужно копать в сторону мониторинга траффика. В данном вопросе не бум-бум. Сейчас качаю wireshark (пробовал пользоваться Packetyzer, но я в нем не разобрался ![]() Вот посидел и подумал как делают всевозможные читы к играм(maphack и т.д.). Хотел бы поделиться логикой своей мысли (У меня есть опыт программирования, и сейчас активно учу асьм, поэтому очень важно знать - правильно ли я рассуждаю?) Многие онлайн игры построенны по приципу клиент-сервер. Клиентская программа анализирует действия пользователя и отсылает данные на сервер, где они обрабатываются. Логично было бы предположить что для минимизации нагрузки на сервер разработчик доверит обработку действий пользователя клиентской программе. клиент обработает их и отправит пакет серверу с нужными данными. Внимание вопрос! что есть баг в онлайн игре? т.е. Если сервер не фильтрует параметры которые принимает от клиента, то я могу этим воспользоваться? (приведу пример: я прошел 7клеток в пошаговой онлайн игре. Клиент формирует пакет с параметрами моего хода. Я перехватываю эти данные и меняю 7клеток на 20например. Если Сервер не проверяет полностью параметры, то я перескачу на 20клеток?) я понимаю, что все зависит от конкретного случая и конкретной игры, но теоретически это возможно? И в правельном ли я направлении мыслю? Извините за "много букв", я пытался выразить свои мысли как можно более четко. п.с. любые ссылки с нужной информацией приветсвуются. ![]() |
|
Создано: 04 июня 2009 04:28 · Личное сообщение · #2 Установил wireshark. Много чего полезного узнал эксперементируя. Отследил пакеты с логином\паролем. ( включал мониторинг перед вводом пароля, а после выключал. Ввел сначала правельный логин\пасс потом неправельный. Сохранил оба результата и проанализировал) Теперь можно смело брутер писать ). так же отследил загрузку вещей в магазин. Единственная проблема данные отображаються в hex виде и анализировать их очень сложно. можно их как нибудь приобразить? вот срока из снифера wireshark TCP 28513 > apple-vpns-rp [PSH, ACK] Seq=587 Ack=13 Win=5840 Len=278 c TCP 28513 все понятно, Len - это длинна как я понял. А вот остальные параметры я не понимаю. ![]() |
|
Создано: 04 июня 2009 15:00 · Личное сообщение · #3 TCP 28513 > apple-vpns-rp [PSH, ACK] Seq=587 Ack=13 Win=5840 Len=278 - Характеристики пакета. Забей. Тупо анализировать трафик можно, но сложно. Я так делал для Варика III, начисляя себе голды, но на сервере это через пару минут проверялось и происходил дисконнект. Использовал Wpe Pro и свою программку, которая помечала, какие пакеты пришли/ушли после нажатия определенных клавиш мыши/клавы. Вообще сложное это дело, и лучше иметь сервер, чтоб можно было отреверсить парсинг пакета на нем. ![]() |
|
Создано: 04 июня 2009 17:46 · Личное сообщение · #4 С сервером все очень сложно ![]() toDr3d спасибо за Wpe Pro, сейчас обязательно скачаю. ![]() |
|
Создано: 07 июня 2009 02:09 · Личное сообщение · #5 Вообщем побаловался я с Wpe Pro. У меня даже при попытках переслать нужный пакет (без изменений) происходит дисконет. Я заметил что при выполнении одних и тел же действий в теле пакетов есть постоянно меняющиеся данные. Мне кажеться то что дисконект происходит из-за несовпадения параметров. Вот игрушка tionline.ru/ Если будет у кого время посмотрите пожалуйста. Я так понял что без анализа формирования пакетов в клиенте долеко не уйти. Буду копать, заодно прочитаю пару статей по сетевому программированию ![]() ![]() |
|
Создано: 07 июня 2009 15:18 · Личное сообщение · #6 смотреть какие пакеты отслаются\принимаються при нажатии определенных клавиш или при определенных действиях, и на основе анализа пакетов пытаться понять что у них внутри. Вот если никакая инфа типа SDK, разработчиками игр не доступна, то такой метод, мне кажется самый реальный и тяжелый, хотя можно изучать, не только внешне, но и внутренне, т.е. с помощью отладчика смотреть, что делает, та или иная функция. Если на данную игру есть чит, то его можно пореверсить, например, в CS, есть speed hack, тот же пример с перемещением на 20 клеток и сервер видимо не играет роли, т.е. не на нем принимается большинство решений, хотя зависит все от конкретной реализации ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 07 июня 2009 15:47 · Поправил: WildNe0 · Личное сообщение · #7 Хаков на нее не видел. Хочеться их сделать самому. Кстати на запрос в гугле wpe pro выдал много интересной информации. Насколько я понял такими методами были сломанны WoW, Lineage и масса других игр. Значит направление выбранно верное. Вообще тема очень интересная, и не ограничивается играми. Обязательно буду отписываться по ходу дела. Кстати найти функции будет достаточно просто. Например в случае с вещами в магазине - клиент формирует в окне таблицу с описанием и изображением предмета. Все изображения хранятся в папке клиента. Нужно только отследить обращение к файлу картинки и мы выйдем на кусок кода который формирует данные полученные от сервера. Начал распаковывать. показало UPX 0.89. После распаковыки показывает Делфи 6-7. при загрузке в OllyDbg и попытки search for intermodular calls он ничего не выдает. Как мне ее распаковать? клиент tionline.ru/files/tionline_setup.exe ![]() |
|
Создано: 08 июня 2009 01:09 · Поправил: Coderess · Личное сообщение · #8 upx -d Файл для меня слишком здоровый, да и времени и желания особого нет, имхо, такие читы создаются, когда кто-то заинтересован, в их создании и есть желание для эксперементов подкрепленных, либо интузиазмом, либо финансовой выгодой ЗЫ: Может быть динамическая подгрузка API или не основной файл разбираешь ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Как пишут читы к онлайн играм? |