Jump to content
Korean Random

MemoryCore

User
  • Posts

    9
  • Joined

  • Last visited

Posts posted by MemoryCore

  1. Только что, DrWeb7_1 сказал:

    Эта тема про разборку сетевого протокола ПК-версии World of Tanks.

    Они мало чем отличаются на практике. Реализация практически одинаковая поэтому те самые исходники bigworld актуальны и для мобилки

  2. 4 минуты назад, Dragon armor сказал:

    Для чего разбираться? У меня была конкретная цель, поэтому пришлось повозиться, потому что это часть цели. Зачем тебе разбираться? Ты хочешь попрактиковаться в реверсе? Или попрактиковаться в разборе сетевого протокола? Тут довольно сложно всё, особенно если новичок. Хотя есть исходники BigWorld'а, пусть и старые, но многое можно в них подсмотреть в плане реализации.

    Там нет номера пакета, номеров фрагментов. Ты лишнего вырезал, либо не скопировал.

     


    Тут прикол в том что я занимаюсь не ПК версией а мобильной :ph34r:

  3. @Dragon armor мне интересно разбираться в этом, никакой конкретной цели не преследую.
     Пакет который я показал уже "дешифрованный" прямиком из функции decrypt в игре поэтому там отсутствует сигнатура в конце 0xdeadbeef (я так полагаю) ибо пакет я не резал

     

  4. @Dragon armor Привет еще раз, пакет не сжимается zlib (по крайнее мере у меня всегда Invalid zlib header в любых случаях)

    image.png.1af37572866d106bb1e9757d75635bf5.png

    Это пример уже расшифрованного пакета но он все еще сжат (есть предположение что это может быть? pickle там очень мало - только после авторизации. 

  5. 4 минуты назад, Dragon armor сказал:

    У них zlib зависит от типа отдельного сообщения. Одно может быть сжато, другое cPickle, а третье - строка (json например). И всё в одном пакете. Смотреть надо в скриптах игровых, как интересующее сообщение создаётся.

    И такое может быть. С флагами пакета разобрался? В исходниках BigWorld о них есть достаточно информации.

     

    @DragoNспасибо огромное за ответы на интересующие вопросы. Теперь понял в какую сторону нужно двигаться по протоколу.

    2 минуты назад, DrWeb7_1 сказал:

    Ну и бардак. Или так задумано ввиду объёма передаваемых данных?

    Бардак жесткий, намного удобнее было бы использовать protobuf

  6. @Dragon armor Очень интересно потому-что у меня длина session равна (40) а у md5 (32) - впрочем это не так важно.

    Я думаю над написанием MITM клиента поэтому и спросил про расшифровку (Да, я разбираю пакеты на отдельные сообщения, надеюсь они не отправляются частями?).
    у них zlib сжатие после шифрования или до шифрования?

    P.s сейчас юзаю сплайсинг для чтения буффера шифрования / дешифрования.

  7. Edited by MemoryCore

    @Dragon armor скорее всего Session является (хэшем SHA-1 HWID железа)  ибо он не меняется (только если другое железо)
     У меня есть еще вопрос касательно дешифрования пакетов (некоторые пакеты не дешифруются после дешифровки blowfish - есть ли там какие-то сжатие zlib возможно, и я так понимаю там до сих пор осталась структура py pickle?)

  8. @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?

×
×
  • Create New...