Добрый день. Я перехватываю пакет, который посылает одна программа через 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 идут нужные мне данные, а именно функции. В связи с чем у меня к вам вопрос: Можно ли как-то расшифровать это сообщение? Как это сделать? Спасибо большое
Десериализации? Знаете откуда? Какой смысл передавать тело функции? Скорей всего это идет объявления типа данных(объекта), который и хранит строку test6, а не тело функции.
Спасибо, прочитаю. Есть дизассемблированный исходник отправителя. Ну да, я это и хотел сказать, не правильно выразился. Так, например, в пакете: 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'}
Ну так хоть ЯП какой? Как правило в зависимости от ЯП и будет зависит метод сериализации, посмотрите в коде или по вызовам - там есть ответ на то как происходит сериализация. Как вариант - пермутантить, если это имеет смысл, т.е. есть возможность повлиять на данные передаваемые в дампе(поля объектов), и сравнивать сигнататуры в дампе. По идее они должны оставаться постоянными, что-бы конечная сторона могла восстановить данные, и попробовать написать свой метод сериализации(как я понял необходимо реализовать обмен данными с сервером в своем ПО) используя свою таблицу соответствий.
AS, я не большой специалист в нем, да и вообще во взаимодействии через сеть, потому и справшиваю . Но отсылка пакета выглядит так: Code: loc_3._connector.send(param1); где param1 представляет из себя заполненный (например, как в прошлом сообщении) объект такого класса: Code: public class SendMessageCommand2 extends ServiceCommand { public var channelLocator:ChannelLocator; public var message:String; .... } Именно так, хочется самому общаться с сервером, минуя программу. Есть вариант — откомпилировать исходники и пытаться там дебажить, но попробовав просто их запустить из-под Flex-а (под которым они были написаны), вывалилась туча ошибок, а поскольку я в AS не разбираюсь, то решил, что проще будет понять способ "шифрования" пакетов и написать свой отсыльщик на C# например.