Go to the documentation of this file.
287 static void PrintFeatureList(
const SigTableElmt *e,
char sep)
299 printf(
"compatible with IP only rule");
305 printf(
"compatible with decoder event only rule");
311 printf(
"content modifier");
317 printf(
"sticky buffer");
337 static void SigMultilinePrint(
int i,
const char *prefix)
342 printf(
"%sFeatures: ", prefix);
363 if (
name == NULL || strlen(
name) == 0) {
367 if (strcmp(keyword,
name) == 0) {
380 if (keyword == NULL) {
381 printf(
"=====Supported keywords=====\n");
382 for (i = 0; i < size; i++) {
384 if (
name != NULL && strlen(
name) > 0) {
385 if (
name[0] ==
'_' || strcmp(
name,
"template") == 0)
389 printf(
"- %s (not built-in)\n",
name);
391 printf(
"- %s\n",
name);
395 }
else if (strcmp(
"csv", keyword) == 0) {
396 printf(
"name;description;app layer;features;documentation\n");
397 for (i = 0; i < size; i++) {
399 if (
name != NULL && strlen(
name) > 0) {
403 if (
name[0] ==
'_' || strcmp(
name,
"template") == 0)
421 }
else if (strcmp(
"all", keyword) == 0) {
422 for (i = 0; i < size; i++) {
424 if (
name != NULL && strlen(
name) > 0) {
425 if (
name[0] ==
'_' || strcmp(
name,
"template") == 0)
428 SigMultilinePrint(i,
"\t");
432 for (i = 0; i < size; i++) {
437 printf(
"Not built-in\n");
440 SigMultilinePrint(i,
"");
444 printf(
"Non existing keyword\n");
450 static void DetectFileHandlerRegister(
void)
467 #define ARRAY_CAP_STEP 16
468 static void (**PreregisteredCallbacks)(void) = NULL;
469 static size_t preregistered_callbacks_nb = 0;
470 static size_t preregistered_callbacks_cap = 0;
478 if (preregistered_callbacks_nb == preregistered_callbacks_cap) {
479 void *tmp =
SCRealloc(PreregisteredCallbacks,
485 PreregisteredCallbacks = tmp;
487 PreregisteredCallbacks[preregistered_callbacks_nb] = KeywordsRegister;
488 preregistered_callbacks_nb++;
499 FatalError(
"Could not allocate sigmatch_table");
716 DetectTransformCompressWhitespaceRegister();
717 DetectTransformStripWhitespaceRegister();
718 DetectTransformStripPseudoHeadersRegister();
719 DetectTransformMd5Register();
720 DetectTransformSha1Register();
721 DetectTransformSha256Register();
722 DetectTransformDotPrefixRegister();
724 DetectTransformUrlDecodeRegister();
725 DetectTransformXorRegister();
726 DetectTransformToLowerRegister();
727 DetectTransformToUpperRegister();
728 DetectTransformHeaderLowercaseRegister();
731 DetectFileHandlerRegister();
737 SCDetectSNMPRegister();
738 SCDetectDHCPRegister();
739 SCDetectWebsocketRegister();
740 SCDetectEnipRegister();
741 SCDetectMqttRegister();
742 SCDetectRfbRegister();
743 SCDetectSipRegister();
744 SCDetectTemplateRegister();
745 SCDetectLdapRegister();
747 for (
size_t i = 0; i < preregistered_callbacks_nb; i++) {
748 PreregisteredCallbacks[i]();
765 SCLogDebug(
"detection plugin %s has no unittest "
770 "registration function.",
void DetectSshVersionRegister(void)
Registration function for keyword: ssh.protoversion.
void DetectDceStubDataRegister(void)
Registers the keyword handlers for the "dce_stub_data" keyword.
void DetectFragBitsRegister(void)
Registration function for fragbits: keyword.
void DetectHttpHHRegister(void)
Registers the keyword handlers for the "http_host" keyword.
void DetectITypeRegister(void)
Registration function for itype: keyword.
void DetectAppLayerEventRegister(void)
Registers the keyword handlers for the "app-layer-event" keyword.
void DetectDsizeRegister(void)
Registration function for dsize: keyword.
void DetectFlowBytesRegister(void)
void DetectMsgRegister(void)
void DetectTlsJa3HashRegister(void)
Registration function for keyword: ja3_hash.
void DetectTemplateRegister(void)
Registration function for template: keyword.
#define SIGMATCH_INFO_STICKY_BUFFER
void DetectGeoipRegister(void)
Registration function for geoip keyword (no libgeoip support)
void DetectNfsVersionRegister(void)
Registration function for nfs_procedure keyword.
void DetectFtpCommandRegister(void)
void DetectXbitsRegister(void)
void DetectTlsJa3SHashRegister(void)
Registration function for keyword: ja3s.hash.
void DetectRevRegister(void)
SigTableElmt * sigmatch_table
void DetectIkeExchTypeRegister(void)
Registration function for ike.exchtype keyword.
void DetectConfigRegister(void)
Registration function for keyword: filestore.
void DetectTcpmssRegister(void)
Registration function for tcpmss: keyword.
void DetectTlsSerialRegister(void)
Registration function for keyword: tls.cert_serial.
#define SIGMATCH_INFO_CONTENT_MODIFIER
void DetectSidRegister(void)
void DetectIkeNonceRegister(void)
void DetectSshSoftwareVersionRegister(void)
Registration function for keyword: ssh.softwareversion.
void DetectQuicCyuHashRegister(void)
void DetectTlsFingerprintRegister(void)
Registration function for keyword: tls.cert_fingerprint.
void DetectSmbNtlmsspDomainRegister(void)
void DetectHttpServerBodyRegister(void)
Registers the keyword handlers for the "http_server_body" keyword.
void DetectHttpStartRegister(void)
Registers the keyword handlers for the "http_start" keyword.
void DetectDNP3Register(void)
void DetectHttpUriRegister(void)
Registration function for keywords: http_uri and http.uri.
void DetectGidRegister(void)
Registration function for gid: keyword.
void DetectQuicUaRegister(void)
Registration function for quic.ua: keyword.
void DetectIPProtoRegister(void)
Registration function for ip_proto keyword.
void DetectICMPv6hdrRegister(void)
Registration function for icmpv6.hdr: keyword.
void DetectSshHasshRegister(void)
Registration function for hassh keyword.
void DetectTlsJa3StringRegister(void)
Registration function for keyword: ja3.string.
void DetectTlsRandomRegister(void)
Registration function for keyword: tls.random.
void DetectPriorityRegister(void)
Registers the handler functions for the "priority" keyword.
void DetectDceIfaceRegister(void)
Registers the keyword handlers for the "dce_iface" keyword.
void DetectFilesizeRegister(void)
Registration function for filesize: keyword.
void DetectHttpProtocolRegister(void)
Registers the keyword handlers for the "http.protocol" keyword.
void DetectFragOffsetRegister(void)
Registration function for fragoffset.
void DetectRpcRegister(void)
Registration function for rpc keyword.
void DetectVlanLayersRegister(void)
void DetectSameipRegister(void)
Registration function for sameip: keyword.
void DetectSmbVersionRegister(void)
Registers the keyword handlers for the "smb_version" keyword.
void DetectFileRegisterFileProtocols(DetectFileHandlerTableElmt *reg)
void DetectSshHasshStringRegister(void)
Registration function for hassh.string keyword.
void DetectIcmpv4HdrRegister(void)
Registration function for icmpv4.hdr: keyword.
#define SIGMATCH_DEONLY_COMPAT
void DetectTcphdrRegister(void)
Registration function for tcp.hdr: keyword.
void DetectFlowBytesToClientRegister(void)
void DetectDatarepRegister(void)
void DetectFlowBytesToServerRegister(void)
void DetectHostbitsRegister(void)
void DetectTlsValidityRegister(void)
Registration function for tls validity keywords.
void DetectIpOptsRegister(void)
Registration function for ipopts: keyword.
void DetectSshHasshServerRegister(void)
Registration function for hasshServer keyword.
void DetectUricontentRegister(void)
Registration function for uricontent: keyword.
element in sigmatch type table.
void DetectFlowPktsRegister(void)
DetectFileHandlerTableElmt filehandler_table[DETECT_TBLSIZE_STATIC]
void DetectFilemagicRegister(void)
Registration function for keyword: filemagic.
void DetectDnsRrtypeRegister(void)
void DetectTlsSniRegister(void)
Registration function for keyword: tls.sni.
void DetectTargetRegister(void)
Registration function for target keyword.
void DetectHttpCookieRegister(void)
Registration function for keyword: http_cookie.
void DetectBufferTypeCloseRegistration(void)
#define SIGMATCH_NOT_BUILT
void SigTableRegisterTests(void)
void DetectSeqRegister(void)
Registration function for ack: keyword.
void DetectAsn1Register(void)
Registration function for asn1.
void DetectFlowAgeRegister(void)
void DetectBsizeRegister(void)
Registration function for bsize: keyword.
void DetectSmbShareRegister(void)
void DetectFlowPktsToClientRegister(void)
void DetectDnsRcodeRegister(void)
void DetectBytejumpRegister(void)
void DetectICMPv6mtuRegister(void)
Registration function for icmpv6.mtu: keyword.
void SigTableCleanup(void)
void DetectTlsVersionRegister(void)
Registration function for keyword: tls.version.
void DetectReplaceRegister(void)
void DetectICodeRegister(void)
Registration function for icode: keyword.
void DetectWindowRegister(void)
Registration function for window: keyword.
void DetectL3ProtoRegister(void)
Registration function for ip_proto keyword.
void SCDetectSMTPRegister(void)
void DetectKrb5ErrCodeRegister(void)
Registration function for krb5_err_code: keyword.
void DetectWithinRegister(void)
void DetectContentRegister(void)
void DetectSshProtocolRegister(void)
void DetectIcmpIdRegister(void)
Registration function for icode: icmp_id.
void DetectSslStateRegister(void)
Registers the keyword handlers for the "ssl_state" keyword.
void DetectLuaRegister(void)
Registration function for keyword: lua.
void DetectDnsNameRegister(void)
void DetectIkeVendorRegister(void)
Registration function for ike.vendor keyword.
void DetectFiledataRegister(void)
Registration function for keyword: file_data.
void DetectIpv6hdrRegister(void)
Registration function for ipv6.hdr: keyword.
void DetectIkeKeyExchangeRegister(void)
void DetectIcmpSeqRegister(void)
Registration function for icmp_seq.
void DetectIdRegister(void)
Registration function for keyword: id.
void DetectHttpUARegister(void)
Registers the keyword handlers for the "http_user_agent" keyword.
bool SigTableHasKeyword(const char *keyword)
Check if a keyword exists.
#define SCLogWarning(...)
Macro used to log WARNING messages.
void DetectFlowPktsToServerRegister(void)
void DetectPktDataRegister(void)
Registration function for keyword: file_data.
void DetectRequiresRegister(void)
void DetectFlowbitsRegister(void)
void DetectDatasetRegister(void)
void DetectUdphdrRegister(void)
Registration function for udp.hdr: keyword.
void DetectBytetestRegister(void)
void DetectTlsSubjectAltNameRegister(void)
Registration function for keyword: tls.subjectaltname.
void DetectDepthRegister(void)
void DetectSipMethodRegister(void)
Data structures and function prototypes for keeping state for the detection engine.
void DetectMarkRegister(void)
Registration function for nfq_set_mark: keyword.
void DetectReferenceRegister(void)
Registration function for the reference: keyword.
void DetectFileSha256Register(void)
Registration function for keyword: filesha256.
void DetectPrefilterRegister(void)
void DetectTlsCertsRegister(void)
Registration function for keyword: tls.certs.
void DetectFtpbounceRegister(void)
Registration function for ftpbounce: keyword.
void DetectKrb5TicketEncryptionRegister(void)
void DetectOffsetRegister(void)
void DetectSshSoftwareRegister(void)
void DetectQuicSniRegister(void)
Registration function for quic.sni: keyword.
#define SCRealloc(ptr, sz)
void DetectSipUriRegister(void)
void DetectBypassRegister(void)
Registration function for keyword: bypass.
void DetectAckRegister(void)
Registration function for ack: keyword.
void DetectFilestoreRegister(void)
Registration function for keyword: filestore.
void DetectTlsRegister(void)
Registration function for keyword: tls.version.
void DetectTagRegister(void)
Registration function for keyword tag.
void DetectHttpResponseLineRegister(void)
Registers the keyword handlers for the "http_response_line" keyword.
void DetectTlsIssuerRegister(void)
Registration function for keyword: tls.cert_issuer.
void DetectSmbNtlmsspUserRegister(void)
void DetectBase64DataRegister(void)
void DetectHttpStatCodeRegister(void)
Registration function for keyword: http_stat_code.
void DetectDceOpnumRegister(void)
Registers the keyword handlers for the "dce_opnum" keyword.
void DetectKrb5CNameRegister(void)
#define DETECT_TBLSIZE_STEP
void DetectTlsAlpnRegister(void)
Registration function for keyword: tls.alpn.
void DetectKrb5SNameRegister(void)
void(* Transform)(InspectionBuffer *, void *context)
void DetectHttpClientBodyRegister(void)
Registers the keyword handlers for the "http_client_body" keyword.
void DetectIkeSpiRegister(void)
void DetectDnsOpcodeRegister(void)
void DetectCsumRegister(void)
Registers handlers for all the checksum keywords. The checksum keywords that are registered are ipv4-...
void DetectUrilenRegister(void)
Registration function for urilen: keyword.
void DetectIkeNoncePayloadLengthRegister(void)
Registration function for ike.nonce_payload_length keyword.
void DetectHttp2Register(void)
void DetectNfsProcedureRegister(void)
Registration function for nfs_procedure keyword.
void DetectIpv4hdrRegister(void)
Registration function for ipv4.hdr: keyword.
void DetectHttpRequestLineRegister(void)
Registers the keyword handlers for the "http_request_line" keyword.
int SigTablePreRegister(void(*KeywordsRegister)(void))
void DetectFileSha1Register(void)
Registration function for keyword: filesha1.
void DetectFlowRegister(void)
Registration function for flow: keyword.
void DetectDnsQueryRegister(void)
Registration function for keyword: dns_query.
void DetectSshHasshServerStringRegister(void)
Registration function for hasshServer.string keyword.
void DetectRawbytesRegister(void)
void DetectTosRegister(void)
Register Tos keyword.
void DetectBytemathRegister(void)
Registers the keyword handlers for the "byte_math" keyword.
void DetectEngineEventRegister(void)
Registration function for decode-event: keyword.
void DetectFlagsRegister(void)
Registration function for flags: keyword.
void DetectKrb5MsgTypeRegister(void)
Registration function for krb5_msg_type: keyword.
void DetectFlowvarRegister(void)
void DetectNoalertRegister(void)
void DetectQuicCyuStringRegister(void)
bool(* SupportsPrefilter)(const Signature *s)
void DetectQuicVersionRegister(void)
Registration function for quic.version: keyword.
void DetectSmbNamedPipeRegister(void)
void DetectStreamSizeRegister(void)
Registration function for stream_size: keyword.
void DetectDetectionFilterRegister(void)
Registration function for detection_filter: keyword.
void DetectDistanceRegister(void)
void DetectTlsJa3SStringRegister(void)
Registration function for keyword: ja3s.string.
void DetectThresholdRegister(void)
Registration function for threshold: keyword.
void DetectFlowintRegister(void)
void DetectAppLayerProtocolRegister(void)
void DetectTlsCertChainLenRegister(void)
void DetectIPAddrBufferRegister(void)
const char * GetDocURL(void)
void DetectFastPatternRegister(void)
Registration function for fast_pattern keyword.
void DetectHttpStatMsgRegister(void)
Registration function for keyword: http_stat_msg.
void DetectVlanIdRegister(void)
void DetectPktvarRegister(void)
void DetectSslVersionRegister(void)
Registration function for keyword: ssl_version.
void DetectModbusRegister(void)
Registration function for Modbus keyword.
void DetectDnsResponseRegister(void)
void DetectNocaseRegister(void)
void DetectJa4HashRegister(void)
Registration function for keyword: ja4.hash.
void DetectBase64DecodeRegister(void)
void DetectFilenameRegister(void)
Registration function for keyword: filename.
void DetectIPRepRegister(void)
void DetectIkeChosenSaRegister(void)
Registration function for ike.ChosenSa keyword.
void DetectIkeKeyExchangePayloadLengthRegister(void)
Registration function for ike.key_exchange_payload_length keyword.
void DetectFtpdataRegister(void)
Registration function for ftpcommand: keyword.
void DetectHttpMethodRegister(void)
Registration function for keyword: http_method.
#define SIGMATCH_IPONLY_COMPAT
void DetectTtlRegister(void)
Registration function for ttl: keyword.
void DetectTemplate2Register(void)
Registration function for template2: keyword.
void DetectTlsSubjectRegister(void)
Registration function for keyword: tls.cert_subject.
void DetectPcreRegister(void)
void DetectClasstypeRegister(void)
Registers the handler functions for the "Classtype" keyword.
int SigTableList(const char *keyword)
void(* RegisterTests)(void)
void DetectIsdataatRegister(void)
Registration function for isdataat: keyword.
void DetectFileMd5Register(void)
Registration function for keyword: filemd5.
void DetectFrameRegister(void)
Registration function for keyword: ja3_hash.