recog 2.0.20 → 2.0.21

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9840be337edfe94340d597b7c884322ec9f6ded6
4
- data.tar.gz: f6b743905f3451ce0da0845c1dc52c52c8fcd0ae
3
+ metadata.gz: 969c6735f1e28f4b06b58cf6aeb2387e7a879d43
4
+ data.tar.gz: 80407444535dd5bf122f235efb832e3b947afebd
5
5
  SHA512:
6
- metadata.gz: 3b9a720a95c14f830053bbeef0fcafe56439776836298554ff93adb22a7c16688daa6f4c3ef6e827442743f5d19f6c9c30a6cc90e87c520ef455538bc0a8f6b1
7
- data.tar.gz: 8bf330d416aaeeba9f3a3285a4c25f65e009b46f77664803bd61e87ee6eaad2fb2ea2844a4d1ed03806d3273688fd508794c38553f32f3c409922569e873e46a
6
+ metadata.gz: 62da53601bfd944679ce5dd786c0217fc592e16063e5743e8b41729cd7e8ec4a9108ff99bd79ec93755c4d810333edf7b3c081de56d4db762a5bb9a7e6356992
7
+ data.tar.gz: 7f679e4e3159371bace557257ffe512a40bc340440c6120b7c6d5b015052978dcf5e17ec3e81e695648569784542a91d23a5a116648e9b2deadbe1f29e477b96
@@ -1,3 +1,3 @@
1
1
  module Recog
2
- VERSION = '2.0.20'
2
+ VERSION = '2.0.21'
3
3
  end
@@ -46,7 +46,7 @@ describe Recog::DB do
46
46
  actual_capture_positions = []
47
47
  capture_number = 1
48
48
  Regexp::Scanner.scan(fp.regex).each do |token_parts|
49
- if token_parts.first == :group && ![:close, :passive].include?(token_parts[1])
49
+ if token_parts.first == :group && ![:close, :passive, :options].include?(token_parts[1])
50
50
  actual_capture_positions << capture_number
51
51
  capture_number += 1
52
52
  end
@@ -56,7 +56,7 @@ describe Recog::DB do
56
56
  actual_capture_positions = actual_capture_positions.sort.uniq
57
57
  expected_capture_positions = expected_capture_positions.sort.uniq
58
58
  expect(actual_capture_positions).to eq(expected_capture_positions),
59
- "Regex didn't capture (#{actual_capture_positions}) exactly what fingerprint extracted (#{expected_capture_positions})"
59
+ "Regex has #{actual_capture_positions.size} capture groups, but the fingerprint expected #{expected_capture_positions.size} extractions."
60
60
  end
61
61
  end
62
62
 
@@ -0,0 +1,501 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ Patterns for common names of various operating systems.
4
+ -->
5
+ <fingerprints matches="operating_system.name">
6
+ <!-- Windows begin -->
7
+ <fingerprint pattern="^(?i:(?:Microsoft )?(Windows (?:[a-z]+\s[a-z]+\s|[a-z]+\s)?Server (?:\d{4} R2|\d{4}))(?:,\s|\s)?([a-z]+)?(?: Edition)?(?:\s)?(SP\d|SP \d|Service Pack \d)?)$">
8
+ <description>Windows Server 2003 and later</description>
9
+ <example os.product="Windows Compute Cluster Server 2003">Windows Compute Cluster Server 2003</example>
10
+ <example os.product="Windows Server 2003" os.edition="Standard">Windows Server 2003, Standard Edition</example>
11
+ <example os.product="Windows Server 2003 R2" os.edition="Datacenter">Windows Server 2003 R2, Datacenter Edition</example>
12
+ <example os.product="Windows Small Business Server 2003 R2">Windows Small Business Server 2003 R2</example>
13
+ <example os.product="Windows Server 2008" os.edition="Enterprise">Windows Server 2008 Enterprise Edition</example>
14
+ <example os.product="Windows Small Business Server 2008">Windows Small Business Server 2008</example>
15
+ <example os.product="Windows Server 2012" os.version="Service Pack 1">Windows Server 2012 Service Pack 1</example>
16
+ <example os.product="Windows Server 2012 R2" os.edition="Foundation">Windows Server 2012 R2 Foundation Edition</example>
17
+ <example os.product="Windows Storage Server 2012 R2">Windows Storage Server 2012 R2</example>
18
+ <param pos="0" name="os.vendor" value="Microsoft"/>
19
+ <param pos="0" name="os.family" value="Windows"/>
20
+ <param pos="1" name="os.product"/>
21
+ <param pos="2" name="os.edition"/>
22
+ <param pos="3" name="os.version"/>
23
+ </fingerprint>
24
+ <fingerprint pattern="^(?i:(?:Microsoft )?(Windows (?:XP|Vista|7|8|8.1|10))(?:\s)?((?!Mobile)(?:[a-z]+|[a-z]+, )?(?:[a-z]+|[a-z]+\s[a-z]+)?)?(?: Edition)?(?:\s)?(SP\d|SP \d|Service Pack \d)?)$">
25
+ <description>Windows Desktop XP and later</description>
26
+ <example os.product="Windows XP" os.edition="Professional">Windows XP Professional</example>
27
+ <example os.product="Windows XP" os.edition="Tablet PC">Windows XP Tablet PC Edition</example>
28
+ <example os.product="Windows Vista" os.version="SP1">Windows Vista SP1</example>
29
+ <example os.product="Windows Vista" os.edition="Business N">Windows Vista Business N Edition</example>
30
+ <example os.product="Windows 7" os.edition="Home, Premium N">Windows 7 Home, Premium N Edition</example>
31
+ <example os.product="Windows 8" os.edition="Enterprise">Windows 8 Enterprise Edition</example>
32
+ <example os.product="Windows 8.1">Windows 8.1</example>
33
+ <example os.product="Windows 10" os.edition="Professional">Windows 10 Professional Edition</example>
34
+ <example os.product="Windows 10" os.edition="Enterprise LTSB">Windows 10 Enterprise LTSB</example>
35
+ <param pos="0" name="os.vendor" value="Microsoft"/>
36
+ <param pos="0" name="os.family" value="Windows"/>
37
+ <param pos="1" name="os.product"/>
38
+ <param pos="2" name="os.edition"/>
39
+ <param pos="3" name="os.version"/>
40
+ </fingerprint>
41
+ <fingerprint pattern="^(?i:(?:Microsoft )?Windows 2000(?:\s)?([a-z]+|[a-z]+\s[a-z]+)?(?:\s)?(SP\d|SP \d|Service Pack \d)?)$">
42
+ <description>Windows 2000</description>
43
+ <example os.edition="Professional">Windows 2000 Professional</example>
44
+ <example os.edition="Advanced Server">Windows 2000 Advanced Server</example>
45
+ <param pos="0" name="os.vendor" value="Microsoft"/>
46
+ <param pos="0" name="os.family" value="Windows"/>
47
+ <param pos="0" name="os.product" value="Windows 2000"/>
48
+ <param pos="1" name="os.edition"/>
49
+ <param pos="2" name="os.version"/>
50
+ </fingerprint>
51
+ <fingerprint pattern="^(?i:(?:Microsoft )?Windows NT (\d.\d{1,2})?(?:\s)?([a-z]+|[a-z]+\s[a-z]+)?)$">
52
+ <description>Windows NT</description>
53
+ <example os.version="3.51" os.edition="Server">Windows NT 3.51 Server</example>
54
+ <example os.edition="Workstation">Windows NT Workstation</example>
55
+ <example os.version="4.0" os.edition="Workstation">Windows NT 4.0 Workstation</example>
56
+ <example os.edition="Advanced Server">Windows NT Advanced Server</example>
57
+ <param pos="0" name="os.vendor" value="Microsoft"/>
58
+ <param pos="0" name="os.family" value="Windows"/>
59
+ <param pos="0" name="os.product" value="NT"/>
60
+ <param pos="1" name="os.version"/>
61
+ <param pos="2" name="os.edition"/>
62
+ </fingerprint>
63
+ <fingerprint pattern="^(?i:(?:Microsoft )?Windows 10 Mobile(?:\s(?!Edition)([a-z]+))?(?: Edition)?)$">
64
+ <description>Windows 10 Mobile</description>
65
+ <example os.product="Windows 10 Mobile">Windows 10 Mobile Edition</example>
66
+ <example os.product="Windows 10 Mobile" os.edition="Enterprise">Windows 10 Mobile Enterprise Edition</example>
67
+ <param pos="0" name="os.vendor" value="Microsoft"/>
68
+ <param pos="0" name="os.family" value="Windows"/>
69
+ <param pos="0" name="os.product" value="Windows 10 Mobile"/>
70
+ <param pos="1" name="os.edition"/>
71
+ <param pos="0" name="os.device" value="Mobile"/>
72
+ </fingerprint>
73
+ <fingerprint pattern="^(?i:(?:Microsoft )?Windows Phone (\d|\d\.\d)?)$">
74
+ <description>Windows Phone 7 and later</description>
75
+ <example os.version="7.5">Windows Phone 7.5</example>
76
+ <example os.version="8">Windows Phone 8</example>
77
+ <param pos="0" name="os.vendor" value="Microsoft"/>
78
+ <param pos="0" name="os.family" value="Windows"/>
79
+ <param pos="0" name="os.product" value="Windows Phone"/>
80
+ <param pos="1" name="os.version"/>
81
+ <param pos="0" name="os.device" value="Mobile"/>
82
+ </fingerprint>
83
+ <fingerprint pattern="^(?i:(?:Microsoft )?(Windows\s?(?:95|98|98SE|98 SE|98 Second Edition|ME|Millenium Edition)))$">
84
+ <description>Windows 9x</description>
85
+ <example os.product="Windows 98 SE">Windows 98 SE</example>
86
+ <param pos="0" name="os.vendor" value="Microsoft"/>
87
+ <param pos="0" name="os.family" value="Windows"/>
88
+ <param pos="1" name="os.product"/>
89
+ </fingerprint>
90
+ <fingerprint pattern="^(?i:(?:Microsoft )?Windows(?:\s?\w+?)*?\s?(\d+?(?:\.\d+?)*?)?)$">
91
+ <description>Windows catch-all</description>
92
+ <example os.version="3.11">Windows for Workgroups 3.11</example>
93
+ <example>Microsoft Windows</example>
94
+ <param pos="0" name="os.vendor" value="Microsoft"/>
95
+ <param pos="0" name="os.family" value="Windows"/>
96
+ <param pos="0" name="os.product" value="Windows"/>
97
+ <param pos="0" name="os.certainty" value="0.5"/>
98
+ <param pos="1" name="os.version"/>
99
+ </fingerprint>
100
+ <!-- Windows end -->
101
+
102
+ <!-- Liunx begin -->
103
+ <!-- Arch uses rolling releases where the version name just the date of an ISO release. -->
104
+ <fingerprint pattern="^(?i:Arch Linux\s?(\d+?(?:\.\d+?)*?)?)$">
105
+ <description>Arch Linux</description>
106
+ <example os.version="2016.04.01">Arch Linux 2016.04.01</example>
107
+ <param pos="0" name="os.vendor" value="Arch"/>
108
+ <param pos="0" name="os.family" value="Linux"/>
109
+ <param pos="0" name="os.product" value="Linux"/>
110
+ <param pos="1" name="os.version"/>
111
+ </fingerprint>
112
+ <!-- Red Hat Enterprise Linux derivative -->
113
+ <fingerprint pattern="^(?i:Amazon Linux(?: AMI)?\s?(\d+?(?:\.\d+?)*?)?)$">
114
+ <description>Amazon Linux AMI</description>
115
+ <example os.version="5.11">Amazon Linux AMI 5.11</example>
116
+ <example os.version="6.7">Amazon Linux 6.7</example>
117
+ <example os.version="7">Amazon Linux AMI 7</example>
118
+ <param pos="0" name="os.vendor" value="Amazon"/>
119
+ <param pos="0" name="os.family" value="Linux"/>
120
+ <param pos="0" name="os.product" value="Linux"/>
121
+ <param pos="1" name="os.version"/>
122
+ </fingerprint>
123
+ <!-- Red Hat Enterprise Linux derivative -->
124
+ <fingerprint pattern="^(?i:CentOS(?: Linux)?\s?(\d+?(?:\.\d+?)*?)?)$">
125
+ <description>Centos Linux</description>
126
+ <example os.version="5.11">Centos Linux 5.11</example>
127
+ <example os.version="6.7">CentOS 6.7</example>
128
+ <example os.version="7">CentOS 7</example>
129
+ <param pos="0" name="os.vendor" value="CentOS"/>
130
+ <param pos="0" name="os.family" value="Linux"/>
131
+ <param pos="0" name="os.product" value="Linux"/>
132
+ <param pos="1" name="os.version"/>
133
+ </fingerprint>
134
+ <fingerprint pattern="^(?i:Debian(?: Linux)?\s?(\d+?(?:\.\d+?)*?)?(?:\s[a-z\(\)]+)?)$">
135
+ <description>Debian Linux</description>
136
+ <example os.version="6.0">Debian 6.0</example>
137
+ <example os.version="7">Debian 7 (Wheezy)</example>
138
+ <example os.version="8">Debian Linux 8</example>
139
+ <param pos="0" name="os.vendor" value="Debian"/>
140
+ <param pos="0" name="os.family" value="Linux"/>
141
+ <param pos="0" name="os.product" value="Linux"/>
142
+ <param pos="1" name="os.version"/>
143
+ </fingerprint>
144
+ <fingerprint pattern="^(?i:Fedora(?: Core)?(?: Linux)?\s?(\d+?)?)$">
145
+ <description>Fedora Linux</description>
146
+ <example os.version="6">Fedora Core 6</example>
147
+ <example os.version="25">Fedora 25</example>
148
+ <param pos="0" name="os.vendor" value="Fedora"/>
149
+ <param pos="0" name="os.family" value="Linux"/>
150
+ <param pos="0" name="os.product" value="Linux"/>
151
+ <param pos="1" name="os.version"/>
152
+ </fingerprint>
153
+ <!-- Gentoo currently uses rolling releases with no version, but older versions were typically based on the year of release. -->
154
+ <fingerprint pattern="^(?i:Gentoo(?: Linux)\s?(\d+?(?:\.\d+?)*?)?)$">
155
+ <description>Gentoo Linux</description>
156
+ <example>Gentoo Linux</example>
157
+ <param pos="0" name="os.vendor" value="Gentoo"/>
158
+ <param pos="0" name="os.family" value="Linux"/>
159
+ <param pos="0" name="os.product" value="Linux"/>
160
+ <param pos="1" name="os.version"/>
161
+ </fingerprint>
162
+ <!-- Kali switched to rolling release in January 2016. -->
163
+ <fingerprint pattern="^(?i:Kali(?: Linux)?\s?(\d+?(?:\.\d+?)+?(?:[a-z])?|\d+?)?)$">
164
+ <description>Kali Linux</description>
165
+ <example os.version="1.0.0">Kali Linux 1.0.0</example>
166
+ <example os.version="1.1.0a">Kali 1.1.0a</example>
167
+ <example os.version="2.0">Kali 2.0</example>
168
+ <example os.version="2016.1">Kali 2016.1</example>
169
+ <param pos="0" name="os.vendor" value="Kali"/>
170
+ <param pos="0" name="os.family" value="Linux"/>
171
+ <param pos="0" name="os.product" value="Linux"/>
172
+ <param pos="1" name="os.version"/>
173
+ </fingerprint>
174
+ <!-- Ubuntu derivative -->
175
+ <fingerprint pattern="^(?i:Kubuntu(?: Linux)?\s(\d+?(?:\.\d+?)*?)?\s?(LTS)?)$">
176
+ <description>Kubuntu Linux</description>
177
+ <example os.version="12.04.4">Kubuntu 12.04.4 LTS</example>
178
+ <example os.version="14.04">Kubuntu Linux 14.04</example>
179
+ <example os.version="16.04" os.edition="LTS">Kubuntu 16.04 LTS</example>
180
+ <param pos="0" name="os.vendor" value="Kubuntu"/>
181
+ <param pos="0" name="os.family" value="Linux"/>
182
+ <param pos="0" name="os.product" value="Linux"/>
183
+ <param pos="1" name="os.version"/>
184
+ <param pos="2" name="os.edition"/>
185
+ </fingerprint>
186
+ <!-- Red Hat Enterprise Linux derivative -->
187
+ <fingerprint pattern="^(?i:Oracle(?: Enterprise)? Linux\s?(\d+?(?:\.\d+?)*?)?)$">
188
+ <description>Oracle Enterprise Linux</description>
189
+ <example os.version="5.11">Oracle Enterprise Linux 5.11</example>
190
+ <example os.version="6.7">Oracle Linux 6.7</example>
191
+ <param pos="0" name="os.vendor" value="Oracle"/>
192
+ <param pos="0" name="os.family" value="Enterprise Linux"/>
193
+ <param pos="0" name="os.product" value="Linux"/>
194
+ <param pos="1" name="os.version"/>
195
+ </fingerprint>
196
+ <fingerprint pattern="^(?i:OpenSUSE(?: Linux)?(?: Leap)??\s?(\d+?(?:\.\d+?)*?)?)$">
197
+ <description>OpenSUSE Linux</description>
198
+ <example os.version="10.1">OpenSUSE Linux 10.1</example>
199
+ <example os.version="13.2">OpenSUSE 13.2</example>
200
+ <example os.version="42.1">OpenSUSE Leap 42.1</example>
201
+ <param pos="0" name="os.vendor" value="OpenSUSE"/>
202
+ <param pos="0" name="os.family" value="Linux"/>
203
+ <param pos="0" name="os.product" value="Linux"/>
204
+ <param pos="1" name="os.version"/>
205
+ </fingerprint>
206
+ <fingerprint pattern="^(?i:(?:Red Hat|RedHat|Red-Hat|RHEL)(?: Enterprise)?(?: Linux)?(?: [a-z]+)?\s?(\d+?(?:\.\d+?)*?)?)$">
207
+ <description>Red Hat Enterprise Linux</description>
208
+ <example>Red Hat Enterprise Linux AS</example>
209
+ <example os.version="5.11">Red Hat Enterprise Linux 5.11</example>
210
+ <example os.version="6.7">RedHat 6.7</example>
211
+ <example os.version="7">Red Hat Linux 7</example>
212
+ <example os.version="7.1">RHEL 7.1</example>
213
+ <param pos="0" name="os.vendor" value="Red Hat"/>
214
+ <param pos="0" name="os.family" value="Linux"/>
215
+ <param pos="0" name="os.product" value="Enterprise Linux"/>
216
+ <param pos="1" name="os.version"/>
217
+ </fingerprint>
218
+ <!-- Red Hat Enterprise Linux derivative -->
219
+ <fingerprint pattern="^(?i:Scientific(?: Linux)?\s?(\d+?(?:\.\d+?)*?)?)$">
220
+ <description>Scientific Linux</description>
221
+ <example os.version="5.11">Scientific Linux 5.11</example>
222
+ <example os.version="6.7">Scientific 6.7</example>
223
+ <example os.version="7">Scientific Linux 7</example>
224
+ <param pos="0" name="os.vendor" value="Scientific"/>
225
+ <param pos="0" name="os.family" value="Linux"/>
226
+ <param pos="0" name="os.product" value="Linux"/>
227
+ <param pos="1" name="os.version"/>
228
+ </fingerprint>
229
+ <fingerprint pattern="^(?i:Slackware(?: Linux)\s?(\d+?(?:\.\d+?)*?)?)$">
230
+ <description>Slackware Linux</description>
231
+ <example os.version="14.1">Slackware Linux 14.1</example>
232
+ <param pos="0" name="os.vendor" value="Slackware"/>
233
+ <param pos="0" name="os.family" value="Linux"/>
234
+ <param pos="0" name="os.product" value="Linux"/>
235
+ <param pos="1" name="os.version"/>
236
+ </fingerprint>
237
+ <fingerprint pattern="^(?i:SUSE(?: SLED)?(?: Linux Enterprise Desktop)?\s?(\d+?(?:\.\d+?)*?)?)$">
238
+ <description>SUSE Linux Enterprise Desktop</description>
239
+ <example os.version="11">SUSE SLED 11</example>
240
+ <example os.version="12">SUSE Linux Enterprise Desktop 12</example>
241
+ <param pos="0" name="os.vendor" value="SUSE"/>
242
+ <param pos="0" name="os.family" value="Linux"/>
243
+ <param pos="0" name="os.product" value="Linux Enterprise Desktop"/>
244
+ <param pos="1" name="os.version"/>
245
+ </fingerprint>
246
+ <fingerprint pattern="^(?i:SUSE(?: SLES)?(?: Linux Enterprise Server)?\s?(\d+?(?:\.\d+?)*?)?)$">
247
+ <description>SUSE Linux Enterprise Server</description>
248
+ <example os.version="11">SUSE SLES 11</example>
249
+ <example os.version="12">SUSE Linux Enterprise Server 12</example>
250
+ <param pos="0" name="os.vendor" value="SUSE"/>
251
+ <param pos="0" name="os.family" value="Linux"/>
252
+ <param pos="0" name="os.product" value="Linux Enterprise Server"/>
253
+ <param pos="1" name="os.version"/>
254
+ </fingerprint>
255
+ <fingerprint pattern="^(?i:Ubuntu(?: Linux)?\s(\d+?(?:\.\d+?)*?)?\s?(LTS)?)$">
256
+ <description>Ubuntu Linux</description>
257
+ <example os.version="12.04.4">Ubuntu 12.04.4 LTS</example>
258
+ <example os.version="14.04">Ubuntu Linux 14.04</example>
259
+ <example os.version="16.04" os.edition="LTS">Ubuntu 16.04 LTS</example>
260
+ <param pos="0" name="os.vendor" value="Ubuntu"/>
261
+ <param pos="0" name="os.family" value="Linux"/>
262
+ <param pos="0" name="os.product" value="Linux"/>
263
+ <param pos="1" name="os.version"/>
264
+ <param pos="2" name="os.edition"/>
265
+ </fingerprint>
266
+ <!-- Ubuntu derivative -->
267
+ <fingerprint pattern="^(?i:Xubuntu(?: Linux)?\s(\d+?(?:\.\d+?)*?)?\s?(LTS)?)$">
268
+ <description>Xubuntu Linux</description>
269
+ <example os.version="12.04.4">Xubuntu 12.04.4 LTS</example>
270
+ <example os.version="14.04">Xubuntu Linux 14.04</example>
271
+ <example os.version="16.04" os.edition="LTS">Xubuntu 16.04 LTS</example>
272
+ <param pos="0" name="os.vendor" value="Xubuntu"/>
273
+ <param pos="0" name="os.family" value="Linux"/>
274
+ <param pos="0" name="os.product" value="Linux"/>
275
+ <param pos="1" name="os.version"/>
276
+ <param pos="2" name="os.edition"/>
277
+ </fingerprint>
278
+ <!-- Linux catch-all goes at the bottom-->
279
+ <fingerprint pattern="^(?i:.*Linux?\s?(\d+?(?:\.\d+?)*?)?)$">
280
+ <description>Linux catch-all</description>
281
+ <example os.version="2.42.6">Linux 2.42.6</example>
282
+ <param pos="0" name="os.vendor" value="Linux"/>
283
+ <param pos="0" name="os.family" value="Linux"/>
284
+ <param pos="0" name="os.product" value="Linux"/>
285
+ <param pos="0" name="os.certainty" value="0.5"/>
286
+ <param pos="1" name="os.version"/>
287
+ </fingerprint>
288
+ <!-- Linux end -->
289
+
290
+ <!-- Mac begin -->
291
+ <!-- Match Mac OS Classic first due to weak matching on Mac OS X -->
292
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS ([7-9](?:\.\d+?)*?))$">
293
+ <description>Mac OS 9</description>
294
+ <example os.version="9">Mac OS 9</example>
295
+ <example os.version="9.0.5">Mac OS 9.0.5</example>
296
+ <param pos="0" name="os.vendor" value="Apple"/>
297
+ <param pos="0" name="os.family" value="Mac OS"/>
298
+ <param pos="0" name="os.product" value="Mac OS"/>
299
+ <param pos="1" name="os.version"/>
300
+ </fingerprint>
301
+ <fingerprint pattern="^(?i:(?:Apple OS X|Apple Mac OS X|Mac OS X|OS X|Mac OS)\s?(\d+?(?:\.\d+?)*?)?)$">
302
+ <description>Mac OS X with version number</description>
303
+ <example os.version="10.10.5">Mac OS X 10.10.5</example>
304
+ <example os.version="10">Mac OS X 10</example>
305
+ <example os.version="10.10">Mac OS 10.10</example>
306
+ <param pos="0" name="os.vendor" value="Apple"/>
307
+ <param pos="0" name="os.family" value="Mac OS X"/>
308
+ <param pos="0" name="os.product" value="Mac OS X"/>
309
+ <param pos="1" name="os.version"/>
310
+ </fingerprint>
311
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Cheetah)$">
312
+ <description>Mac OS X Cheetah</description>
313
+ <example os.version="10.0">Mac OS X Cheetah</example>
314
+ <param pos="0" name="os.vendor" value="Apple"/>
315
+ <param pos="0" name="os.family" value="Mac OS X"/>
316
+ <param pos="0" name="os.product" value="Mac OS X"/>
317
+ <param pos="0" name="os.version" value="10.0"/>
318
+ </fingerprint>
319
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Puma)$">
320
+ <description>Mac OS X Puma</description>
321
+ <example os.version="10.1">Mac OS X Puma</example>
322
+ <param pos="0" name="os.vendor" value="Apple"/>
323
+ <param pos="0" name="os.family" value="Mac OS X"/>
324
+ <param pos="0" name="os.product" value="Mac OS X"/>
325
+ <param pos="0" name="os.version" value="10.1"/>
326
+ </fingerprint>
327
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Jaguar)$">
328
+ <description>Mac OS X Jaguar</description>
329
+ <example os.version="10.2">Mac OS X Jaguar</example>
330
+ <param pos="0" name="os.vendor" value="Apple"/>
331
+ <param pos="0" name="os.family" value="Mac OS X"/>
332
+ <param pos="0" name="os.product" value="Mac OS X"/>
333
+ <param pos="0" name="os.version" value="10.2"/>
334
+ </fingerprint>
335
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Panther)$">
336
+ <description>Mac OS X Panther</description>
337
+ <example os.version="10.3">Mac OS X Panther</example>
338
+ <param pos="0" name="os.vendor" value="Apple"/>
339
+ <param pos="0" name="os.family" value="Mac OS X"/>
340
+ <param pos="0" name="os.product" value="Mac OS X"/>
341
+ <param pos="0" name="os.version" value="10.3"/>
342
+ </fingerprint>
343
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Tiger)$">
344
+ <description>Mac OS X Tiger</description>
345
+ <example os.version="10.4">Mac OS X Tiger</example>
346
+ <param pos="0" name="os.vendor" value="Apple"/>
347
+ <param pos="0" name="os.family" value="Mac OS X"/>
348
+ <param pos="0" name="os.product" value="Mac OS X"/>
349
+ <param pos="0" name="os.version" value="10.4"/>
350
+ </fingerprint>
351
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Leopard)$">
352
+ <description>Mac OS X Leopard</description>
353
+ <example os.version="10.5">Mac OS X Leopard</example>
354
+ <param pos="0" name="os.vendor" value="Apple"/>
355
+ <param pos="0" name="os.family" value="Mac OS X"/>
356
+ <param pos="0" name="os.product" value="Mac OS X"/>
357
+ <param pos="0" name="os.version" value="10.5"/>
358
+ </fingerprint>
359
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Snow Leopard)$">
360
+ <description>Mac OS X Snow Leopard</description>
361
+ <example os.version="10.6">Mac OS X Snow Leopard</example>
362
+ <param pos="0" name="os.vendor" value="Apple"/>
363
+ <param pos="0" name="os.family" value="Mac OS X"/>
364
+ <param pos="0" name="os.product" value="Mac OS X"/>
365
+ <param pos="0" name="os.version" value="10.6"/>
366
+ </fingerprint>
367
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Lion)$">
368
+ <description>Mac OS X Lion</description>
369
+ <example os.version="10.7">Mac OS X Lion</example>
370
+ <param pos="0" name="os.vendor" value="Apple"/>
371
+ <param pos="0" name="os.family" value="Mac OS X"/>
372
+ <param pos="0" name="os.product" value="Mac OS X"/>
373
+ <param pos="0" name="os.version" value="10.7"/>
374
+ </fingerprint>
375
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Mountain Lion)$">
376
+ <description>Mac OS X Mountain Lion</description>
377
+ <example os.version="10.8">Mac OS X Mountain Lion</example>
378
+ <param pos="0" name="os.vendor" value="Apple"/>
379
+ <param pos="0" name="os.family" value="Mac OS X"/>
380
+ <param pos="0" name="os.product" value="Mac OS X"/>
381
+ <param pos="0" name="os.version" value="10.8"/>
382
+ </fingerprint>
383
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Mavericks)$">
384
+ <description>Mac OS X Mavericks</description>
385
+ <example os.version="10.9">Mac OS X Mavericks</example>
386
+ <param pos="0" name="os.vendor" value="Apple"/>
387
+ <param pos="0" name="os.family" value="Mac OS X"/>
388
+ <param pos="0" name="os.product" value="Mac OS X"/>
389
+ <param pos="0" name="os.version" value="10.9"/>
390
+ </fingerprint>
391
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X Yosemite)$">
392
+ <description>Mac OS X Yosemite</description>
393
+ <example os.version="10.10">Mac OS X Yosemite</example>
394
+ <param pos="0" name="os.vendor" value="Apple"/>
395
+ <param pos="0" name="os.family" value="Mac OS X"/>
396
+ <param pos="0" name="os.product" value="Mac OS X"/>
397
+ <param pos="0" name="os.version" value="10.10"/>
398
+ </fingerprint>
399
+ <fingerprint pattern="^(?i:(?:Apple )?Mac OS X El Capitan)$">
400
+ <description>Mac OS X El Capitan</description>
401
+ <example os.version="10.11">Mac OS X El Capitan</example>
402
+ <param pos="0" name="os.vendor" value="Apple"/>
403
+ <param pos="0" name="os.family" value="Mac OS X"/>
404
+ <param pos="0" name="os.product" value="Mac OS X"/>
405
+ <param pos="0" name="os.version" value="10.11"/>
406
+ </fingerprint>
407
+ <!-- This can also match Cisco IOS if the vendor name is not present. -->
408
+ <fingerprint pattern="^(?i:(?:Apple )?iOS\s?(\d+?(?:\.\d+?)*?)?)$">
409
+ <description>Apple iOS for iPhone and iPad</description>
410
+ <example os.version="7.1.2">iOS 7.1.2</example>
411
+ <example os.version="8">iOS 8</example>
412
+ <example os.version="9.3">Apple iOS 9.3</example>
413
+ <param pos="0" name="os.vendor" value="Apple"/>
414
+ <param pos="0" name="os.family" value="Apple iOS"/>
415
+ <param pos="0" name="os.product" value="iOS"/>
416
+ <param pos="1" name="os.version"/>
417
+ <param pos="0" name="os.device" value="Mobile"/>
418
+ </fingerprint>
419
+ <!-- Mac end -->
420
+
421
+ <!-- BSD begin -->
422
+ <fingerprint pattern="^(?i:(.*?BSD)\s?(\d+?(?:\.\d+?)*?(?:[\-\/_ ]?\w+?)?(?:-[a-z]\d+?)?)?)$">
423
+ <description>Many BSD family OSes</description>
424
+ <example os.version="10.3-RELEASE" os.product="FreeBSD">FreeBSD 10.3-RELEASE</example>
425
+ <example os.version="10.3-RELEASE-p4" os.product="FreeBSD">FreeBSD 10.3-RELEASE-p4</example>
426
+ <example os.version="7.0" os.product="NetBSD">NetBSD 7.0</example>
427
+ <example os.version="5.9" os.product="OpenBSD">OpenBSD 5.9</example>
428
+ <example os.product="PC-BSD">PC-BSD</example>
429
+ <param pos="1" name="os.vendor"/>
430
+ <param pos="1" name="os.family"/>
431
+ <param pos="1" name="os.product"/>
432
+ <param pos="2" name="os.version"/>
433
+ </fingerprint>
434
+ <!-- BSD end -->
435
+
436
+ <!-- Other Unix-likes begin -->
437
+ <fingerprint pattern="^(?i:(?:Oracle|Sun)?\s?OpenSolaris\s?(\d+?(?:\.\d+?)*?)?)$">
438
+ <description>OpenSolaris</description>
439
+ <example os.version="2009.06">OpenSolaris 2009.06</example>
440
+ <param pos="0" name="os.vendor" value="Sun"/>
441
+ <param pos="0" name="os.family" value="Solaris"/>
442
+ <param pos="0" name="os.product" value="Solaris"/>
443
+ <param pos="1" name="os.version"/>
444
+ </fingerprint>
445
+ <fingerprint pattern="^(?i:(?:Oracle|Sun)?\s?(?:Solaris|SunOS)\s?(\d+?(?:\.\d+?)*?)?)$">
446
+ <description>Solaris</description>
447
+ <example os.version="11.3">Solaris 11.3</example>
448
+ <example os.version="5.11">SunOS 5.11</example>
449
+ <param pos="0" name="os.vendor" value="Sun"/>
450
+ <param pos="0" name="os.family" value="Solaris"/>
451
+ <param pos="0" name="os.product" value="Solaris"/>
452
+ <param pos="1" name="os.version"/>
453
+ </fingerprint>
454
+ <fingerprint pattern="^(?i:(?:IBM\s?)?(AIX|MVS|OS/(?:\d{1,3})|VM/CMS|VM/ESA|z/OS)\s?(\d+?(?:\.\d+?)*?)?)$">
455
+ <description>IBM OSes</description>
456
+ <example os.product="AIX">AIX</example>
457
+ <example os.product="MVS">IBM MVS</example>
458
+ <example os.product="OS/2">IBM OS/2</example>
459
+ <example os.product="OS/390">IBM OS/390</example>
460
+ <example os.product="OS/400">OS/400</example>
461
+ <example os.product="VM/CMS">IBM VM/CMS</example>
462
+ <example os.product="VM/ESA">IBM VM/ESA</example>
463
+ <example os.product="z/OS">IBM z/OS</example>
464
+ <param pos="0" name="os.vendor" value="IBM"/>
465
+ <param pos="1" name="os.family"/>
466
+ <param pos="1" name="os.product"/>
467
+ <param pos="2" name="os.version"/>
468
+ </fingerprint>
469
+ <fingerprint pattern="^(?i:(?:HP\s?)?(Digital UNIX|HP-UX|iLO|OpenVMS|ProLiant|Tru64 UNIX)\s?(\d+?(?:\.\d+?)*?)?)$">
470
+ <description>HP OSes</description>
471
+ <example os.product="HP-UX">HP-UX</example>
472
+ <example os.product="OpenVMS">OpenVMS</example>
473
+ <param pos="0" name="os.vendor" value="HP"/>
474
+ <param pos="1" name="os.family"/>
475
+ <param pos="1" name="os.product"/>
476
+ <param pos="2" name="os.version"/>
477
+ </fingerprint>
478
+ <!-- Other Unix-likes end -->
479
+
480
+ <!-- Network equipment begin -->
481
+ <fingerprint pattern="^(?i:(?:Juniper\s?)?(Junos|Junos OS|ScreenOS)\s?(\d+?(?:\.\d+?)*?)?)$">
482
+ <description>Juniper</description>
483
+ <example>Junos</example>
484
+ <example>ScreenOS</example>
485
+ <param pos="0" name="os.vendor" value="Juniper"/>
486
+ <param pos="1" name="os.family"/>
487
+ <param pos="1" name="os.product"/>
488
+ <param pos="2" name="os.version"/>
489
+ </fingerprint>
490
+ <!-- This needs to be improved if it's not how one would generally present a Cisco OS version. -->
491
+ <fingerprint pattern="^(?i:(?:Cisco\s?)?(ASA|Adaptive Security Appliance|IOS|IOS-XE|IOS-XR|NX-OS|PIX-OS|SAN-OS)\s?(?:Version (\S+))?)$">
492
+ <description>Cisco</description>
493
+ <example>Cisco ASA</example>
494
+ <example>Cisco IOS</example>
495
+ <param pos="0" name="os.vendor" value="Cisco"/>
496
+ <param pos="1" name="os.family"/>
497
+ <param pos="1" name="os.product"/>
498
+ <param pos="2" name="os.version"/>
499
+ </fingerprint>
500
+ <!-- Network equipment end -->
501
+ </fingerprints>
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.20
4
+ version: 2.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rapid7 Research
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-27 00:00:00.000000000 Z
11
+ date: 2016-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: yard
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: redcarpet
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: cucumber
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: aruba
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: simplecov
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: nokogiri
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Recog is a framework for identifying products, services, operating systems,
@@ -121,10 +121,10 @@ executables:
121
121
  extensions: []
122
122
  extra_rdoc_files: []
123
123
  files:
124
- - ".gitignore"
125
- - ".rspec"
126
- - ".travis.yml"
127
- - ".yardopts"
124
+ - .gitignore
125
+ - .rspec
126
+ - .travis.yml
127
+ - .yardopts
128
128
  - CONTRIBUTING.md
129
129
  - COPYING
130
130
  - Gemfile
@@ -194,6 +194,7 @@ files:
194
194
  - xml/mysql_error.xml
195
195
  - xml/nntp_banners.xml
196
196
  - xml/ntp_banners.xml
197
+ - xml/operating_system.xml
197
198
  - xml/pop_banners.xml
198
199
  - xml/rsh_resp.xml
199
200
  - xml/sip_banners.xml
@@ -225,45 +226,19 @@ require_paths:
225
226
  - lib
226
227
  required_ruby_version: !ruby/object:Gem::Requirement
227
228
  requirements:
228
- - - ">="
229
+ - - '>='
229
230
  - !ruby/object:Gem::Version
230
231
  version: '2.1'
231
232
  required_rubygems_version: !ruby/object:Gem::Requirement
232
233
  requirements:
233
- - - ">="
234
+ - - '>='
234
235
  - !ruby/object:Gem::Version
235
236
  version: '0'
236
237
  requirements: []
237
238
  rubyforge_project:
238
- rubygems_version: 2.2.5
239
+ rubygems_version: 2.2.2
239
240
  signing_key:
240
241
  specification_version: 4
241
242
  summary: Network service fingerprint database, classes, and utilities
242
- test_files:
243
- - features/data/failing_banners_fingerprints.xml
244
- - features/data/matching_banners_fingerprints.xml
245
- - features/data/multiple_banners_fingerprints.xml
246
- - features/data/no_tests.xml
247
- - features/data/sample_banner.txt
248
- - features/data/successful_tests.xml
249
- - features/data/tests_with_failures.xml
250
- - features/data/tests_with_warnings.xml
251
- - features/match.feature
252
- - features/support/env.rb
253
- - features/verify.feature
254
- - spec/data/best_os_match_1.yml
255
- - spec/data/best_os_match_2.yml
256
- - spec/data/best_service_match_1.yml
257
- - spec/data/smb_native_os.txt
258
- - spec/data/test_fingerprints.xml
259
- - spec/data/whitespaced_fingerprint.xml
260
- - spec/lib/fingerprint_self_test_spec.rb
261
- - spec/lib/recog/db_spec.rb
262
- - spec/lib/recog/fingerprint/regexp_factory_spec.rb
263
- - spec/lib/recog/fingerprint_spec.rb
264
- - spec/lib/recog/formatter_spec.rb
265
- - spec/lib/recog/match_reporter_spec.rb
266
- - spec/lib/recog/nizer_spec.rb
267
- - spec/lib/recog/verify_reporter_spec.rb
268
- - spec/spec_helper.rb
243
+ test_files: []
269
244
  has_rdoc: