Я разрабатываю диссектор / протокол как надстройку над сетевым уровнем, чтобы диссектор IP анализировал все IP-заголовки и смотрел на поле «протокол», чтобы передать полезную нагрузку моему протоколу.
скажем номер протокола составляет «254».
Что нужно сделать, чтобы IP-диссектор передавал полезные данные моему протоколу?
РЕДАКТИРОВАТЬ:
мой файл packet-temp.c содержит:
#include "config.h"
#include <epan/packet.h>
#define IP_PROTO_TEMP 254
static int proto_temp = -1;
static void dissect_temp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
col_set_str(pinfo->cinfo, COL_PROTOCOL, "TEMP");
/* Clear out stuff in the info column */
col_clear(pinfo->cinfo, COL_INFO);
}
void proto_register_temp(void)
{
proto_temp = proto_register_protocol (
"TEMP Protocol", /* name */
"TEMP", /* short name */
"temp" /* abbrev */
);
}
void proto_reg_handoff_temp(void)
{
static dissector_handle_t temp_handle;
temp_handle = create_dissector_handle(dissect_temp, proto_temp);
dissector_add_uint("ip.proto", IP_PROTO_TEMP , temp_handle);
}
у меня этот файл находится в папке> C: \ Development \ wirehark \ plugins \ temp, так как я пишу его как плагин.
Спасибо.