cip/enip: dynamic buffer

pull/2559/head
Victor Julien 8 years ago
parent f2393c1ae0
commit e4bfdd53c2

@ -42,6 +42,7 @@
static int DetectCipServiceSetup(DetectEngineCtx *, Signature *, char *); static int DetectCipServiceSetup(DetectEngineCtx *, Signature *, char *);
static void DetectCipServiceFree(void *); static void DetectCipServiceFree(void *);
static void DetectCipServiceRegisterTests(void); static void DetectCipServiceRegisterTests(void);
static int g_cip_buffer_id = 0;
/** /**
* \brief Registration function for cip_service: keyword * \brief Registration function for cip_service: keyword
@ -58,13 +59,15 @@ void DetectCipServiceRegister(void)
sigmatch_table[DETECT_CIPSERVICE].RegisterTests sigmatch_table[DETECT_CIPSERVICE].RegisterTests
= DetectCipServiceRegisterTests; = DetectCipServiceRegisterTests;
DetectAppLayerInspectEngineRegister(ALPROTO_ENIP, SIG_FLAG_TOSERVER, DetectAppLayerInspectEngineRegister2("cip",
DETECT_SM_LIST_CIP_MATCH, ALPROTO_ENIP, SIG_FLAG_TOSERVER,
DetectEngineInspectCIP); DetectEngineInspectCIP);
DetectAppLayerInspectEngineRegister(ALPROTO_ENIP, SIG_FLAG_TOCLIENT, DetectAppLayerInspectEngineRegister2("cip",
DETECT_SM_LIST_CIP_MATCH, ALPROTO_ENIP, SIG_FLAG_TOCLIENT,
DetectEngineInspectCIP); DetectEngineInspectCIP);
g_cip_buffer_id = DetectBufferTypeGetByName("cip");
SCReturn; SCReturn;
} }
@ -225,7 +228,7 @@ static int DetectCipServiceSetup(DetectEngineCtx *de_ctx, Signature *s,
s->alproto = ALPROTO_ENIP; s->alproto = ALPROTO_ENIP;
SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_CIP_MATCH); SigMatchAppendSMToList(s, sm, g_cip_buffer_id);
SCReturnInt(0); SCReturnInt(0);
@ -301,6 +304,7 @@ static void DetectCipServiceRegisterTests(void)
static int DetectEnipCommandSetup(DetectEngineCtx *, Signature *, char *); static int DetectEnipCommandSetup(DetectEngineCtx *, Signature *, char *);
static void DetectEnipCommandFree(void *); static void DetectEnipCommandFree(void *);
static void DetectEnipCommandRegisterTests(void); static void DetectEnipCommandRegisterTests(void);
static int g_enip_buffer_id = 0;
/** /**
* \brief Registration function for enip_command: keyword * \brief Registration function for enip_command: keyword
@ -317,12 +321,14 @@ void DetectEnipCommandRegister(void)
sigmatch_table[DETECT_ENIPCOMMAND].RegisterTests sigmatch_table[DETECT_ENIPCOMMAND].RegisterTests
= DetectEnipCommandRegisterTests; = DetectEnipCommandRegisterTests;
DetectAppLayerInspectEngineRegister(ALPROTO_ENIP, SIG_FLAG_TOSERVER, DetectAppLayerInspectEngineRegister2("enip",
DETECT_SM_LIST_ENIP_MATCH, ALPROTO_ENIP, SIG_FLAG_TOSERVER,
DetectEngineInspectENIP); DetectEngineInspectENIP);
DetectAppLayerInspectEngineRegister(ALPROTO_ENIP, SIG_FLAG_TOCLIENT, DetectAppLayerInspectEngineRegister2("enip",
DETECT_SM_LIST_ENIP_MATCH, ALPROTO_ENIP, SIG_FLAG_TOCLIENT,
DetectEngineInspectENIP); DetectEngineInspectENIP);
g_enip_buffer_id = DetectBufferTypeGetByName("enip");
} }
/** /**
@ -399,7 +405,7 @@ static int DetectEnipCommandSetup(DetectEngineCtx *de_ctx, Signature *s,
sm->ctx = (void *) enipcmdd; sm->ctx = (void *) enipcmdd;
s->alproto = ALPROTO_ENIP; s->alproto = ALPROTO_ENIP;
SigMatchAppendSMToList(s, sm, DETECT_SM_LIST_ENIP_MATCH); SigMatchAppendSMToList(s, sm, g_enip_buffer_id);
SCReturnInt(0); SCReturnInt(0);

@ -2811,11 +2811,6 @@ const char *DetectSigmatchListEnumToString(enum DetectSigmatchListEnum type)
case DETECT_SM_LIST_FILEMATCH: case DETECT_SM_LIST_FILEMATCH:
return "file"; return "file";
case DETECT_SM_LIST_CIP_MATCH:
return "cip";
case DETECT_SM_LIST_ENIP_MATCH:
return "enip";
case DETECT_SM_LIST_BASE64_DATA: case DETECT_SM_LIST_BASE64_DATA:
return "base64_data"; return "base64_data";

@ -120,9 +120,6 @@ enum DetectSigmatchListEnum {
DETECT_SM_LIST_FILEMATCH, DETECT_SM_LIST_FILEMATCH,
DETECT_SM_LIST_CIP_MATCH,
DETECT_SM_LIST_ENIP_MATCH,
DETECT_SM_LIST_TEMPLATE_BUFFER_MATCH, DETECT_SM_LIST_TEMPLATE_BUFFER_MATCH,
DETECT_SM_LIST_MAX, DETECT_SM_LIST_MAX,

Loading…
Cancel
Save