Последний выпуск Wireshark поставляется с примитивной консолью для запуска сценария lua.Его можно найти в разделе Инструменты -> Lua -> Оценить.Оттуда вы сможете перезагрузить диссектор, запустив dofile()
.Вам также придется удалить предыдущую версию вашего диссектора.
Вот пример для диссектора на основе TCP.
local tcp_dissector_table = DissectorTable.get("tcp.port")
tcp_dissector_table:remove(pattern, yourdissector)
yourdissector = nil
dofile("c:/path/to/dissector.lua")
Я рекомендую поместить этот код в функцию внутри вашего файла..
Теперь есть проблема с этим ответом: Если ваш скрипт создал объект Proto, кажется, что вы не можете создать его снова с тем же идентификатором .Конструктор для класса Proto вызывает функцию C proto_register_protocol()
(см. epan/wslua/wslua_proto.c
).Я не могу найти функцию lua, которая отменяет регистрацию протокола.На самом деле, я даже не могу найти функцию C, чтобы отменить ее регистрацию.