suricata
|
#include "util-spm.h"
Go to the source code of this file.
Data Structures | |
struct | DetectContentData_ |
Typedefs | |
typedef struct DetectContentData_ | DetectContentData |
Functions | |
void | DetectContentRegister (void) |
DetectContentData * | DetectContentParse (SpmGlobalThreadCtx *spm_global_thread_ctx, const char *contentstr) |
DetectContentParse \initonly. More... | |
int | DetectContentDataParse (const char *keyword, const char *contentstr, uint8_t **pstr, uint16_t *plen) |
Parse a content string, ie "abc|DE|fgh". More... | |
DetectContentData * | DetectContentParseEncloseQuotes (SpmGlobalThreadCtx *spm_global_thread_ctx, const char *contentstr) |
int | DetectContentSetup (DetectEngineCtx *de_ctx, Signature *s, const char *contentstr) |
Function to setup a content pattern. More... | |
void | DetectContentPrint (DetectContentData *) |
Helper function to print a DetectContentData. More... | |
void | DetectContentFree (DetectEngineCtx *, void *) |
this function will SCFree memory associated with DetectContentData More... | |
bool | DetectContentPMATCHValidateCallback (const Signature *s) |
void | DetectContentPropagateLimits (Signature *s) |
void | DetectContentPatternPrettyPrint (const DetectContentData *cd, char *str, size_t str_len) |
void | SigParseRequiredContentSize (const Signature *s, const int max, const SigMatch *sm, int *len, int *offset) |
int | DetectContentConvertToNocase (DetectEngineCtx *de_ctx, DetectContentData *cd) |
Definition in file detect-content.h.
#define DETECT_CONTENT_DEPTH BIT_U32(4) |
Definition at line 34 of file detect-content.h.
#define DETECT_CONTENT_DEPTH_VAR BIT_U32(12) |
Definition at line 47 of file detect-content.h.
#define DETECT_CONTENT_DISTANCE BIT_U32(1) |
Definition at line 31 of file detect-content.h.
#define DETECT_CONTENT_DISTANCE2OFFSET BIT_U32(22) |
Definition at line 64 of file detect-content.h.
#define DETECT_CONTENT_DISTANCE_NEXT BIT_U32(18) |
Definition at line 59 of file detect-content.h.
#define DETECT_CONTENT_DISTANCE_VAR BIT_U32(13) |
Definition at line 48 of file detect-content.h.
#define DETECT_CONTENT_ENDS_WITH BIT_U32(10) |
Definition at line 43 of file detect-content.h.
#define DETECT_CONTENT_FAST_PATTERN BIT_U32(5) |
Definition at line 35 of file detect-content.h.
#define DETECT_CONTENT_FAST_PATTERN_CHOP BIT_U32(7) |
Definition at line 37 of file detect-content.h.
#define DETECT_CONTENT_FAST_PATTERN_ONLY BIT_U32(6) |
Definition at line 36 of file detect-content.h.
#define DETECT_CONTENT_IS_SINGLE | ( | c | ) |
Definition at line 69 of file detect-content.h.
#define DETECT_CONTENT_MPM BIT_U32(20) |
MPM pattern selected by the engine or forced by fast_pattern keyword
Definition at line 62 of file detect-content.h.
#define DETECT_CONTENT_MPM_IS_CONCLUSIVE | ( | c | ) |
Definition at line 79 of file detect-content.h.
#define DETECT_CONTENT_NEGATED BIT_U32(9) |
content is negated
Definition at line 41 of file detect-content.h.
#define DETECT_CONTENT_NO_DOUBLE_INSPECTION_REQUIRED BIT_U32(16) |
Definition at line 56 of file detect-content.h.
#define DETECT_CONTENT_NOCASE BIT_U32(0) |
Definition at line 30 of file detect-content.h.
#define DETECT_CONTENT_OFFSET BIT_U32(3) |
Definition at line 33 of file detect-content.h.
#define DETECT_CONTENT_OFFSET_VAR BIT_U32(11) |
Definition at line 46 of file detect-content.h.
#define DETECT_CONTENT_RAWBYTES BIT_U32(8) |
content applies to a "raw"/undecoded field if applicable
Definition at line 39 of file detect-content.h.
#define DETECT_CONTENT_RELATIVE_NEXT (DETECT_CONTENT_WITHIN_NEXT|DETECT_CONTENT_DISTANCE_NEXT) |
a relative match to this content is next, used in matching phase
Definition at line 67 of file detect-content.h.
#define DETECT_CONTENT_REPLACE BIT_U32(15) |
Definition at line 52 of file detect-content.h.
#define DETECT_CONTENT_STARTS_WITH BIT_U32(19) |
Definition at line 60 of file detect-content.h.
#define DETECT_CONTENT_VALUE_MAX 1024 * 1024 |
Definition at line 90 of file detect-content.h.
#define DETECT_CONTENT_WITHIN BIT_U32(2) |
Definition at line 32 of file detect-content.h.
#define DETECT_CONTENT_WITHIN2DEPTH BIT_U32(21) |
Definition at line 63 of file detect-content.h.
#define DETECT_CONTENT_WITHIN_NEXT BIT_U32(17) |
Definition at line 58 of file detect-content.h.
#define DETECT_CONTENT_WITHIN_VAR BIT_U32(14) |
Definition at line 49 of file detect-content.h.
typedef struct DetectContentData_ DetectContentData |
int DetectContentConvertToNocase | ( | DetectEngineCtx * | de_ctx, |
DetectContentData * | cd | ||
) |
Definition at line 754 of file detect-content.c.
References DetectContentData_::content, DetectContentData_::content_len, de_ctx, DETECT_CONTENT_NOCASE, DetectContentData_::flags, SCLogError, DetectContentData_::spm_ctx, DetectEngineCtx_::spm_global_thread_ctx, SpmDestroyCtx(), SpmInitCtx(), and u8_tolower.
int DetectContentDataParse | ( | const char * | keyword, |
const char * | contentstr, | ||
uint8_t ** | pstr, | ||
uint16_t * | plen | ||
) |
Parse a content string, ie "abc|DE|fgh".
content_str | null terminated string containing the content |
result | result pointer to pass the fully parsed byte array |
result_len | size of the resulted data |
flags | flags to be set by this parsing function |
-1 | error |
0 | ok |
Definition at line 83 of file detect-content.c.
References SCCalloc, SCLogDebug, SCLogError, str, and strlcpy().
Referenced by DetectContentParse().
void DetectContentFree | ( | DetectEngineCtx * | de_ctx, |
void * | ptr | ||
) |
this function will SCFree memory associated with DetectContentData
cd | pointer to DetectContentData |
Definition at line 372 of file detect-content.c.
References SCEnter, SCFree, SCReturn, DetectContentData_::spm_ctx, and SpmDestroyCtx().
Referenced by DetectContentRegister(), and DetectContentSetup().
DetectContentData* DetectContentParse | ( | SpmGlobalThreadCtx * | spm_global_thread_ctx, |
const char * | contentstr | ||
) |
DetectContentParse \initonly.
Definition at line 211 of file detect-content.c.
References DetectContentData_::content, DetectContentData_::content_len, DetectContentData_::depth, DetectContentDataParse(), DetectContentData_::distance, len, DetectContentData_::offset, SCCalloc, SCFree, DetectContentData_::spm_ctx, SpmInitCtx(), unlikely, and DetectContentData_::within.
Referenced by DetectContentParseEncloseQuotes(), and DetectContentSetup().
DetectContentData* DetectContentParseEncloseQuotes | ( | SpmGlobalThreadCtx * | spm_global_thread_ctx, |
const char * | contentstr | ||
) |
Definition at line 253 of file detect-content.c.
References DetectContentParse().
void DetectContentPatternPrettyPrint | ( | const DetectContentData * | cd, |
char * | str, | ||
size_t | str_len | ||
) |
Definition at line 733 of file detect-content.c.
References DetectContentData_::content_len.
Referenced by DumpPatterns().
bool DetectContentPMATCHValidateCallback | ( | const Signature * | s | ) |
true | valid |
false | invalid |
Definition at line 454 of file detect-content.c.
References Signature_::flags, SCLogDebug, SCLogError, SIG_FLAG_DSIZE, SigParseGetMaxDsize(), and SigParseMaxRequiredDsize().
void DetectContentPrint | ( | DetectContentData * | ) |
Helper function to print a DetectContentData.
Definition at line 262 of file detect-content.c.
References DetectContentData_::content, DetectContentData_::content_len, DetectContentData_::depth, DETECT_CONTENT_NEGATED, DETECT_CONTENT_RELATIVE_NEXT, DetectContentData_::distance, DetectContentData_::flags, DetectContentData_::id, DetectContentData_::offset, DetectContentData_::replace, DetectContentData_::replace_len, SCFree, SCLogDebug, SCMalloc, and DetectContentData_::within.
Referenced by DetectContentSetup().
void DetectContentPropagateLimits | ( | Signature * | s | ) |
Definition at line 705 of file detect-content.c.
void DetectContentRegister | ( | void | ) |
Definition at line 58 of file detect-content.c.
References SigTableElmt_::desc, DETECT_CONTENT, DetectContentFree(), DetectContentSetup(), SigTableElmt_::Free, SigTableElmt_::Match, SigTableElmt_::name, SigTableElmt_::RegisterTests, SigTableElmt_::Setup, sigmatch_table, and SigTableElmt_::url.
Referenced by SigTableSetup().
int DetectContentSetup | ( | DetectEngineCtx * | de_ctx, |
Signature * | s, | ||
const char * | contentstr | ||
) |
Function to setup a content pattern.
de_ctx | pointer to the current detection_engine |
s | pointer to the current Signature |
m | pointer to the last parsed SigMatch |
contentstr | pointer to the current keyword content string |
-1 | if error |
0 | if all was ok |
Definition at line 328 of file detect-content.c.
References DetectContentData_::content, DetectContentData_::content_len, de_ctx, DETECT_CONTENT, DETECT_CONTENT_NEGATED, DETECT_SM_LIST_MAX, DETECT_SM_LIST_NOTSET, DETECT_SM_LIST_PMATCH, DetectBufferGetActiveList(), DetectContentFree(), DetectContentParse(), DetectContentPrint(), DetectEngineBufferTypeValidateTransform(), DetectContentData_::flags, Signature_::init_data, SignatureInitData_::list, SignatureInitData_::negated, SCLogError, SigMatchAppendSMToList(), and DetectEngineCtx_::spm_global_thread_ctx.
Referenced by DetectContentRegister().
void SigParseRequiredContentSize | ( | const Signature * | s, |
const int | max, | ||
const SigMatch * | sm, | ||
int * | len, | ||
int * | offset | ||
) |
Definition at line 408 of file detect-content.c.
References DetectContentData_::content_len, SigMatch_::ctx, DetectContentData_::depth, DETECT_CONTENT, DETECT_CONTENT_DISTANCE, DETECT_CONTENT_NEGATED, DETECT_CONTENT_WITHIN, DetectContentData_::distance, DetectContentData_::flags, len, MAX, SigMatch_::next, offset, DetectContentData_::offset, SCLogDebug, SigMatch_::type, and DetectContentData_::within.
Referenced by SigParseMaxRequiredDsize().