Я хочу проанализировать протоколы уровня приложений из сетевой трассы с помощью буфера протокола Google и воспроизвести трассировку (я использую python). Мне нужны предложения, чтобы автоматически генерировать описание сообщения протокола (в .proto-файле) из сетевой трассы.Буфер протокола Google для синтаксического анализа сообщений текстовых и двоичных протоколов в сетевой трассе (PCAP)
ответ
Итак, вы хотите восстановить, какие сообщения .proto передавались по протоколу прикладного уровня?
Это не так просто, как кажется. Во-первых, сообщения .proto не могут быть отправлены сырым по проводам, так как приемник должен знать, как долго они находятся. Их нужно каким-то образом инкапсулировать, возможно, в HTTP POST или с необработанным 4-байтным размером. Я не знаю, что это было бы для вашего приложения, но вам нужно будет с этим справиться.
Во-вторых, вы не можете восстановить полное .proto только из сообщений. Вы получаете только номера и типы тегов, а не имена. Кроме того, вы потеряете информацию о подчиненных сообщениях - подчинения и простые строки закодированы одинаково (вы, вероятно, могли бы сказать, что именно это, обратив внимание на них, но я не думаю, что вы могли бы сделать это автоматически). Вы также никогда не узнаете о дополнительных предметах, которые никогда не отправлялись. Но вы можете анализировать буфер без прото и получать некоторые разумные данные (ints, повторяющиеся строки и т. Д.).
В-третьих, вам необходимо восстановить поток байтов приложения из журнала pcap. Я не уверен, как это сделать, но я подозреваю, что есть инструменты, которые сделают это для вас.
Как вы генерируете трассировку сети? –
Сетевая трасса генерируется через wirehark. Его в формате PCAP. – user1667320