Расшифровка пакета

Discussion in 'Реверсинг' started by WhistleR, 22 Feb 2012.

  1. WhistleR

    WhistleR Banned

    Joined:
    21 Mar 2008
    Messages:
    31
    Likes Received:
    7
    Reputations:
    0
    Добрый день.

    Я перехватываю пакет, который посылает одна программа через Wireshark. Он выглядит так:

    Code:
    0000  bc ae c5 c3 fc 94 bc ae  c5 8e 07 c4 08 00 45 00   ........ ......E.
    0010  00 3a 04 25 40 00 80 06  5f b0 c0 a8 01 03 51 5f   .:.%@... _.....Q_
    0020  83 de 84 d7 4e 22 12 5b  e6 1d 46 df e3 54 50 18   ....N".[ ..F..TP.
    0030  00 fb 83 b9 00 00 00 00  00 0e e4 8d ce bc 0b 00   ........ ........
    0040  02 00 04 74 65 73 74 36                            ...test6         
    
    причем я знаю, что перед test идут нужные мне данные, а именно функции. В связи с чем у меня к вам вопрос: Можно ли как-то расшифровать это сообщение? Как это сделать?
    Спасибо большое :confused:
     
  2. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Десериализации?
    Знаете откуда? Какой смысл передавать тело функции? Скорей всего это идет объявления типа данных(объекта), который и хранит строку test6, а не тело функции.
     
    1 person likes this.
  3. WhistleR

    WhistleR Banned

    Joined:
    21 Mar 2008
    Messages:
    31
    Likes Received:
    7
    Reputations:
    0
    Спасибо, прочитаю.

    Есть дизассемблированный исходник отправителя. Ну да, я это и хотел сказать, не правильно выразился. Так, например, в пакете:
    Code:
    0000  bc ae c5 c3 fc 94 bc ae  c5 8e 07 c4 08 00 45 00   ........ ......E. 
    0010  00 40 3f 6b 40 00 80 06  24 64 c0 a8 01 03 51 5f   .@?k@... $d....Q_ 
    0020  83 de 84 d7 4e 22 12 5b  e4 f5 46 df cf 6c 50 18   ....N".[ ..F..lP. 
    0030  00 fd bc 06 00 00 00 00  00 14 e4 8d ce bc 0b 01   ........ ........ 
    0040  00 04 6d 61 69 6c 08 00  04 74 65 73 74 18         ..mail.. .test.   
    в части data должно содержаться примерно следующее:
    Code:
    [SendMessageCommand2] {channelLocator='mail', "message='test'}
     
    #3 WhistleR, 22 Feb 2012
    Last edited: 22 Feb 2012
  4. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Ну так хоть ЯП какой? Как правило в зависимости от ЯП и будет зависит метод сериализации, посмотрите в коде или по вызовам - там есть ответ на то как происходит сериализация.
    Как вариант - пермутантить, если это имеет смысл, т.е. есть возможность повлиять на данные передаваемые в дампе(поля объектов), и сравнивать сигнататуры в дампе. По идее они должны оставаться постоянными, что-бы конечная сторона могла восстановить данные, и попробовать написать свой метод сериализации(как я понял необходимо реализовать обмен данными с сервером в своем ПО) используя свою таблицу соответствий.
     
    #4 seosimf, 22 Feb 2012
    Last edited: 22 Feb 2012
  5. WhistleR

    WhistleR Banned

    Joined:
    21 Mar 2008
    Messages:
    31
    Likes Received:
    7
    Reputations:
    0
    AS, я не большой специалист в нем, да и вообще во взаимодействии через сеть, потому и справшиваю :rolleyes:. Но отсылка пакета выглядит так:
    Code:
    loc_3._connector.send(param1);
    где param1 представляет из себя заполненный (например, как в прошлом сообщении) объект такого класса:
    Code:
      public class SendMessageCommand2 extends ServiceCommand
        {
            public var channelLocator:ChannelLocator;
            public var message:String;
            ....
        }

    Именно так, хочется самому общаться с сервером, минуя программу. Есть вариант — откомпилировать исходники и пытаться там дебажить, но попробовав просто их запустить из-под Flex-а (под которым они были написаны), вывалилась туча ошибок, а поскольку я в AS не разбираюсь, то решил, что проще будет понять способ "шифрования" пакетов и написать свой отсыльщик на C# например.