mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Several fixes and improvements for software version parsing.
- Addresses Philip Romero's question from the Bro mailing list. - Adds Microsoft Edge as a detected browser. - We are now unescaping encoded characters in software names.
This commit is contained in:
parent
00d7e3a013
commit
71c9945f26
3 changed files with 87 additions and 40 deletions
|
@ -84,6 +84,16 @@ export {
|
||||||
## is compared lexicographically.
|
## is compared lexicographically.
|
||||||
global cmp_versions: function(v1: Version, v2: Version): int;
|
global cmp_versions: function(v1: Version, v2: Version): int;
|
||||||
|
|
||||||
|
## Sometimes software will expose itself on the network with
|
||||||
|
## slight naming variations. This table provides a mechanism
|
||||||
|
## for a piece of software to be renamed to a single name
|
||||||
|
## even if it exposes itself with an alternate name. The
|
||||||
|
## yielded string is the name that will be logged and generally
|
||||||
|
## used for everything.
|
||||||
|
global alternate_names: table[string] of string {
|
||||||
|
["Flash Player"] = "Flash",
|
||||||
|
} &default=function(a: string): string { return a; };
|
||||||
|
|
||||||
## Type to represent a collection of :bro:type:`Software::Info` records.
|
## Type to represent a collection of :bro:type:`Software::Info` records.
|
||||||
## It's indexed with the name of a piece of software such as "Firefox"
|
## It's indexed with the name of a piece of software such as "Firefox"
|
||||||
## and it yields a :bro:type:`Software::Info` record with more
|
## and it yields a :bro:type:`Software::Info` record with more
|
||||||
|
@ -125,7 +135,7 @@ function parse(unparsed_version: string): Description
|
||||||
local v: Version;
|
local v: Version;
|
||||||
|
|
||||||
# Parse browser-alike versions separately
|
# Parse browser-alike versions separately
|
||||||
if ( /^(Mozilla|Opera)\/[0-9]\./ in unparsed_version )
|
if ( /^(Mozilla|Opera)\/[0-9]+\./ in unparsed_version )
|
||||||
{
|
{
|
||||||
return parse_mozilla(unparsed_version);
|
return parse_mozilla(unparsed_version);
|
||||||
}
|
}
|
||||||
|
@ -133,11 +143,17 @@ function parse(unparsed_version: string): Description
|
||||||
{
|
{
|
||||||
# The regular expression should match the complete version number
|
# The regular expression should match the complete version number
|
||||||
# and software name.
|
# and software name.
|
||||||
local version_parts = split_string_n(unparsed_version, /\/?( [\(])?v?[0-9\-\._, ]{2,}/, T, 1);
|
local clean_unparsed_version = gsub(unparsed_version, /\\x/, "%");
|
||||||
|
clean_unparsed_version = unescape_URI(clean_unparsed_version);
|
||||||
|
local version_parts = split_string_n(clean_unparsed_version, /([\/\-_]|( [\(v]+))?[0-9\-\._, ]{2,}/, T, 1);
|
||||||
if ( 0 in version_parts )
|
if ( 0 in version_parts )
|
||||||
{
|
{
|
||||||
|
# Remove any bits of junk at end of first part.
|
||||||
|
if ( /([\/\-_]|( [\(v]+))$/ in version_parts[0] )
|
||||||
|
version_parts[0] = strip(sub(version_parts[0], /([\/\-_]|( [\(v]+))/, ""));
|
||||||
|
|
||||||
if ( /^\(/ in version_parts[0] )
|
if ( /^\(/ in version_parts[0] )
|
||||||
software_name = strip(sub(version_parts[0], /[\(]/, ""));
|
software_name = strip(sub(version_parts[0], /\(/, ""));
|
||||||
else
|
else
|
||||||
software_name = strip(version_parts[0]);
|
software_name = strip(version_parts[0]);
|
||||||
}
|
}
|
||||||
|
@ -192,7 +208,7 @@ function parse(unparsed_version: string): Description
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [$version=v, $unparsed_version=unparsed_version, $name=software_name];
|
return [$version=v, $unparsed_version=unparsed_version, $name=alternate_names[software_name]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -227,6 +243,13 @@ function parse_mozilla(unparsed_version: string): Description
|
||||||
v = parse(parts[1])$version;
|
v = parse(parts[1])$version;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if ( /Edge\// in unparsed_version )
|
||||||
|
{
|
||||||
|
software_name="Edge";
|
||||||
|
parts = split_string_all(unparsed_version, /Edge\/[0-9\.]*/);
|
||||||
|
if ( 1 in parts )
|
||||||
|
v = parse(parts[1])$version;
|
||||||
|
}
|
||||||
else if ( /Version\/.*Safari\// in unparsed_version )
|
else if ( /Version\/.*Safari\// in unparsed_version )
|
||||||
{
|
{
|
||||||
software_name = "Safari";
|
software_name = "Safari";
|
||||||
|
@ -280,6 +303,14 @@ function parse_mozilla(unparsed_version: string): Description
|
||||||
v = parse(parts[1])$version;
|
v = parse(parts[1])$version;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if ( /Flash%20Player/ in unparsed_version )
|
||||||
|
{
|
||||||
|
software_name = "Flash";
|
||||||
|
parts = split_string_all(unparsed_version, /[\/ ]/);
|
||||||
|
if ( 2 in parts )
|
||||||
|
v = parse(parts[2])$version;
|
||||||
|
}
|
||||||
|
|
||||||
else if ( /AdobeAIR\/[0-9\.]*/ in unparsed_version )
|
else if ( /AdobeAIR\/[0-9\.]*/ in unparsed_version )
|
||||||
{
|
{
|
||||||
software_name = "AdobeAIR";
|
software_name = "AdobeAIR";
|
||||||
|
|
|
@ -1,46 +1,12 @@
|
||||||
success on: wu-2.4.2-academ[BETA-18-VR14](1)
|
|
||||||
success on: Python-urllib/3.1
|
|
||||||
success on: libwww-perl/5.820
|
|
||||||
success on: Apache
|
|
||||||
success on: Apple iPhone v4.3.1 Weather v1.0.0.8G4
|
|
||||||
success on: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.11) Gecko/20101013 Lightning/1.0b2 Thunderbird/3.1.5
|
|
||||||
success on: Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1; Media Center PC 3.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
|
|
||||||
success on: Mozilla/5.0 (Windows; U; en) AppleWebKit/420+ (KHTML, like Gecko) AdobeAIR/1.0
|
|
||||||
success on: Java/1.6.0_13
|
|
||||||
success on: The Bat! (v2.00.9) Personal
|
|
||||||
success on: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16
|
|
||||||
success on: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; Creative AutoUpdate v1.40.02)
|
|
||||||
success on: curl/7.15.1 (i486-pc-linux-gnu) libcurl/7.15.1 OpenSSL/0.9.8a zlib/1.2.3 libidn/0.5.18
|
|
||||||
success on: Mozilla/4.0 (compatible; MSIE 8.0; Android 2.2.2; Linux; Opera Mobi/ADR-1103311355; en) Opera 11.00
|
|
||||||
success on: mt2/1.2.3.967 Oct 13 2010-13:40:24 ord-pixel-x2 pid 0x35a3 13731
|
|
||||||
success on: CacheFlyServe v26b
|
|
||||||
success on: Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
|
|
||||||
success on: Mozilla/5.0 (iPod; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
|
|
||||||
success on: Total Commander
|
|
||||||
success on: OpenSSH_5.2
|
|
||||||
success on: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-us) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
|
|
||||||
success on: Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera Mobi/23.348; U; en) Presto/2.5.25 Version/10.54
|
|
||||||
success on: Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18741/18.794; U; en) Presto/2.4.15
|
|
||||||
success on: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; InfoPath.2; InfoPath.3)
|
|
||||||
success on: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C)
|
|
||||||
success on: Wget/1.9+cvs-stable (Red Hat modified)
|
|
||||||
success on: Wget/1.11.4 (Red Hat modified)
|
|
||||||
success on: Opera/9.80 (Windows NT 6.1; U; sv) Presto/2.7.62 Version/11.01
|
|
||||||
success on: Java1.3.1_04
|
|
||||||
success on: OpenSSH_4.4
|
|
||||||
success on: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB5; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.2)
|
|
||||||
success on: (vsFTPd 2.0.5)
|
|
||||||
success on: wu-2.6.2(1)
|
|
||||||
success on: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
|
|
||||||
success on: The Bat! (3.0.1 RC3) Professional
|
|
||||||
success on: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) AdobeAIR/1.0
|
|
||||||
success on: Flash/10,2,153,1
|
success on: Flash/10,2,153,1
|
||||||
success on: Apache/2.0.46 (Win32) mod_ssl/2.0.46 OpenSSL/0.9.7b mod_jk2/2.0.4
|
success on: Apache/2.0.46 (Win32) mod_ssl/2.0.46 OpenSSL/0.9.7b mod_jk2/2.0.4
|
||||||
success on: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
|
success on: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
|
||||||
|
success on: %E6%9C%89%E9%81%93%E8%AF%8D%E5%85%B8/128 CFNetwork/760.2.6 Darwin/15.3.0 (x86_64)
|
||||||
success on: Java1.2.2-JDeveloper
|
success on: Java1.2.2-JDeveloper
|
||||||
success on: Zope/(Zope 2.7.8-final, python 2.3.5, darwin) ZServer/1.1 Plone/Unknown
|
success on: Zope/(Zope 2.7.8-final, python 2.3.5, darwin) ZServer/1.1 Plone/Unknown
|
||||||
success on: iTunes/9.0 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/531.9
|
success on: iTunes/9.0 (Macintosh; Intel Mac OS X 10.5.8) AppleWebKit/531.9
|
||||||
success on: ProFTPD 1.2.5rc1 Server (Debian)
|
success on: ProFTPD 1.2.5rc1 Server (Debian)
|
||||||
|
success on: Flash%20Player/26.0.0.137 CFNetwork/811.5.4 Darwin/16.6.0 (x86_64)
|
||||||
success on: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5
|
success on: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5
|
||||||
success on: Opera/9.80 (Windows NT 5.1; Opera Mobi/49; U; en) Presto/2.4.18 Version/10.00
|
success on: Opera/9.80 (Windows NT 5.1; Opera Mobi/49; U; en) Presto/2.4.18 Version/10.00
|
||||||
success on: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
|
success on: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)
|
||||||
|
@ -48,3 +14,42 @@ success on: Apple Mail (2.1084)
|
||||||
success on: Apache/2.0.63 (Unix) mod_auth_kerb/5.3 mod_ssl/2.0.63 OpenSSL/0.9.7a mod_fastcgi/2.4.2
|
success on: Apache/2.0.63 (Unix) mod_auth_kerb/5.3 mod_ssl/2.0.63 OpenSSL/0.9.7a mod_fastcgi/2.4.2
|
||||||
success on: Apache/1.3.19 (Unix)
|
success on: Apache/1.3.19 (Unix)
|
||||||
success on: Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
|
success on: Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko
|
||||||
|
success on: Wget/1.11.4 (Red Hat modified)
|
||||||
|
success on: \xe6\xbc\xab\xe7\x94\xbb\xe4\xba\xba 2.6.2 rv:1.2 (iPhone; iOS 10.3.2; en_US)
|
||||||
|
success on: wu-2.6.2(1)
|
||||||
|
success on: QQ%E9%82%AE%E7%AE%B1/5.3.2.8 CFNetwork/811.5.4 Darwin/16.6.0
|
||||||
|
success on: The Bat! (3.0.1 RC3) Professional
|
||||||
|
success on: Mozilla/5.0 (iPod; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
|
||||||
|
success on: The Bat! (v2.00.9) Personal
|
||||||
|
success on: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
|
||||||
|
success on: Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1; Media Center PC 3.0; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)
|
||||||
|
success on: wu-2.4.2-academ[BETA-18-VR14](1)
|
||||||
|
success on: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3; Creative AutoUpdate v1.40.02)
|
||||||
|
success on: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB5; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.2)
|
||||||
|
success on: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16
|
||||||
|
success on: Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Mobile Safari/537.36 Edge/15.15063
|
||||||
|
success on: Total Commander
|
||||||
|
success on: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C)
|
||||||
|
success on: libwww-perl/5.820
|
||||||
|
success on: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) AdobeAIR/1.0
|
||||||
|
success on: Java/1.6.0_13
|
||||||
|
success on: Python-urllib/3.1
|
||||||
|
success on: Mozilla/4.0 (compatible; MSIE 8.0; Android 2.2.2; Linux; Opera Mobi/ADR-1103311355; en) Opera 11.00
|
||||||
|
success on: CacheFlyServe v26b
|
||||||
|
success on: Mozilla/5.0 (Linux; U; Android 2.3.3; zh-tw; HTC Pyramid Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
|
||||||
|
success on: OpenSSH_5.2
|
||||||
|
success on: (vsFTPd 2.0.5)
|
||||||
|
success on: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-us) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
|
||||||
|
success on: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; InfoPath.2; InfoPath.3)
|
||||||
|
success on: Apache
|
||||||
|
success on: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.11) Gecko/20101013 Lightning/1.0b2 Thunderbird/3.1.5
|
||||||
|
success on: Mozilla/5.0 (Windows; U; en) AppleWebKit/420+ (KHTML, like Gecko) AdobeAIR/1.0
|
||||||
|
success on: curl/7.15.1 (i486-pc-linux-gnu) libcurl/7.15.1 OpenSSL/0.9.8a zlib/1.2.3 libidn/0.5.18
|
||||||
|
success on: Apple iPhone v4.3.1 Weather v1.0.0.8G4
|
||||||
|
success on: Java1.3.1_04
|
||||||
|
success on: OpenSSH_4.4
|
||||||
|
success on: mt2/1.2.3.967 Oct 13 2010-13:40:24 ord-pixel-x2 pid 0x35a3 13731
|
||||||
|
success on: Opera/9.80 (J2ME/MIDP; Opera Mini/9.80 (S60; SymbOS; Opera Mobi/23.348; U; en) Presto/2.5.25 Version/10.54
|
||||||
|
success on: Opera/9.80 (Windows NT 6.1; U; sv) Presto/2.7.62 Version/11.01
|
||||||
|
success on: Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.18741/18.794; U; en) Presto/2.4.15
|
||||||
|
success on: Wget/1.9+cvs-stable (Red Hat modified)
|
||||||
|
|
|
@ -40,6 +40,9 @@ global matched_software: table[string] of Software::Description = {
|
||||||
[$name="The Bat!", $version=[$major=2,$minor=0,$minor2=9,$addl="Personal"], $unparsed_version=""],
|
[$name="The Bat!", $version=[$major=2,$minor=0,$minor2=9,$addl="Personal"], $unparsed_version=""],
|
||||||
["Flash/10,2,153,1"] =
|
["Flash/10,2,153,1"] =
|
||||||
[$name="Flash", $version=[$major=10,$minor=2,$minor2=153,$minor3=1], $unparsed_version=""],
|
[$name="Flash", $version=[$major=10,$minor=2,$minor2=153,$minor3=1], $unparsed_version=""],
|
||||||
|
# The addl on the following entry isn't so great, but it'll do.
|
||||||
|
["Flash%20Player/26.0.0.137 CFNetwork/811.5.4 Darwin/16.6.0 (x86_64)"] =
|
||||||
|
[$name="Flash", $version=[$major=26,$minor=0,$minor2=0,$minor3=137,$addl="CFNetwork/811"], $unparsed_version=""],
|
||||||
["mt2/1.2.3.967 Oct 13 2010-13:40:24 ord-pixel-x2 pid 0x35a3 13731"] =
|
["mt2/1.2.3.967 Oct 13 2010-13:40:24 ord-pixel-x2 pid 0x35a3 13731"] =
|
||||||
[$name="mt2", $version=[$major=1,$minor=2,$minor2=3,$minor3=967,$addl="Oct"], $unparsed_version=""],
|
[$name="mt2", $version=[$major=1,$minor=2,$minor2=3,$minor3=967,$addl="Oct"], $unparsed_version=""],
|
||||||
["CacheFlyServe v26b"] =
|
["CacheFlyServe v26b"] =
|
||||||
|
@ -110,6 +113,14 @@ global matched_software: table[string] of Software::Description = {
|
||||||
[$name="AdobeAIR", $version=[$major=1,$minor=0], $unparsed_version=""],
|
[$name="AdobeAIR", $version=[$major=1,$minor=0], $unparsed_version=""],
|
||||||
["Mozilla/5.0 (Windows; U; en) AppleWebKit/420+ (KHTML, like Gecko) AdobeAIR/1.0"] =
|
["Mozilla/5.0 (Windows; U; en) AppleWebKit/420+ (KHTML, like Gecko) AdobeAIR/1.0"] =
|
||||||
[$name="AdobeAIR", $version=[$major=1,$minor=0], $unparsed_version=""],
|
[$name="AdobeAIR", $version=[$major=1,$minor=0], $unparsed_version=""],
|
||||||
|
["\\xe6\\xbc\\xab\\xe7\\x94\\xbb\\xe4\\xba\\xba 2.6.2 rv:1.2 (iPhone; iOS 10.3.2; en_US)"] =
|
||||||
|
[$name="\xe6\xbc\xab\xe7\x94\xbb\xe4\xba\xba", $version=[$major=2,$minor=6,$minor2=2,$addl="rv:1"], $unparsed_version=""],
|
||||||
|
["%E6%9C%89%E9%81%93%E8%AF%8D%E5%85%B8/128 CFNetwork/760.2.6 Darwin/15.3.0 (x86_64)"] =
|
||||||
|
[$name="\xe6\x9c\x89\xe9\x81\x93\xe8\xaf\x8d\xe5\x85\xb8", $version=[$major=128,$addl="CFNetwork/760"], $unparsed_version=""],
|
||||||
|
["QQ%E9%82%AE%E7%AE%B1/5.3.2.8 CFNetwork/811.5.4 Darwin/16.6.0"] =
|
||||||
|
[$name="QQ\xe9\x82\xae\xe7\xae\xb1", $version=[$major=5,$minor=3,$minor2=2,$minor3=8,$addl="CFNetwork/811"], $unparsed_version=""],
|
||||||
|
["Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Mobile Safari/537.36 Edge/15.15063"] =
|
||||||
|
[$name="Edge", $version=[$major=15,$minor=15063], $unparsed_version=""],
|
||||||
};
|
};
|
||||||
|
|
||||||
event bro_init()
|
event bro_init()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue