suricata
detect-parse.c File Reference
#include "suricata-common.h"
#include "debug.h"
#include "detect.h"
#include "detect-engine.h"
#include "detect-engine-address.h"
#include "detect-engine-port.h"
#include "detect-engine-mpm.h"
#include "detect-engine-state.h"
#include "detect-content.h"
#include "detect-pcre.h"
#include "detect-uricontent.h"
#include "detect-reference.h"
#include "detect-ipproto.h"
#include "detect-flow.h"
#include "detect-app-layer-protocol.h"
#include "detect-lua.h"
#include "detect-app-layer-event.h"
#include "detect-http-method.h"
#include "pkt-var.h"
#include "host.h"
#include "util-profiling.h"
#include "decode.h"
#include "flow.h"
#include "util-rule-vars.h"
#include "conf.h"
#include "conf-yaml-loader.h"
#include "app-layer.h"
#include "app-layer-protos.h"
#include "app-layer-parser.h"
#include "app-layer-htp.h"
#include "util-classification-config.h"
#include "util-unittest.h"
#include "util-unittest-helper.h"
#include "util-debug.h"
#include "string.h"
#include "detect-parse.h"
#include "detect-engine-iponly.h"
#include "app-layer-detect-proto.h"
#include "tests/detect-parse.c"
Include dependency graph for detect-parse.c:

Go to the source code of this file.

Data Structures

struct  SigDuplWrapper_
 We use this as data to the hash table DetectEngineCtx->dup_sig_hash_table. More...
 
struct  SignatureParser_
 

Macros

#define CONFIG_PARTS   8
 
#define CONFIG_ACTION   0
 
#define CONFIG_PROTO   1
 
#define CONFIG_SRC   2
 
#define CONFIG_SP   3
 
#define CONFIG_DIREC   4
 
#define CONFIG_DST   5
 
#define CONFIG_DP   6
 
#define CONFIG_OPTS   7
 
#define CASE_CODE_STRING(E, S)   case E: return S; break
 
#define CASE_CODE(E)   case E: return #E
 
#define URL   "https://suricata-ids.org/about/deprecation-policy/"
 

Typedefs

typedef struct SigDuplWrapper_ SigDuplWrapper
 We use this as data to the hash table DetectEngineCtx->dup_sig_hash_table. More...
 
typedef struct SignatureParser_ SignatureParser
 

Functions

const char * DetectListToHumanString (int list)
 
const char * DetectListToString (int list)
 
int DetectEngineContentModifierBufferSetup (DetectEngineCtx *de_ctx, Signature *s, const char *arg, int sm_type, int sm_list, AppProto alproto)
 
SigMatchSigMatchAlloc (void)
 
void SigMatchFree (DetectEngineCtx *de_ctx, SigMatch *sm)
 free a SigMatch More...
 
bool SigMatchSilentErrorEnabled (const DetectEngineCtx *de_ctx, const enum DetectKeywordId id)
 
bool SigMatchStrictEnabled (const enum DetectKeywordId id)
 
void SigTableApplyStrictCommandlineOption (const char *str)
 
void SigMatchAppendSMToList (Signature *s, SigMatch *new, int list)
 Append a SigMatch to the list type. More...
 
void SigMatchRemoveSMFromList (Signature *s, SigMatch *sm, int sm_list)
 
SigMatchDetectGetLastSMFromMpmLists (const DetectEngineCtx *de_ctx, const Signature *s)
 get the last SigMatch from lists that support MPM. More...
 
SigMatchDetectGetLastSMFromLists (const Signature *s,...)
 Returns the sm with the largest index (added latest) from the lists passed to us. More...
 
SigMatchDetectGetLastSMByListPtr (const Signature *s, SigMatch *sm_list,...)
 Returns the sm with the largest index (added last) from the list passed to us as a pointer. More...
 
SigMatchDetectGetLastSMByListId (const Signature *s, int list_id,...)
 Returns the sm with the largest index (added last) from the list passed to us as an id. More...
 
SigMatchDetectGetLastSM (const Signature *s)
 Returns the sm with the largest index (added latest) from this sig. More...
 
int SigMatchListSMBelongsTo (const Signature *s, const SigMatch *key_sm)
 
SignatureSigAlloc (void)
 
void SigFree (DetectEngineCtx *de_ctx, Signature *s)
 
int DetectSignatureAddTransform (Signature *s, int transform, void *options)
 
int DetectSignatureSetAppProto (Signature *s, AppProto alproto)
 
SigMatchDataSigMatchList2DataArray (SigMatch *head)
 convert SigMatch list to SigMatchData array More...
 
SignatureSigInit (DetectEngineCtx *de_ctx, const char *sigstr)
 Parses a signature and adds it to the Detection Engine Context. More...
 
int DetectParseDupSigHashInit (DetectEngineCtx *de_ctx)
 Initializes the hash table that is used to cull duplicate sigs. More...
 
void DetectParseDupSigHashFree (DetectEngineCtx *de_ctx)
 Frees the hash table that is used to cull duplicate sigs. More...
 
SignatureDetectEngineAppendSig (DetectEngineCtx *de_ctx, const char *sigstr)
 Parse and append a Signature into the Detection Engine Context signature list. More...
 
int DetectParsePcreExecLen (DetectParseRegex *parse_regex, const char *str, int str_len, int start_offset, int options, int *ovector, int ovector_size)
 
int DetectParsePcreExec (DetectParseRegex *parse_regex, const char *str, int start_offset, int options, int *ovector, int ovector_size)
 
void DetectParseFreeRegex (DetectParseRegex *r)
 
void DetectParseFreeRegexes (void)
 
void DetectParseRegexAddToFreeList (DetectParseRegex *detect_parse)
 add regex and/or study to at exit free list More...
 
bool DetectSetupParseRegexesOpts (const char *parse_str, DetectParseRegex *detect_parse, int opts)
 
void DetectSetupParseRegexes (const char *parse_str, DetectParseRegex *detect_parse)
 
void DetectParseRegisterTests (void)
 this function registers unit tests for DetectParse More...
 
void SigParseRegisterTests (void)
 

Variables

SigTableElmt sigmatch_table [DETECT_TBLSIZE]
 
int sc_set_caps
 

Detailed Description

Author
Victor Julien victo.nosp@m.r@in.nosp@m.linia.nosp@m.c.ne.nosp@m.t

signature parser

Definition in file detect-parse.c.

Macro Definition Documentation

◆ CASE_CODE

#define CASE_CODE (   E)    case E: return #E

Definition at line 131 of file detect-parse.c.

◆ CASE_CODE_STRING

#define CASE_CODE_STRING (   E,
 
)    case E: return S; break

◆ CONFIG_ACTION

#define CONFIG_ACTION   0

Definition at line 94 of file detect-parse.c.

◆ CONFIG_DIREC

#define CONFIG_DIREC   4

Definition at line 98 of file detect-parse.c.

◆ CONFIG_DP

#define CONFIG_DP   6

Definition at line 100 of file detect-parse.c.

◆ CONFIG_DST

#define CONFIG_DST   5

Definition at line 99 of file detect-parse.c.

◆ CONFIG_OPTS

#define CONFIG_OPTS   7

Definition at line 101 of file detect-parse.c.

◆ CONFIG_PARTS

#define CONFIG_PARTS   8

Definition at line 92 of file detect-parse.c.

◆ CONFIG_PROTO

#define CONFIG_PROTO   1

Definition at line 95 of file detect-parse.c.

◆ CONFIG_SP

#define CONFIG_SP   3

Definition at line 97 of file detect-parse.c.

◆ CONFIG_SRC

#define CONFIG_SRC   2

Definition at line 96 of file detect-parse.c.

◆ URL

#define URL   "https://suricata-ids.org/about/deprecation-policy/"

Typedef Documentation

◆ SigDuplWrapper

We use this as data to the hash table DetectEngineCtx->dup_sig_hash_table.

◆ SignatureParser

helper structure for sig parsing

Function Documentation

◆ DetectEngineAppendSig()

Signature* DetectEngineAppendSig ( DetectEngineCtx de_ctx,
const char *  sigstr 
)

Parse and append a Signature into the Detection Engine Context signature list.

If the signature is bidirectional it should append two signatures (with the addresses switched) into the list. Also handle duplicate signatures. In case of duplicate sigs, use the ones that have the latest revision. We use the sid and the msg to identify duplicate sigs. If 2 sigs have the same sid and gid, they are duplicates.

Parameters
de_ctxPointer to the Detection Engine Context.
sigstrPointer to a character string containing the signature to be parsed.
sig_filePointer to a character string containing the filename from which signature is read
linenoLine number from where signature is read
Return values
Pointerto the head Signature in the detection engine ctx sig_list on success; NULL on failure.

In DetectEngineAppendSig(), the signatures are prepended and we always return the first one so if the signature is bidirectional, the returned sig will point through "next" ptr to the cloned signatures with the switched addresses

Definition at line 2344 of file detect-parse.c.

References de_ctx, and SigInit().

Referenced by UTHAppendSigs(), and UTHParseSignature().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DetectEngineContentModifierBufferSetup()

◆ DetectGetLastSM()

SigMatch* DetectGetLastSM ( const Signature s)

Returns the sm with the largest index (added latest) from this sig.

Return values
sm_lastPointer to last sm

Definition at line 575 of file detect-parse.c.

References SigMatch_::idx, Signature_::init_data, SignatureInitData_::smlists_array_size, and SignatureInitData_::smlists_tail.

◆ DetectGetLastSMByListId()

SigMatch* DetectGetLastSMByListId ( const Signature s,
int  list_id,
  ... 
)

Returns the sm with the largest index (added last) from the list passed to us as an id.

Parameters
list_idid of the list to be searched
va_argslist of keyword types terminated by -1
Return values
sm_lastto last sm.

Definition at line 540 of file detect-parse.c.

References Signature_::init_data, SignatureInitData_::smlists_array_size, and SignatureInitData_::smlists_tail.

Referenced by DetectEngineContentModifierBufferSetup().

Here is the caller graph for this function:

◆ DetectGetLastSMByListPtr()

SigMatch* DetectGetLastSMByListPtr ( const Signature s,
SigMatch sm_list,
  ... 
)

Returns the sm with the largest index (added last) from the list passed to us as a pointer.

Parameters
sm_listpointer to the SigMatch we should look before
va_argslist of keyword types terminated by -1
Return values
sm_lastto last sm.

Definition at line 508 of file detect-parse.c.

Referenced by DetectEngineContentModifierBufferSetup(), and DetectGetLastSMFromMpmLists().

Here is the caller graph for this function:

◆ DetectGetLastSMFromLists()

SigMatch* DetectGetLastSMFromLists ( const Signature s,
  ... 
)

Returns the sm with the largest index (added latest) from the lists passed to us.

Return values
Pointerto Last sm.

Definition at line 468 of file detect-parse.c.

References DETECT_SM_LIST_NOTSET, Signature_::init_data, SignatureInitData_::list, SignatureInitData_::smlists, and SignatureInitData_::smlists_array_size.

◆ DetectGetLastSMFromMpmLists()

SigMatch* DetectGetLastSMFromMpmLists ( const DetectEngineCtx de_ctx,
const Signature s 
)

get the last SigMatch from lists that support MPM.

Note
only supports the lists that are registered through DetectBufferTypeSupportsMpm().

Definition at line 429 of file detect-parse.c.

References de_ctx, DETECT_CONTENT, DETECT_SM_LIST_NOTSET, DetectBufferTypeSupportsMpmGetById(), DetectGetLastSMByListPtr(), Signature_::init_data, SignatureInitData_::list, SignatureInitData_::smlists_array_size, and SignatureInitData_::smlists_tail.

Here is the call graph for this function:

◆ DetectListToHumanString()

const char* DetectListToHumanString ( int  list)

Definition at line 114 of file detect-parse.c.

◆ DetectListToString()

const char* DetectListToString ( int  list)

Definition at line 131 of file detect-parse.c.

◆ DetectParseDupSigHashFree()

void DetectParseDupSigHashFree ( DetectEngineCtx de_ctx)

Frees the hash table that is used to cull duplicate sigs.

Parameters
de_ctxPointer to the detection engine context that holds this table.

Definition at line 2163 of file detect-parse.c.

References de_ctx, DetectEngineCtx_::dup_sig_hash_table, and HashListTableFree().

Referenced by DetectEngineCtxFree().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DetectParseDupSigHashInit()

int DetectParseDupSigHashInit ( DetectEngineCtx de_ctx)

Initializes the hash table that is used to cull duplicate sigs.

Parameters
de_ctxPointer to the detection engine context.
Return values
0On success.
-1On failure.

Definition at line 2146 of file detect-parse.c.

References de_ctx, DetectEngineCtx_::dup_sig_hash_table, and HashListTableInit().

Here is the call graph for this function:

◆ DetectParseFreeRegex()

void DetectParseFreeRegex ( DetectParseRegex r)

◆ DetectParseFreeRegexes()

void DetectParseFreeRegexes ( void  )

Definition at line 2424 of file detect-parse.c.

◆ DetectParsePcreExec()

int DetectParsePcreExec ( DetectParseRegex parse_regex,
const char *  str,
int  start_offset,
int  options,
int *  ovector,
int  ovector_size 
)

Definition at line 2406 of file detect-parse.c.

Referenced by DetectU32Parse(), and DetectU8Parse().

Here is the caller graph for this function:

◆ DetectParsePcreExecLen()

int DetectParsePcreExecLen ( DetectParseRegex parse_regex,
const char *  str,
int  str_len,
int  start_offset,
int  options,
int *  ovector,
int  ovector_size 
)

Definition at line 2397 of file detect-parse.c.

◆ DetectParseRegexAddToFreeList()

void DetectParseRegexAddToFreeList ( DetectParseRegex detect_parse)

add regex and/or study to at exit free list

Definition at line 2440 of file detect-parse.c.

References FatalError, DetectParseRegex_::next, DetectParseRegex_::regex, SC_ERR_MEM_ALLOC, SCCalloc, and DetectParseRegex_::study.

Referenced by DetectSetupParseRegexesOpts().

Here is the caller graph for this function:

◆ DetectParseRegisterTests()

void DetectParseRegisterTests ( void  )

this function registers unit tests for DetectParse

Definition at line 45 of file detect-parse.c.

References UtRegisterTest().

Referenced by SigParseRegisterTests().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DetectSetupParseRegexes()

void DetectSetupParseRegexes ( const char *  parse_str,
DetectParseRegex detect_parse 
)

Definition at line 2476 of file detect-parse.c.

References DetectSetupParseRegexesOpts(), FatalError, and SC_ERR_PCRE_COMPILE.

Here is the call graph for this function:

◆ DetectSetupParseRegexesOpts()

bool DetectSetupParseRegexesOpts ( const char *  parse_str,
DetectParseRegex detect_parse,
int  opts 
)

Definition at line 2452 of file detect-parse.c.

References DetectParseRegexAddToFreeList(), DetectParseRegex_::regex, SC_ERR_PCRE_COMPILE, SC_ERR_PCRE_STUDY, SCLogError, and DetectParseRegex_::study.

Referenced by DetectSetupParseRegexes().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DetectSignatureAddTransform()

◆ DetectSignatureSetAppProto()

int DetectSignatureSetAppProto ( Signature s,
AppProto  alproto 
)

◆ SigAlloc()

◆ SigFree()

◆ SigInit()

Signature* SigInit ( DetectEngineCtx de_ctx,
const char *  sigstr 
)

Parses a signature and adds it to the Detection Engine Context.

Parameters
de_ctxPointer to the Detection Engine Context.
sigstrPointer to a character string containing the signature to be parsed.
Return values
Pointerto the Signature instance on success; NULL on failure.

Definition at line 2039 of file detect-parse.c.

References de_ctx, SCEnter, DetectEngineCtx_::sigerror_silent, and DetectEngineCtx_::signum.

Referenced by DetectEngineAppendSig(), UTHPacketMatchSig(), and UTHPacketMatchSigMpm().

Here is the caller graph for this function:

◆ SigMatchAlloc()

SigMatch* SigMatchAlloc ( void  )

Definition at line 235 of file detect-parse.c.

References SigMatch_::next, SigMatch_::prev, SCMalloc, and unlikely.

Referenced by DetectContentSetup(), and DetectFlowvarPostMatchSetup().

Here is the caller graph for this function:

◆ SigMatchAppendSMToList()

void SigMatchAppendSMToList ( Signature s,
SigMatch new,
int  list 
)

Append a SigMatch to the list type.

Parameters
sSignature.
newThe sig match to append.
listThe list to append to.

Definition at line 349 of file detect-parse.c.

Referenced by DetectContentSetup(), and DetectFlowvarPostMatchSetup().

Here is the caller graph for this function:

◆ SigMatchFree()

void SigMatchFree ( DetectEngineCtx de_ctx,
SigMatch sm 
)

free a SigMatch

Parameters
smSigMatch to free.

free the ctx, for that we call the Free func

Definition at line 250 of file detect-parse.c.

References SigMatch_::ctx, de_ctx, SigTableElmt_::Free, SCFree, sigmatch_table, and SigMatch_::type.

Referenced by DetectIPProtoRemoveAllSMs(), and SigFree().

Here is the caller graph for this function:

◆ SigMatchList2DataArray()

SigMatchData* SigMatchList2DataArray ( SigMatch head)

convert SigMatch list to SigMatchData array

Note
ownership of sm->ctx is transferred to smd->ctx

Definition at line 1612 of file detect-parse.c.

References len.

Referenced by DetectEngineAppInspectionEngine2Signature().

Here is the caller graph for this function:

◆ SigMatchListSMBelongsTo()

int SigMatchListSMBelongsTo ( const Signature s,
const SigMatch key_sm 
)

Definition at line 625 of file detect-parse.c.

References Signature_::init_data, and SignatureInitData_::smlists_array_size.

Referenced by DetectEngineAppInspectionEngine2Signature(), and DetectSetFastPatternAndItsId().

Here is the caller graph for this function:

◆ SigMatchRemoveSMFromList()

void SigMatchRemoveSMFromList ( Signature s,
SigMatch sm,
int  sm_list 
)

Definition at line 387 of file detect-parse.c.

References Signature_::init_data, SigMatch_::next, SigMatch_::prev, SignatureInitData_::smlists, and SignatureInitData_::smlists_tail.

Referenced by DetectIPProtoRemoveAllSMs().

Here is the caller graph for this function:

◆ SigMatchSilentErrorEnabled()

bool SigMatchSilentErrorEnabled ( const DetectEngineCtx de_ctx,
const enum DetectKeywordId  id 
)

Definition at line 292 of file detect-parse.c.

References de_ctx, and DetectEngineCtx_::sm_types_silent_error.

◆ SigMatchStrictEnabled()

bool SigMatchStrictEnabled ( const enum DetectKeywordId  id)

Definition at line 298 of file detect-parse.c.

References DETECT_TBLSIZE, flags, SIGMATCH_STRICT_PARSING, and sigmatch_table.

◆ SigParseRegisterTests()

void SigParseRegisterTests ( void  )

Definition at line 4133 of file detect-parse.c.

References DetectParseRegisterTests(), and UtRegisterTest().

Referenced by SigRegisterTests().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SigTableApplyStrictCommandlineOption()

void SigTableApplyStrictCommandlineOption ( const char *  str)

Variable Documentation

◆ sc_set_caps

int sc_set_caps

set caps or not

Definition at line 218 of file suricata.c.

◆ sigmatch_table

SigTableElmt sigmatch_table[DETECT_TBLSIZE]

Definition at line 73 of file detect-parse.c.

Referenced by DetectAckRegister(), DetectAppLayerEventRegister(), DetectAppLayerMpmRegisterByParentId(), DetectAppLayerProtocolRegister(), DetectAsn1Register(), DetectBase64DataRegister(), DetectBase64DecodeRegister(), DetectBsizeRegister(), DetectBypassRegister(), DetectByteExtractRegister(), DetectBytejumpRegister(), DetectBytemathRegister(), DetectBytetestRegister(), DetectCipServiceRegister(), DetectClasstypeRegister(), DetectConfigRegister(), DetectContentRegister(), DetectCsumRegister(), DetectDatarepRegister(), DetectDatasetRegister(), DetectDceIfaceRegister(), DetectDceOpnumRegister(), DetectDceStubDataRegister(), DetectDepthRegister(), DetectDetectionFilterRegister(), DetectDistanceRegister(), DetectDnsOpcodeRegister(), DetectDnsQueryRegister(), DetectDsizeRegister(), DetectEngineAppInspectionEngineSignatureFree(), DetectEngineContentModifierBufferSetup(), DetectEngineEventRegister(), DetectEngineInspectGenericList(), DetectEnipCommandRegister(), DetectFastPatternRegister(), DetectFiledataRegister(), DetectFileextRegister(), DetectFilemagicRegister(), DetectFileMd5Register(), DetectFilenameRegister(), DetectFileSha1Register(), DetectFileSha256Register(), DetectFilesizeRegister(), DetectFilestoreRegister(), DetectFlagsRegister(), DetectFlowbitsRegister(), DetectFlowintRegister(), DetectFlowRegister(), DetectFlowvarRegister(), DetectFragBitsRegister(), DetectFragOffsetRegister(), DetectFtpbounceRegister(), DetectFtpdataRegister(), DetectGeoipRegister(), DetectGidRegister(), DetectHostbitsRegister(), DetectHttp2Register(), DetectHttpClientBodyRegister(), DetectHttpCookieRegister(), DetectHttpHeaderNamesRegister(), DetectHttpHeaderRegister(), DetectHttpHHRegister(), DetectHttpMethodRegister(), DetectHttpProtocolRegister(), DetectHttpRawHeaderRegister(), DetectHttpRequestLineRegister(), DetectHttpResponseLineRegister(), DetectHttpServerBodyRegister(), DetectHttpStartRegister(), DetectHttpStatCodeRegister(), DetectHttpStatMsgRegister(), DetectHttpUARegister(), DetectHttpUriRegister(), DetectIcmpIdRegister(), DetectIcmpSeqRegister(), DetectICMPv6hdrRegister(), DetectICMPv6mtuRegister(), DetectICodeRegister(), DetectIdRegister(), DetectIpOptsRegister(), DetectIPProtoRegister(), DetectIPRepRegister(), DetectIpv4hdrRegister(), DetectIpv6hdrRegister(), DetectIsdataatRegister(), DetectITypeRegister(), DetectKrb5CNameRegister(), DetectKrb5ErrCodeRegister(), DetectKrb5MsgTypeRegister(), DetectKrb5SNameRegister(), DetectL3ProtoRegister(), DetectLuaRegister(), DetectMarkRegister(), DetectMetadataRegister(), DetectModbusRegister(), DetectMQTTConnackSessionPresentRegister(), DetectMQTTConnectClientIDRegister(), DetectMQTTConnectFlagsRegister(), DetectMQTTConnectPasswordRegister(), DetectMQTTConnectUsernameRegister(), DetectMQTTConnectWillMessageRegister(), DetectMQTTConnectWillTopicRegister(), DetectMQTTFlagsRegister(), DetectMQTTProtocolVersionRegister(), DetectMQTTPublishMessageRegister(), DetectMQTTPublishTopicRegister(), DetectMQTTQosRegister(), DetectMQTTReasonCodeRegister(), DetectMQTTSubscribeTopicRegister(), DetectMQTTTypeRegister(), DetectMQTTUnsubscribeTopicRegister(), DetectMsgRegister(), DetectNfsProcedureRegister(), DetectNfsVersionRegister(), DetectNoalertRegister(), DetectNocaseRegister(), DetectOffsetRegister(), DetectPcreRegister(), DetectPktDataRegister(), DetectPktvarRegister(), DetectPrefilterRegister(), DetectPriorityRegister(), DetectRawbytesRegister(), DetectReferenceRegister(), DetectReplaceRegister(), DetectRevRegister(), DetectRfbNameRegister(), DetectRfbSecresultRegister(), DetectRfbSectypeRegister(), DetectRpcRegister(), DetectSameipRegister(), DetectSeqRegister(), DetectSidRegister(), DetectSipMethodRegister(), DetectSipProtocolRegister(), DetectSipRequestLineRegister(), DetectSipResponseLineRegister(), DetectSipStatCodeRegister(), DetectSipStatMsgRegister(), DetectSipUriRegister(), DetectSmbNamedPipeRegister(), DetectSmbShareRegister(), DetectSNMPCommunityRegister(), DetectSNMPPduTypeRegister(), DetectSNMPVersionRegister(), DetectSshHasshRegister(), DetectSshHasshServerRegister(), DetectSshHasshServerStringRegister(), DetectSshHasshStringRegister(), DetectSshProtocolRegister(), DetectSshSoftwareRegister(), DetectSshSoftwareVersionRegister(), DetectSshVersionRegister(), DetectSslStateRegister(), DetectSslVersionRegister(), DetectStreamSizeRegister(), DetectTagRegister(), DetectTargetRegister(), DetectTcphdrRegister(), DetectTcpmssRegister(), DetectTemplate2Register(), DetectTemplateBufferRegister(), DetectTemplateRegister(), DetectTemplateRustBufferRegister(), DetectThresholdRegister(), DetectTlsCertsRegister(), DetectTlsFingerprintRegister(), DetectTlsIssuerRegister(), DetectTlsJa3HashRegister(), DetectTlsJa3SHashRegister(), DetectTlsJa3SStringRegister(), DetectTlsJa3StringRegister(), DetectTlsRegister(), DetectTlsSerialRegister(), DetectTlsSniRegister(), DetectTlsSubjectRegister(), DetectTlsValidityRegister(), DetectTlsVersionRegister(), DetectTosRegister(), DetectTransformCompressWhitespaceRegister(), DetectTransformDotPrefixRegister(), DetectTransformMd5Register(), DetectTransformPcrexformRegister(), DetectTransformSha1Register(), DetectTransformSha256Register(), DetectTransformStripWhitespaceRegister(), DetectTransformUrlDecodeRegister(), DetectTtlRegister(), DetectUdphdrRegister(), DetectUricontentRegister(), DetectUrilenRegister(), DetectWindowRegister(), DetectWithinRegister(), DetectXbitsRegister(), InspectionBufferApplyTransforms(), PrefilterSetupRuleGroup(), SigMatchFree(), SigMatchStrictEnabled(), SignatureIsIPOnly(), SigTableApplyStrictCommandlineOption(), SigTableList(), SigTableRegisterTests(), and SigTableSetup().