RockHammer

Трудности с перехватом пакетов

14 сообщений в этой теме

Раз уж пошла такая пьянка, с созданием раздела специального для мультиков - то кто как ни я вставлю и свои пять копеек :D

 

Давно уже морочусь с одним дельцем, никак солюшен не найду.

Итак, это игра. Мультиплеерная. Вконтакте. Называется - правила войны.

По сути, это что-то вроде стратегии. Выращивай войска, развивай свой сектор и делай все чтобы поднятся выше.

Там есть одна "сложность" - ресурсы. Их три: уран, титан, кредиты. Первые два - самые проблемные, т.к. используются везде и в больших дозах. Кредиты - хоть одним местом ешь, в каждом секторе их под завязку. 

Итак, пытался вскрыть это безобразие. СЕ не получится. Ускорителем (спидхак процессовый) тоже не вариант.

Единственный солюшен - подмен пакетов через Чарльза. Ну чтож, настроился я значит на "нужную волну", сниферю пакетики. Только вот те пакеты, в которых собственно и содержится вся инфа о нас - она... Там бардак.

Я бы сначала подумал, что писал это говнокодер - но потом осенило. Обфускация. Я пробовал в этом мусоре искать цифры, которые хоть как-то связаны с нашим значением ресурсов на экране - тщетно. Цифр нет. 

Что я делаю не так? Быть может, способ не тот? Или есть обход обфускации пакетов?

 

P.s. такой способ (обфускация) используют почти все игры ВК, только "недалекие" разработчики от такого не защищены. Как я думаю, временно.

Изменено пользователем RockHamer
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не обфускация, а шифрование. Слегка разные вещи. Далее - флеш-игру можно декомпилировать, чтобы посмотреть, как внутри реализована расшифровка пакета. Но я не думаю, что это поможет. Во всех развитых играх контактовских клиент игры только команду даёт, а все расчёты производит сервер.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не обфускация, а шифрование. Слегка разные вещи. Далее - флеш-игру можно декомпилировать, чтобы посмотреть, как внутри реализована расшифровка пакета. Но я не думаю, что это поможет. Во всех развитых играх контактовских клиент игры только команду даёт, а все расчёты производит сервер.

Не совсем понял, что значит "декомпилировать" ? Она... она онлайновая. Всмысле, вконтакте. Как такового клиента нет (я так думаю). Клиент в браузере. Что декомпилировать? Шифровка-дешифровка лично для меня новая тема, но я буду рад её освоить. И помоему способ взлома очевиден - давать "ложные" команды, к примеру на прибавление ресурсов - а сервер все сделает за нас. 

Изменено пользователем RockHamer
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Клиент написан на флэше. Значит, есть возможность его выдернуть и попробовать декомпилировать - то есть, восстановить исходный код. И дальше уже копать. Но, ядумаю, тут не все так просто, иначе толпы народу уже давно читерили бы вконтакте, быдлоклассниках, мордокниге и мэйл.ру.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все, что я напишу ниже, это я вижу в теории. Практики у меня никакой нет.

 

Вот к таким играм, я более лояльно отношусь. Там продают преимущество через донат. Это мое ИМХО.

 

1. Шифрование пакетов + сжатие + контроль последовательности пакетов. Это может быть как защита так и с целью уменьшения трафика. 

 

2. Может не быть шифрования и нет сжатия, передаются  через пакет данные о действий игрока. 

 

И помоему способ взлома очевиден - давать "ложные" команды, к примеру на прибавление ресурсов - а сервер все сделает за нас. 

 

 Логируй пакеты и пытайся отличить их одинаковое количество с количеством событий в игре, которые ты делаешь. Попробуй повторить отправку разных пакетов один за одним или в разной последовательности с разными скоростями и разными скоростями ответов на эти пакеты, которые могли бы к чему-то перевести. Эксперименты со скоростью отправки разных пакетов может помочь в том, что две транзакции могут не обработать условие последовательно как задумывалось, наверно как правило транзакции обрабатываются параллельно. Я так случайно вроде, начислил себе монеток в Трагедии Белок, у меня тогда были перебои с модемом. И я так себе начислил  26 монет, через функцию пригласить друга, за которую давали меньше монет. Но, случайно, а не специально. Похоже либо пакет много кратно отправился до записи на серверной стороне, что он обработан и были монеты начислены, либо что-то другое.

 

 Т.к. в игре донат, и там не глупые люди наверно сидят в программистах. Логика игры и данные наверняка полностью обрабатываются на серваке, а ты как бы, когда отправляешь пакет звонишь по телефону и говоришь сделай то и сделай то. Если сервак согласиться, то он сделает. Если действия будут идти не по правилам игры и есть проверка на авторитарном сервере, то ничего не получиться. Но могут быть условия, которые разрабы могут перед носом не видеть - в параллельной логике обработки транзакций. Два или несколько условий, обрабатываемых параллельно и не учитывая какие-то нюансы не законченных транзакций.

 

Ну и если с покетами ничего не придумаешь, то как писал Xipho выдергивать флеш приложение и декопилишь его, чтобы узнать лучше, что там происходит. У нас было пара тем как декомпилировать. Ну и искать слабости.

 

Все, что я написал, это я вижу в теории. Но практики у меня нет. Может я что и неправильно написал.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Клиент написан на флэше. Значит, есть возможность его выдернуть и попробовать декомпилировать - то есть, восстановить исходный код. И дальше уже копать. Но, ядумаю, тут не все так просто, иначе толпы народу уже давно читерили бы вконтакте, быдлоклассниках, мордокниге и мэйл.ру.

Ну пока что идея Xipho мне кажется легче. Итак, как поймать клиент игры и как его декомпилировать? Ну и попутный вопрос: как во всем этом искать слабости?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну пока что идея Xipho мне кажется легче. Итак, как поймать клиент игры и как его декомпилировать? Ну и попутный вопрос: как во всем этом искать слабости?

посмотри вот тут https://xakep.ru/2011/03/03/54979/ все подробно описано, про то как посмотреть и исход, и как лучше посмотреть пересылку пакетов!!!

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ребят, но при этом клиент дает значение, вопрос в том как стабилизировать данное значение для того что бы оно стало постоянным? 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ребят, но при этом клиент дает значение, вопрос в том как стабилизировать данное значение для того что бы оно стало постоянным? 

Excuse me? 

Стабилизировать... значение... what? 

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ребят, но при этом клиент дает значение, вопрос в том как стабилизировать данное значение для того что бы оно стало постоянным?

Тряхну телепатией...

Если имеется в виду то, чтобы значение не изменялось в игре, то это значение нужно "заморозить", т.е. если пишешь программу, то тебе нужно по таймеру выставлять нужное значение, по нужному адресу. Если используешь сторонние инструменты, типа Cheat Engine, то он замораживает значения адреса за тебя, при включении соответствующей функции (в СЕ - "квадратик" слева от адреса/скрипта, или: выделив нужный адрес в списке - нажать клавишу "Space" ("Пробел")).

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тряхну телепатией...

Если имеется в виду то, чтобы значение не изменялось в игре, то это значение нужно "заморозить", т.е. если пишешь программу, то тебе нужно по таймеру выставлять нужное значение, по нужному адресу. Если используешь сторонние инструменты, типа Cheat Engine, то он замораживает значения адреса за тебя, при включении соответствующей функции (в СЕ - "квадратик" слева от адреса/скрипта, или: выделив нужный адрес в списке - нажать клавишу "Space" ("Пробел")).

Таймер? Зачем? Можно же: 

while(true) {

WriteProcessMemory(12);

Sleep(10); }

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Таймер? Зачем? Можно же:  while(true) { WriteProcessMemory(12); Sleep(10); }

С таким подходом ты получишь стабильную нагрузку на процессор в районе 10 процентов. Оно тебе надо?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С таким подходом ты получишь стабильную нагрузку на процессор в районе 10 процентов. Оно тебе надо?

Не знаю) Вообще оно не мне надо)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
13 часа назад, csayro сказал:

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

http://tinyurl.com/z2qphgr  в этом видео думаю можно увидеть как это сделать применимо к даной игре. но у меня вышла заминка клавиша  F7 неработает в версии ангина 6.5.  думаю вполне могло получится.

исправленно можно удалить предедущий комент

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас