-
Posts
9 -
Joined
-
Last visited
Posts posted by MemoryCore
-
-
4 минуты назад, Dragon armor сказал:
Для чего разбираться? У меня была конкретная цель, поэтому пришлось повозиться, потому что это часть цели. Зачем тебе разбираться? Ты хочешь попрактиковаться в реверсе? Или попрактиковаться в разборе сетевого протокола? Тут довольно сложно всё, особенно если новичок. Хотя есть исходники BigWorld'а, пусть и старые, но многое можно в них подсмотреть в плане реализации.
Там нет номера пакета, номеров фрагментов. Ты лишнего вырезал, либо не скопировал.
Тут прикол в том что я занимаюсь не ПК версией а мобильной -
@Dragon armor мне интересно разбираться в этом, никакой конкретной цели не преследую.
Пакет который я показал уже "дешифрованный" прямиком из функции decrypt в игре поэтому там отсутствует сигнатура в конце 0xdeadbeef (я так полагаю) ибо пакет я не резал
-
@Dragon armor Привет еще раз, пакет не сжимается zlib (по крайнее мере у меня всегда Invalid zlib header в любых случаях)
Это пример уже расшифрованного пакета но он все еще сжат (есть предположение что это может быть? pickle там очень мало - только после авторизации. -
4 минуты назад, Dragon armor сказал:
У них zlib зависит от типа отдельного сообщения. Одно может быть сжато, другое cPickle, а третье - строка (json например). И всё в одном пакете. Смотреть надо в скриптах игровых, как интересующее сообщение создаётся.
И такое может быть. С флагами пакета разобрался? В исходниках BigWorld о них есть достаточно информации.
@DragoNспасибо огромное за ответы на интересующие вопросы. Теперь понял в какую сторону нужно двигаться по протоколу.
2 минуты назад, DrWeb7_1 сказал:Ну и бардак. Или так задумано ввиду объёма передаваемых данных?
Бардак жесткий, намного удобнее было бы использовать protobuf
-
@Dragon armor Очень интересно потому-что у меня длина session равна (40) а у md5 (32) - впрочем это не так важно.
Я думаю над написанием MITM клиента поэтому и спросил про расшифровку (Да, я разбираю пакеты на отдельные сообщения, надеюсь они не отправляются частями?).
у них zlib сжатие после шифрования или до шифрования?
P.s сейчас юзаю сплайсинг для чтения буффера шифрования / дешифрования. -
Edited by MemoryCore
@Dragon armor скорее всего Session является (хэшем SHA-1 HWID железа) ибо он не меняется (только если другое железо)
У меня есть еще вопрос касательно дешифрования пакетов (некоторые пакеты не дешифруются после дешифровки blowfish - есть ли там какие-то сжатие zlib возможно, и я так понимаю там до сих пор осталась структура py pickle?) -
@DragoN Я занимаюсь исключительно реверсингом протокола.
1. Клиент отправляет на сервер JSON который накрывается RSA-2048. в JSON есть поле session размер которого 32 байта * 8 = 256 битSession: "b03e3025d4bca9df96cb11860855f5a3" После отправки пакета с авторизацией на сервер (нам возвращается Invalid Login в чистом виде - если данные не валид или зашифрованный пакет) Я смотрел под отладчиком - зашифрованный пакет расшифровывается но я перепробовал все реализации Blowfish [JTS-tanks / и просто разные методы дешифровки blowfish] на данные на выходе так-же остались зашифрованными.
@Dragon armorРазобрался с дешифровкой пакетов, от сервера прилетает Json с accountID / NickName и token2. Формат token2 -> 30387392:8461659054643771568:204598897782153838542585458392281532956 - каким образом клиент получает информацию о игроке? это тоже сервер отдает или web api?
-
@Dragon armor Каким алгоритмом (режимом алгоритма CBC/ECB) расшифровать пакеты после авторизации? при авторизации 'session' длиной 32 байта является сессионным ключом, верно?
Мод "Эмулятор сервера World of Tanks".
in Modding General Discussion
Posted
Они мало чем отличаются на практике. Реализация практически одинаковая поэтому те самые исходники bigworld актуальны и для мобилки