Wireshark dissector-как использовать dissectortable: добавить (шаблон, диссектор) с любым шаблоном?
Я создаю пользовательский диссектор для Wireshark. Я добавляю свой диссектор к столу диссектора примерно так...
udp_table = DissectorTable.get("udp.port")
udp_table:add(7777,my_proto)
Однако вместо того, чтобы мой диссектор обрабатывал только udp-порт 7777, я хочу, чтобы он обрабатывал любой udp-порт или, по крайней мере, действительно большой диапазон.
Как я могу это сделать?
Он говорит в документации , что я могу заменить 7777 (шаблон) диапазоном, но я не уверен, что синтаксис для этого есть.
Спасибо!
1 ответ:
В теории диапазон добавляется с помощью строки Lua для первого аргумента к
dissectortable:add(), где строка является диапазоном, таким как "7777-8888". Тем не менее, может быть ошибка, препятствующая этой работе прямо сейчас (см. это ask.wireshark.org нить ).Независимо от этого, вы должныне заставить ваш диссектор работать накаждом UDP-порту, так как это не было бы правдой и столкнулось бы с целой кучей хорошо известных применений UDP-порта (например, DNS, UPNP, SIP и т. д.), а также динамически используемые такие, как для RTP и RTCP.
Возможно, то, что вы действительно хотите сделать, - это иметь эвристический диссектор? Если это так, вы можете сделать Lua-диссектор эвристическим, начиная с wireshark v1.11.3 и далее (самая последняя версия wireshark-1.12rc2). Смотрите документы API для proto:register_heuristic и пример диссектора.скрипт lua вверху страницы примеров Lua.
Comments