Как рассечение проволочной акулы обрабатывает необязательные поля - PullRequest
0 голосов
/ 19 марта 2019

Для нашего старшего проекта наша команда пытается разработать инструмент для создания сценариев диссекции Wireshark в lua. Пока у нас не было слишком плохого времени, но недавно мы столкнулись с несколькими проблемами.

Первая из наших проблем - определить, как диссектор обрабатывает необязательные поля. Наше текущее понимание состоит в том, что в HTTP 1.1 есть поля, которые могут поступать в любом порядке, а некоторые могут присутствовать или не присутствовать. Как бы мы это объяснили?

Во-вторых, в случаях, когда есть несколько строковых полей, как бы мы правильно посчитали длину строки и вычислили смещение.

Что касается исследований, я взглянул на RFC 7230, чтобы попытаться найти рифму или причину для размещения на местах, и пример блога, написанного здесь https://mika -s.github.io / wireshark / lua /dissector/2017/11/04/creating-a-wireshark-dissector-in-lua-1.html но я не могу понять это. Сейчас меня интересуют только поля строкового протокола, остальные поля мы в основном проработали в общих случаях. Кто-нибудь должен был сделать что-то подобное раньше?

...