Nano Hash - криптовалюты, майнинг, программирование

Как анализировать пакеты protobuf в Wireshark

Моя цель - создать плагин / диссектор, который может анализировать протокол на основе protobuf (UDP).
Я нашел в сети автоматически генерируемые плагины диссектора Wireshark / Ethereal для сообщений буфера протокола: https://code.google.com/archive/p/protobuf-wireshark/
когда я следуйте ReadMe, я пропустил" ШАГ 1: Установите Wireshark из исходного кода ", так как он у меня установлен (версия 1.12.3).

Шаг 2. Подготовка буферов протокола -

Я не понимаю этого шага, как мне установить libprotobuf и где?

Шаг 3. Обновление файла конфигурации wirehark -

Я не уверен, что такое "wirehark_src_dir"

Я создал файл wirehark.conf с помощью:
wirehark_src_dir: C: \ Program Files (x86) \ Wireshark
wirehark_install_dir: C: \ Program Files (x86 ) \ Wireshark
wirehark_version: 1.12.3

Шаг 4. Запустите make_wireshark_plugin.py - для этого шага я загрузил и установил python-3.6.0-amd64.exe.

Когда я запускаю это, я получаю сообщение об ошибке: Traceback (последний вызов последний): файл «C: \ ProtoBuff \ protobuff \ make_wireshark_plugin.py», строка 91, в f = open («configure.in», «r») FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'configure.in'.

Этот файл действительно не существует в пакете, который я скачал с github. Где мне взять этот файл? мне нужно создать такое? Что генерирует make_wireshark_plugin.py?

Шаг 5. Создайте файлы конфигурации прототипа. Все файлы конфигурации прототипа должны находиться в / usr / share / wirehark / protobuf или $ HOME / .wireshark / protobuf.

У меня нет общей папки и папки protobuf в пути установки WireShark. Могу ли я просто поместить файлы конфигурации прототипа в папку плагинов?


  • Вероятно, libprotobuf это пакет: $ apt list libprotobuf* 22.02.2017
  • Предполагая, что libprotobuf - это пакет. где мне это достать? как мне его установить? 22.02.2017
  • да, я пользователь Windows 22.02.2017
  • Ссылка 22.02.2017

Ответы:


1

Начиная с версии 3.2.0 в Wireshark были добавлены новые функции о диссекторах Protobuf и gRPC:

  • Файлы Protobuf (* .proto) теперь можно настроить для более точного анализа сериализованных данных Protobuf (таких как gRPC).
  • Сообщение метода потокового gRPC теперь может быть проанализировано с поддержкой функции повторной сборки в потоковом режиме HTTP2.
  • Пользователь может указать пути поиска protobuf (где есть файлы * .proto) и порты UDP для сопоставления типов сообщений protobuf в настройках протокола Protobuf.
  • Если ваши собственные диссекторы нуждаются в вызове диссектора protobuf, вы можете передать тип сообщения диссектору Protobuf с помощью параметра данных (в C) или pinfo-> private_table ["pb_msg_type"] (pinfo.private ["pb_msg_type"] в lua).

Еще две новые функции будут выпущены в 3.3.0 или 3.4.0:

  • Поля Protobuf можно разделить на поля wirehark (заголовок), которые позволяют пользователю вводить полные имена полей Protobuf или сообщений на панели инструментов фильтра для поиска.
  • Диссектор на основе Protobuf может зарегистрироваться в новой таблице диссектора 'protobuf_field', которая содержит полные имена полей, для дальнейшего анализа полей типа BYETS или STRING.

Использованная литература:

14.03.2020

2

Вместо этого вы можете использовать этот, который ничего не требует компиляции: https://github.com/128technology/protobuf_dissector < / а>

22.02.2017
  • моя структура протокола: (1) 4 байта (2) 4 байта (3) protobuf. как я могу заставить предоставляемый вами плагин работать с моей структурой? Могу я сначала заполнить 8 байтов, а затем использовать плагин? (меня не волнуют 8 байтов, это наследие ...) 26.02.2017
  • пожалуйста, обратитесь к последнему комментарию @hadriel 26.02.2017
  • Да, вы должны иметь возможность просто пропустить первые 8 байтов - диссектор protobuf предполагает, что TVB, данный ему (с самого начала), является сообщением protobuf, так что пока вы пропускаете эти 8 байтов, все должно быть в порядке. 28.02.2017
  • Примите во внимание текущие ограничения: option message_set_wire_format = true не поддерживается, options Packages = true не поддерживается, оператор import 'weak' режим не поддерживается и т. Д. 08.09.2017
  • Вы никогда не должны использовать message_set_wire_format = true, как это было для старого внутреннего формата Google. import weak является спорным вопросом, поскольку весь смысл использования файлов для wirehark заключается в их декодировании, поэтому отсутствие файлов бессмысленно. pack = true - это определенно отсутствующая опция, которую следует реализовать в диссекторе. Просто тогда я им не пользовался. 10.09.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..