recog 2.3.20 → 2.3.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +8 -0
  3. data/.github/workflows/ci.yml +1 -1
  4. data/.github/workflows/verify.yml +89 -0
  5. data/.vscode/bin/monitor-recog-fingerprints.sh +54 -0
  6. data/.vscode/extensions.json +5 -0
  7. data/.vscode/settings.json +8 -0
  8. data/.vscode/tasks.json +77 -0
  9. data/CONTRIBUTING.md +8 -0
  10. data/README.md +17 -0
  11. data/bin/recog_standardize +28 -13
  12. data/bin/recog_verify +42 -8
  13. data/cpe-remap.yaml +62 -3
  14. data/features/data/schema_failure.xml +4 -0
  15. data/features/data/tests_with_failures.xml +6 -0
  16. data/features/support/hooks.rb +9 -0
  17. data/features/verify.feature +85 -21
  18. data/identifiers/fields.txt +6 -5
  19. data/identifiers/hw_device.txt +8 -0
  20. data/identifiers/hw_family.txt +8 -0
  21. data/identifiers/hw_product.txt +54 -0
  22. data/identifiers/os_device.txt +2 -0
  23. data/identifiers/os_family.txt +2 -0
  24. data/identifiers/os_product.txt +18 -2
  25. data/identifiers/service_product.txt +26 -0
  26. data/identifiers/vendor.txt +62 -1
  27. data/lib/recog/db.rb +2 -1
  28. data/lib/recog/fingerprint.rb +33 -6
  29. data/lib/recog/fingerprint_parse_error.rb +10 -0
  30. data/lib/recog/nizer.rb +1 -82
  31. data/lib/recog/verifier.rb +9 -9
  32. data/lib/recog/verify_reporter.rb +17 -6
  33. data/lib/recog/version.rb +1 -1
  34. data/requirements.txt +1 -1
  35. data/spec/data/external_example_fingerprint/hp_printer_ex_01.txt +1 -0
  36. data/spec/data/external_example_fingerprint/hp_printer_ex_02.txt +1 -0
  37. data/spec/data/external_example_fingerprint.xml +8 -0
  38. data/spec/data/external_example_illegal_path_fingerprint.xml +7 -0
  39. data/spec/lib/fingerprint_self_test_spec.rb +1 -0
  40. data/spec/lib/recog/db_spec.rb +84 -61
  41. data/spec/lib/recog/fingerprint_spec.rb +4 -4
  42. data/spec/lib/recog/verify_reporter_spec.rb +73 -4
  43. data/tools/dev/hooks/pre-commit +21 -0
  44. data/update_cpes.py +130 -37
  45. data/xml/apache_os.xml +98 -56
  46. data/xml/architecture.xml +15 -1
  47. data/xml/dhcp_vendor_class.xml +206 -0
  48. data/xml/dns_versionbind.xml +26 -13
  49. data/xml/favicons.xml +236 -47
  50. data/xml/fingerprints.xsd +9 -1
  51. data/xml/ftp_banners.xml +213 -197
  52. data/xml/h323_callresp.xml +101 -101
  53. data/xml/hp_pjl_id.xml +84 -84
  54. data/xml/html_title.xml +715 -45
  55. data/xml/http_cookies.xml +143 -80
  56. data/xml/http_servers.xml +510 -310
  57. data/xml/http_wwwauth.xml +177 -75
  58. data/xml/imap_banners.xml +10 -10
  59. data/xml/mdns_device-info_txt.xml +421 -26
  60. data/xml/mysql_banners.xml +3 -2
  61. data/xml/nntp_banners.xml +12 -9
  62. data/xml/ntp_banners.xml +97 -97
  63. data/xml/operating_system.xml +98 -83
  64. data/xml/pop_banners.xml +27 -27
  65. data/xml/rsh_resp.xml +3 -3
  66. data/xml/sip_banners.xml +46 -8
  67. data/xml/sip_user_agents.xml +180 -27
  68. data/xml/smb_native_lm.xml +5 -5
  69. data/xml/smb_native_os.xml +28 -25
  70. data/xml/smtp_banners.xml +258 -254
  71. data/xml/smtp_ehlo.xml +1 -1
  72. data/xml/smtp_help.xml +11 -11
  73. data/xml/smtp_noop.xml +2 -2
  74. data/xml/snmp_sysdescr.xml +1554 -1429
  75. data/xml/snmp_sysobjid.xml +27 -27
  76. data/xml/ssh_banners.xml +27 -20
  77. data/xml/telnet_banners.xml +256 -57
  78. data/xml/tls_jarm.xml +48 -6
  79. data/xml/x11_banners.xml +3 -3
  80. data/xml/x509_issuers.xml +69 -2
  81. data/xml/x509_subjects.xml +144 -33
  82. metadata +24 -4
  83. data/lib/recog/verifier_factory.rb +0 -13
data/xml/hp_pjl_id.xml CHANGED
@@ -15,11 +15,11 @@
15
15
 
16
16
  <fingerprint pattern="(?i)laserjet (.*)(?: series)?">
17
17
  <description>HP JetDirect Printer</description>
18
- <example>HP LaserJet 4100 Series</example>
19
- <example>HP LaserJet 2200</example>
20
- <example>LASERJET 4050</example>
21
- <example>LASERJET 4 PLUS</example>
22
- <example>HP LaserJet Professional P1606dn</example>
18
+ <example os.product="4100 Series">HP LaserJet 4100 Series</example>
19
+ <example os.product="2200">HP LaserJet 2200</example>
20
+ <example os.product="4050">LASERJET 4050</example>
21
+ <example os.product="4 PLUS">LASERJET 4 PLUS</example>
22
+ <example os.product="Professional P1606dn">HP LaserJet Professional P1606dn</example>
23
23
  <param pos="0" name="service.vendor" value="HP"/>
24
24
  <param pos="0" name="service.product" value="JetDirect"/>
25
25
  <param pos="0" name="service.family" value="JetDirect"/>
@@ -31,10 +31,10 @@
31
31
 
32
32
  <fingerprint pattern="(?i)(designjet \S+)">
33
33
  <description>HP Designjet printer</description>
34
- <example>hp designjet 110plus</example>
35
- <example>DESIGNJET 1050C</example>
36
- <example>DESIGNJET 1055CM</example>
37
- <example>DESIGNJET 700</example>
34
+ <example os.product="designjet 110plus">hp designjet 110plus</example>
35
+ <example os.product="DESIGNJET 1050C">DESIGNJET 1050C</example>
36
+ <example os.product="DESIGNJET 1055CM">DESIGNJET 1055CM</example>
37
+ <example os.product="DESIGNJET 700">DESIGNJET 700</example>
38
38
  <param pos="0" name="service.vendor" value="HP"/>
39
39
  <param pos="0" name="service.product" value="JetDirect"/>
40
40
  <param pos="0" name="service.family" value="JetDirect"/>
@@ -46,9 +46,9 @@
46
46
 
47
47
  <fingerprint pattern="^Xerox ColorQube (\S+)$">
48
48
  <description>Xerox ColorQube Multifunction Printer</description>
49
- <example>Xerox ColorQube 8570DN</example>
50
- <example>Xerox ColorQube 8570DT</example>
51
- <example>Xerox ColorQube 8570N</example>
49
+ <example os.product="8570DN">Xerox ColorQube 8570DN</example>
50
+ <example os.product="8570DT">Xerox ColorQube 8570DT</example>
51
+ <example os.product="8570N">Xerox ColorQube 8570N</example>
52
52
  <param pos="0" name="os.vendor" value="Xerox"/>
53
53
  <param pos="0" name="os.family" value="ColorQube"/>
54
54
  <param pos="1" name="os.product"/>
@@ -57,7 +57,7 @@
57
57
 
58
58
  <fingerprint pattern="^Brother (.+)$">
59
59
  <description>Brother Printer</description>
60
- <example>Brother HL-1660e</example>
60
+ <example os.product="HL-1660e">Brother HL-1660e</example>
61
61
  <param pos="0" name="os.vendor" value="Brother"/>
62
62
  <param pos="0" name="os.device" value="Printer"/>
63
63
  <param pos="1" name="os.product"/>
@@ -67,9 +67,9 @@
67
67
 
68
68
  <fingerprint pattern="^(iR ?\S+)">
69
69
  <description>Canon iR multifunction device</description>
70
- <example>iR 3180C EUR</example>
71
- <example>iR C4080/C4580</example>
72
- <example>iR1020/1024/1025</example>
70
+ <example os.product="iR 3180C">iR 3180C EUR</example>
71
+ <example os.product="iR C4080/C4580">iR C4080/C4580</example>
72
+ <example os.product="iR1020/1024/1025">iR1020/1024/1025</example>
73
73
  <param pos="0" name="os.vendor" value="Canon"/>
74
74
  <param pos="0" name="os.family" value="iR Series"/>
75
75
  <param pos="0" name="os.device" value="Multifunction Device"/>
@@ -78,16 +78,16 @@
78
78
 
79
79
  <fingerprint pattern="^(?:Dell (?:Color Laser |Laser Printer )?|(?:Color Laser |Laser Printer ))(\d+(?:n|cn|dn|cdn))(?: Color Laser| Laser Printer)?$">
80
80
  <description>Dell Laser Printer</description>
81
- <example>Dell Laser Printer 1710n</example>
82
- <example>Dell Color Laser 3110cn</example>
83
- <example>Laser Printer 5100cn</example>
84
- <example>Dell 2130cn Color Laser</example>
85
- <example>Dell 2330dn Laser Printer</example>
86
- <example>Dell 2350dn Laser Printer</example>
87
- <example>Dell 3130cn Color Laser</example>
88
- <example>Dell 5130cdn Color Laser</example>
89
- <example>Dell 5230n Laser Printer</example>
90
- <example>Dell 2145cn</example>
81
+ <example os.product="1710n">Dell Laser Printer 1710n</example>
82
+ <example os.product="3110cn">Dell Color Laser 3110cn</example>
83
+ <example os.product="5100cn">Laser Printer 5100cn</example>
84
+ <example os.product="2130cn">Dell 2130cn Color Laser</example>
85
+ <example os.product="2330dn">Dell 2330dn Laser Printer</example>
86
+ <example os.product="2350dn">Dell 2350dn Laser Printer</example>
87
+ <example os.product="3130cn">Dell 3130cn Color Laser</example>
88
+ <example os.product="5130cdn">Dell 5130cdn Color Laser</example>
89
+ <example os.product="5230n">Dell 5230n Laser Printer</example>
90
+ <example os.product="2145cn">Dell 2145cn</example>
91
91
  <param pos="0" name="os.vendor" value="Dell"/>
92
92
  <param pos="0" name="os.family" value="Laser Printer"/>
93
93
  <param pos="0" name="os.device" value="Printer"/>
@@ -96,8 +96,8 @@
96
96
 
97
97
  <fingerprint pattern="^Dell (\d+(?:n|cn|dn|cdn)) MFP$">
98
98
  <description>Dell Laser multifunction device</description>
99
- <example>Dell 2135cn MFP</example>
100
- <example>Dell 2335dn MFP</example>
99
+ <example os.product="2135cn">Dell 2135cn MFP</example>
100
+ <example os.product="2335dn">Dell 2335dn MFP</example>
101
101
  <param pos="0" name="os.vendor" value="Dell"/>
102
102
  <param pos="0" name="os.family" value="Laser Printer"/>
103
103
  <param pos="0" name="os.device" value="Multifunction Device"/>
@@ -106,7 +106,7 @@
106
106
 
107
107
  <fingerprint pattern="^HP (\S+ Digital Sender)$">
108
108
  <description>HP Digital Sender scanner</description>
109
- <example>HP 9250C Digital Sender</example>
109
+ <example os.product="9250C Digital Sender">HP 9250C Digital Sender</example>
110
110
  <param pos="0" name="os.vendor" value="HP"/>
111
111
  <param pos="0" name="os.device" value="Scanner"/>
112
112
  <param pos="0" name="os.family" value="Digital Sender"/>
@@ -123,7 +123,7 @@
123
123
 
124
124
  <fingerprint pattern="^KM-(.*)$">
125
125
  <description>Konica Minolta printer</description>
126
- <example>KM-5050</example>
126
+ <example os.product="5050">KM-5050</example>
127
127
  <param pos="0" name="os.vendor" value="Lexmark"/>
128
128
  <param pos="0" name="os.device" value="Printer"/>
129
129
  <param pos="1" name="os.product"/>
@@ -131,9 +131,9 @@
131
131
 
132
132
  <fingerprint pattern="^(FS-\S+MFP\S*)$">
133
133
  <description>Kyocera Mita Multifunction device</description>
134
- <example>FS-C2126MFP</example>
135
- <example>FS-C2126MFP+</example>
136
- <example>FS-1035MFP/DP</example>
134
+ <example os.product="FS-C2126MFP">FS-C2126MFP</example>
135
+ <example os.product="FS-C2126MFP+">FS-C2126MFP+</example>
136
+ <example os.product="FS-1035MFP/DP">FS-1035MFP/DP</example>
137
137
  <param pos="0" name="os.vendor" value="Kyocera Mita"/>
138
138
  <param pos="0" name="os.device" value="Multifunction Device"/>
139
139
  <param pos="0" name="os.family" value="FS"/>
@@ -142,9 +142,9 @@
142
142
 
143
143
  <fingerprint pattern="^(FS-(?:C)?\d+(?:D|DN))$">
144
144
  <description>Kyocera Mita Printer</description>
145
- <example>FS-C8500DN</example>
146
- <example>FS-4100DN</example>
147
- <example>FS-2020D</example>
145
+ <example os.product="FS-C8500DN">FS-C8500DN</example>
146
+ <example os.product="FS-4100DN">FS-4100DN</example>
147
+ <example os.product="FS-2020D">FS-2020D</example>
148
148
  <param pos="0" name="os.vendor" value="Kyocera Mita"/>
149
149
  <param pos="0" name="os.device" value="Printer"/>
150
150
  <param pos="0" name="os.family" value="FS"/>
@@ -153,9 +153,9 @@
153
153
 
154
154
  <fingerprint pattern="^(TASKalfa \S+)$">
155
155
  <description>Kyocera Mita TASKalfa multifunction device</description>
156
- <example>TASKalfa 300ci</example>
157
- <example>TASKalfa 520i</example>
158
- <example>TASKalfa 250ci</example>
156
+ <example os.product="TASKalfa 300ci">TASKalfa 300ci</example>
157
+ <example os.product="TASKalfa 520i">TASKalfa 520i</example>
158
+ <example os.product="TASKalfa 250ci">TASKalfa 250ci</example>
159
159
  <param pos="0" name="os.vendor" value="Kyocera Mita"/>
160
160
  <param pos="0" name="os.device" value="Multifunction Device"/>
161
161
  <param pos="0" name="os.family" value="TASKalfa"/>
@@ -164,15 +164,15 @@
164
164
 
165
165
  <fingerprint pattern="^Lexmark (.*)$">
166
166
  <description>Lexmark JetDirect printer</description>
167
- <example>Lexmark C910</example>
168
- <example>Lexmark Optra LaserPrinter</example>
169
- <example>Lexmark Optra S 1250</example>
167
+ <example os.product="C910">Lexmark C910</example>
168
+ <example os.product="Optra LaserPrinter">Lexmark Optra LaserPrinter</example>
169
+ <example os.product="Optra S 1250">Lexmark Optra S 1250</example>
170
170
  <param pos="0" name="os.vendor" value="Lexmark"/>
171
171
  <param pos="0" name="os.device" value="Printer"/>
172
172
  <param pos="1" name="os.product"/>
173
173
  </fingerprint>
174
174
 
175
- <fingerprint pattern="(?i)^Oce (fx[^\s:]+):.*$">
175
+ <fingerprint pattern="(?i)^Oce (fx[^\s:]+):">
176
176
  <description>Oce FX series multifunction device</description>
177
177
  <example os.product="fx3000">Oce fx3000:8C5-B29:Ver.D:U0707161719:B0601271355</example>
178
178
  <param pos="0" name="os.vendor" value="Oce"/>
@@ -181,9 +181,9 @@
181
181
  <param pos="1" name="os.product"/>
182
182
  </fingerprint>
183
183
 
184
- <fingerprint pattern="(?i)^Oce (VL\S+):.*$">
184
+ <fingerprint pattern="(?i)^Oce (VL\S+):">
185
185
  <description>Oce VarioLink multifunction device</description>
186
- <example>Oce VL3200:8C5-D92:Ver.B</example>
186
+ <example os.product="VL3200:8C5-D92">Oce VL3200:8C5-D92:Ver.B</example>
187
187
  <param pos="0" name="os.vendor" value="Oce"/>
188
188
  <param pos="0" name="os.family" value="VarioLink"/>
189
189
  <param pos="0" name="os.device" value="Multifunction Device"/>
@@ -205,7 +205,7 @@
205
205
 
206
206
  <fingerprint pattern="(?i)^Imagistics (im\S+) (.+)">
207
207
  <description>Oce IM series multifunction device</description>
208
- <example>Imagistics im3510/4510 02-Aug-04 10:56</example>
208
+ <example os.product="im3510/4510" system.time="02-Aug-04 10:56">Imagistics im3510/4510 02-Aug-04 10:56</example>
209
209
  <param pos="0" name="os.vendor" value="Oce"/>
210
210
  <param pos="0" name="os.family" value="IM Series"/>
211
211
  <param pos="0" name="os.device" value="Multifunction Device"/>
@@ -218,9 +218,9 @@
218
218
 
219
219
  <fingerprint pattern="^OKI (C\d+)\S*$">
220
220
  <description>Okidata color printer</description>
221
- <example>OKI C610</example>
222
- <example>OKI C710</example>
223
- <example>OKI C710dn</example>
221
+ <example os.product="C610">OKI C610</example>
222
+ <example os.product="C710">OKI C710</example>
223
+ <example os.product="C710">OKI C710dn</example>
224
224
  <param pos="0" name="os.vendor" value="Okidata"/>
225
225
  <param pos="0" name="os.device" value="Printer"/>
226
226
  <param pos="1" name="os.product"/>
@@ -228,7 +228,7 @@
228
228
 
229
229
  <fingerprint pattern="^OKI (MC\d+)\S*$">
230
230
  <description>Okidata multifunction device</description>
231
- <example>OKI MC860</example>
231
+ <example os.product="MC860">OKI MC860</example>
232
232
  <param pos="0" name="os.vendor" value="Okidata"/>
233
233
  <param pos="0" name="os.device" value="Multifunction Device"/>
234
234
  <param pos="1" name="os.product"/>
@@ -236,10 +236,10 @@
236
236
 
237
237
  <fingerprint pattern="(?i)^RICOH ((?:Aficio|MP|SP) .*)$">
238
238
  <description>Ricoh Aficio Printer</description>
239
- <example>RICOH Aficio 2075</example>
240
- <example>RICOH Aficio AP610N</example>
241
- <example>RICOH Aficio SP 8100DN</example>
242
- <example>RICOH MP C1500/615C</example>
239
+ <example os.product="Aficio 2075">RICOH Aficio 2075</example>
240
+ <example os.product="Aficio AP610N">RICOH Aficio AP610N</example>
241
+ <example os.product="Aficio SP 8100DN">RICOH Aficio SP 8100DN</example>
242
+ <example os.product="MP C1500/615C">RICOH MP C1500/615C</example>
243
243
  <param pos="0" name="os.vendor" value="Ricoh"/>
244
244
  <param pos="0" name="os.family" value="Aficio"/>
245
245
  <param pos="1" name="os.product"/>
@@ -251,14 +251,14 @@
251
251
 
252
252
  <fingerprint pattern="(?i)^NRG ([MS]P \S+)$">
253
253
  <description>Ricoh NRG printer</description>
254
- <example>NRG MP 171</example>
255
- <example>NRG MP 3350</example>
256
- <example>NRG MP C2550</example>
257
- <example>NRG MP C2800</example>
258
- <example>NRG MP C3500</example>
259
- <example>NRG MP C4000</example>
260
- <example>NRG MP C4500</example>
261
- <example>NRG SP C231SF</example>
254
+ <example os.product="MP 171">NRG MP 171</example>
255
+ <example os.product="MP 3350">NRG MP 3350</example>
256
+ <example os.product="MP C2550">NRG MP C2550</example>
257
+ <example os.product="MP C2800">NRG MP C2800</example>
258
+ <example os.product="MP C3500">NRG MP C3500</example>
259
+ <example os.product="MP C4000">NRG MP C4000</example>
260
+ <example os.product="MP C4500">NRG MP C4500</example>
261
+ <example os.product="SP C231SF">NRG SP C231SF</example>
262
262
  <param pos="0" name="os.vendor" value="Ricoh"/>
263
263
  <param pos="0" name="os.device" value="Printer"/>
264
264
  <param pos="1" name="os.product"/>
@@ -269,7 +269,7 @@
269
269
 
270
270
  <fingerprint pattern="(?i)^Gestetner (MP\S+/DSc\S+)$">
271
271
  <description>Ricoh Gestetner multifunction device</description>
272
- <example>Gestetner MPC2500/DSc525</example>
272
+ <example os.product="MPC2500/DSc525">Gestetner MPC2500/DSc525</example>
273
273
  <param pos="0" name="os.vendor" value="Ricoh"/>
274
274
  <param pos="0" name="os.device" value="Multifunction Device"/>
275
275
  <param pos="1" name="os.product"/>
@@ -285,7 +285,7 @@
285
285
 
286
286
  <fingerprint pattern="(?i)^Savin (\S+)$">
287
287
  <description>Savin Printer</description>
288
- <example>SAVIN 4075</example>
288
+ <example os.product="4075">SAVIN 4075</example>
289
289
  <param pos="0" name="os.vendor" value="Savin"/>
290
290
  <param pos="0" name="os.device" value="Printer"/>
291
291
  <param pos="1" name="os.product"/>
@@ -293,8 +293,8 @@
293
293
 
294
294
  <fingerprint pattern="(?i)^Samsung ((?:SCX|CLX)-\S+) Series$">
295
295
  <description>Samsung multifunction device</description>
296
- <example>Samsung SCX-5835_5935 Series</example>
297
- <example>Samsung CLX-4195 Series</example>
296
+ <example os.product="SCX-5835_5935">Samsung SCX-5835_5935 Series</example>
297
+ <example os.product="CLX-4195">Samsung CLX-4195 Series</example>
298
298
  <param pos="0" name="os.vendor" value="Samsung"/>
299
299
  <param pos="0" name="os.device" value="Multifunction Device"/>
300
300
  <param pos="1" name="os.product"/>
@@ -302,17 +302,17 @@
302
302
 
303
303
  <fingerprint pattern="(?i)^Samsung ((?:ML|CLP)-\S+) Series$">
304
304
  <description>Samsung printer</description>
305
- <example>Samsung CLP-680 Series</example>
306
- <example>Samsung ML-5012_5512 Series</example>
305
+ <example os.product="CLP-680">Samsung CLP-680 Series</example>
306
+ <example os.product="ML-5012_5512">Samsung ML-5012_5512 Series</example>
307
307
  <param pos="0" name="os.vendor" value="Samsung"/>
308
308
  <param pos="0" name="os.device" value="Printer"/>
309
309
  <param pos="1" name="os.product"/>
310
310
  </fingerprint>
311
311
 
312
- <fingerprint pattern="(?i)^SHARP (\S+-\S+) .*$">
312
+ <fingerprint pattern="(?i)^SHARP (\S+-\S+)">
313
313
  <description>Sharp Printer</description>
314
- <example>Sharp MX-NBX3 18-Mar-08 10:22</example>
315
- <example>Sharp AR-P17 24-Mar-04 19:55</example>
314
+ <example os.product="MX-NBX3">Sharp MX-NBX3 18-Mar-08 10:22</example>
315
+ <example os.product="AR-P17">Sharp AR-P17 24-Mar-04 19:55</example>
316
316
  <param pos="0" name="os.vendor" value="Sharp"/>
317
317
  <param pos="0" name="os.device" value="Printer"/>
318
318
  <param pos="1" name="os.product"/>
@@ -320,7 +320,7 @@
320
320
 
321
321
  <fingerprint pattern="(?i)^Source Technologies (\S+)$">
322
322
  <description>Source Technologies Printer</description>
323
- <example>Source Technologies ST-9620</example>
323
+ <example os.product="ST-9620">Source Technologies ST-9620</example>
324
324
  <param pos="0" name="os.vendor" value="Source Technologies"/>
325
325
  <param pos="0" name="os.device" value="Printer"/>
326
326
  <param pos="1" name="os.product"/>
@@ -330,10 +330,10 @@
330
330
 
331
331
  <fingerprint pattern="^TOSHIBA (e-STUDIO\S+)(?:\s+.*)?" certainty="0.9">
332
332
  <description>Toshiba e-STUDIO multifunction device</description>
333
- <example>TOSHIBA e-STUDIO350 V468Z 20061013</example>
334
- <example>TOSHIBA e-STUDIO350-450 V444Z 20041104</example>
335
- <example>TOSHIBA e-STUDIO450 V468Z 20061013</example>
336
- <example>TOSHIBA e-STUDIO500S</example>
333
+ <example os.product="e-STUDIO350">TOSHIBA e-STUDIO350 V468Z 20061013</example>
334
+ <example os.product="e-STUDIO350-450">TOSHIBA e-STUDIO350-450 V444Z 20041104</example>
335
+ <example os.product="e-STUDIO450">TOSHIBA e-STUDIO450 V468Z 20061013</example>
336
+ <example os.product="e-STUDIO500S">TOSHIBA e-STUDIO500S</example>
337
337
  <param pos="0" name="os.vendor" value="Toshiba"/>
338
338
  <param pos="0" name="os.family" value="e-STUDIO"/>
339
339
  <param pos="0" name="os.device" value="Multifunction Device"/>
@@ -351,8 +351,8 @@
351
351
 
352
352
  <fingerprint pattern="^(?:ID=)?Xerox (Phaser \S+)$" certainty="0.9">
353
353
  <description>Xerox Phaser Printer</description>
354
- <example>Xerox Phaser 6180MFP-D</example>
355
- <example>ID=Xerox Phaser 5400</example>
354
+ <example os.product="Phaser 6180MFP-D">Xerox Phaser 6180MFP-D</example>
355
+ <example os.product="Phaser 5400">ID=Xerox Phaser 5400</example>
356
356
  <param pos="0" name="os.vendor" value="Xerox"/>
357
357
  <param pos="0" name="os.family" value="Phaser"/>
358
358
  <param pos="0" name="os.device" value="Printer"/>
@@ -361,9 +361,9 @@
361
361
 
362
362
  <fingerprint pattern="^Xerox (WorkCentre .*)$" certainty="0.9">
363
363
  <description>Xerox Workcentre Printer</description>
364
- <example>Xerox WorkCentre 7425</example>
365
- <example>Xerox WorkCentre Pro 245</example>
366
- <example>Xerox WorkCentre Pro 55, v1 Multifunction System</example>
364
+ <example os.product="WorkCentre 7425">Xerox WorkCentre 7425</example>
365
+ <example os.product="WorkCentre Pro 245">Xerox WorkCentre Pro 245</example>
366
+ <example os.product="WorkCentre Pro 55, v1 Multifunction System">Xerox WorkCentre Pro 55, v1 Multifunction System</example>
367
367
  <param pos="0" name="os.vendor" value="Xerox"/>
368
368
  <param pos="0" name="os.family" value="WorkCentre"/>
369
369
  <param pos="1" name="os.product"/>
@@ -372,7 +372,7 @@
372
372
 
373
373
  <fingerprint pattern="^(XC\S+)$" certainty="0.9">
374
374
  <description>Xerox XC Printer</description>
375
- <example>XC560</example>
375
+ <example os.product="XC560">XC560</example>
376
376
  <param pos="0" name="os.vendor" value="Xerox"/>
377
377
  <param pos="0" name="os.family" value="XC"/>
378
378
  <param pos="0" name="os.device" value="Printer"/>
@@ -381,7 +381,7 @@
381
381
 
382
382
  <fingerprint pattern="^(DC\S+)$" certainty="0.9">
383
383
  <description>Xerox DocuColor Printer</description>
384
- <example>DC250</example>
384
+ <example os.product="DC250">DC250</example>
385
385
  <param pos="0" name="os.vendor" value="Xerox"/>
386
386
  <param pos="0" name="os.family" value="DocuColor"/>
387
387
  <param pos="0" name="os.device" value="Printer"/>
@@ -390,7 +390,7 @@
390
390
 
391
391
  <fingerprint pattern="^(EX\d+-\d+)$" certainty="0.9">
392
392
  <description>Xerox EX Print Server, powered by EFI Fiery</description>
393
- <example>EX4112-4127</example>
393
+ <example os.product="EX4112-4127">EX4112-4127</example>
394
394
  <param pos="0" name="os.vendor" value="Xerox"/>
395
395
  <param pos="0" name="os.family" value="EX"/>
396
396
  <param pos="0" name="os.device" value="Print Server"/>