recog 2.3.22 → 3.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +2 -0
  3. data/LICENSE +1 -1
  4. data/README.md +25 -16
  5. data/Rakefile +2 -9
  6. data/lib/recog/db_manager.rb +1 -1
  7. data/lib/recog/fingerprint.rb +21 -7
  8. data/lib/recog/fingerprint_parse_error.rb +10 -0
  9. data/lib/recog/match_reporter.rb +37 -3
  10. data/lib/recog/matcher.rb +5 -10
  11. data/lib/recog/verifier.rb +4 -4
  12. data/lib/recog/verify_reporter.rb +7 -6
  13. data/lib/recog/version.rb +1 -1
  14. data/{bin → recog/bin}/recog_match +20 -7
  15. data/{xml → recog/xml}/apache_modules.xml +0 -0
  16. data/{xml → recog/xml}/apache_os.xml +61 -19
  17. data/{xml → recog/xml}/architecture.xml +15 -1
  18. data/{xml → recog/xml}/dhcp_vendor_class.xml +10 -10
  19. data/{xml → recog/xml}/dns_versionbind.xml +16 -13
  20. data/{xml → recog/xml}/favicons.xml +167 -9
  21. data/{xml → recog/xml}/fingerprints.xsd +9 -1
  22. data/{xml → recog/xml}/ftp_banners.xml +131 -141
  23. data/{xml → recog/xml}/h323_callresp.xml +2 -2
  24. data/{xml → recog/xml}/hp_pjl_id.xml +81 -81
  25. data/{xml → recog/xml}/html_title.xml +250 -9
  26. data/{xml → recog/xml}/http_cookies.xml +111 -34
  27. data/{xml → recog/xml}/http_servers.xml +483 -270
  28. data/{xml → recog/xml}/http_wwwauth.xml +83 -37
  29. data/{xml → recog/xml}/imap_banners.xml +10 -10
  30. data/{xml → recog/xml}/ldap_searchresult.xml +0 -0
  31. data/{xml → recog/xml}/mdns_device-info_txt.xml +0 -0
  32. data/{xml → recog/xml}/mdns_workstation_txt.xml +0 -0
  33. data/{xml → recog/xml}/mysql_banners.xml +0 -0
  34. data/{xml → recog/xml}/mysql_error.xml +0 -0
  35. data/{xml → recog/xml}/nntp_banners.xml +8 -5
  36. data/{xml → recog/xml}/ntp_banners.xml +33 -33
  37. data/{xml → recog/xml}/operating_system.xml +92 -77
  38. data/{xml → recog/xml}/pop_banners.xml +25 -25
  39. data/{xml → recog/xml}/rsh_resp.xml +0 -0
  40. data/{xml → recog/xml}/rtsp_servers.xml +0 -0
  41. data/{xml → recog/xml}/sip_banners.xml +16 -5
  42. data/{xml → recog/xml}/sip_user_agents.xml +122 -27
  43. data/{xml → recog/xml}/smb_native_lm.xml +5 -5
  44. data/{xml → recog/xml}/smb_native_os.xml +25 -25
  45. data/{xml → recog/xml}/smtp_banners.xml +132 -131
  46. data/{xml → recog/xml}/smtp_debug.xml +0 -0
  47. data/{xml → recog/xml}/smtp_ehlo.xml +0 -0
  48. data/{xml → recog/xml}/smtp_expn.xml +0 -0
  49. data/{xml → recog/xml}/smtp_help.xml +1 -1
  50. data/{xml → recog/xml}/smtp_mailfrom.xml +0 -0
  51. data/{xml → recog/xml}/smtp_noop.xml +0 -0
  52. data/{xml → recog/xml}/smtp_quit.xml +0 -0
  53. data/{xml → recog/xml}/smtp_rcptto.xml +0 -0
  54. data/{xml → recog/xml}/smtp_rset.xml +0 -0
  55. data/{xml → recog/xml}/smtp_turn.xml +0 -0
  56. data/{xml → recog/xml}/smtp_vrfy.xml +0 -0
  57. data/{xml → recog/xml}/snmp_sysdescr.xml +1248 -1233
  58. data/{xml → recog/xml}/snmp_sysobjid.xml +13 -2
  59. data/{xml → recog/xml}/ssh_banners.xml +9 -5
  60. data/{xml → recog/xml}/telnet_banners.xml +83 -1
  61. data/{xml → recog/xml}/tls_jarm.xml +30 -2
  62. data/{xml → recog/xml}/x11_banners.xml +3 -3
  63. data/{xml → recog/xml}/x509_issuers.xml +24 -4
  64. data/{xml → recog/xml}/x509_subjects.xml +32 -3
  65. data/recog.gemspec +9 -5
  66. data/spec/data/external_example_fingerprint/hp_printer_ex_01.txt +1 -0
  67. data/spec/data/external_example_fingerprint/hp_printer_ex_02.txt +1 -0
  68. data/spec/data/external_example_fingerprint.xml +8 -0
  69. data/spec/data/external_example_illegal_path_fingerprint.xml +7 -0
  70. data/spec/lib/recog/db_spec.rb +84 -61
  71. data/spec/lib/recog/fingerprint_spec.rb +4 -4
  72. data/spec/lib/recog/match_reporter_spec.rb +22 -8
  73. data/spec/lib/recog/verify_reporter_spec.rb +8 -8
  74. data/spec/spec_helper.rb +4 -0
  75. data.tar.gz.sig +0 -0
  76. metadata +154 -142
  77. metadata.gz.sig +0 -0
  78. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -37
  79. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
  80. data/.github/ISSUE_TEMPLATE/fingerprint_request.md +0 -27
  81. data/.github/PULL_REQUEST_TEMPLATE +0 -24
  82. data/.github/SECURITY.md +0 -35
  83. data/.github/dependabot.yml +0 -8
  84. data/.github/workflows/ci.yml +0 -26
  85. data/.github/workflows/verify.yml +0 -89
  86. data/.gitignore +0 -23
  87. data/.rspec +0 -3
  88. data/.ruby-gemset +0 -1
  89. data/.ruby-version +0 -1
  90. data/.snyk +0 -10
  91. data/.travis.yml +0 -25
  92. data/CONTRIBUTING.md +0 -276
  93. data/bin/recog_cleanup +0 -16
  94. data/bin/recog_export +0 -81
  95. data/bin/recog_standardize +0 -163
  96. data/bin/recog_verify +0 -63
  97. data/cpe-remap.yaml +0 -356
  98. data/features/data/failing_banners_fingerprints.xml +0 -20
  99. data/features/data/matching_banners_fingerprints.xml +0 -23
  100. data/features/data/multiple_banners_fingerprints.xml +0 -32
  101. data/features/data/no_tests.xml +0 -3
  102. data/features/data/sample_banner.txt +0 -2
  103. data/features/data/successful_tests.xml +0 -18
  104. data/features/data/tests_with_failures.xml +0 -20
  105. data/features/data/tests_with_warnings.xml +0 -17
  106. data/features/match.feature +0 -36
  107. data/features/support/aruba.rb +0 -3
  108. data/features/support/env.rb +0 -6
  109. data/features/verify.feature +0 -48
  110. data/identifiers/README.md +0 -70
  111. data/identifiers/fields.txt +0 -105
  112. data/identifiers/hw_device.txt +0 -84
  113. data/identifiers/hw_family.txt +0 -121
  114. data/identifiers/hw_product.txt +0 -461
  115. data/identifiers/os_architecture.txt +0 -10
  116. data/identifiers/os_device.txt +0 -75
  117. data/identifiers/os_family.txt +0 -234
  118. data/identifiers/os_product.txt +0 -350
  119. data/identifiers/service_family.txt +0 -249
  120. data/identifiers/service_product.txt +0 -764
  121. data/identifiers/vendor.txt +0 -847
  122. data/lib/recog/verifier_factory.rb +0 -13
  123. data/misc/convert_mysql_err +0 -61
  124. data/misc/order.xsl +0 -17
  125. data/requirements.txt +0 -2
  126. data/spec/lib/fingerprint_self_test_spec.rb +0 -175
  127. data/tools/dev/hooks/pre-commit +0 -21
  128. data/update_cpes.py +0 -250
@@ -91,7 +91,7 @@
91
91
 
92
92
  <fingerprint pattern="^0x0900003d\:(.*)\:.*?(\d*\.*\d*\.*\d*)" flags="REG_ICASE">
93
93
  <description>Equivalence (OpenH323) H.323 Server</description>
94
- <example>0x0900003D:Null Team YATE:3.3.2 (OpenH323 v1.19.0)</example>
94
+ <example service.product="Null Team YATE" service.version="3.3.2">0x0900003D:Null Team YATE:3.3.2 (OpenH323 v1.19.0)</example>
95
95
  <param pos="0" name="service.vendor" value="Equivalence (OpenH323)"/>
96
96
  <param pos="1" name="service.product"/>
97
97
  <param pos="2" name="service.version"/>
@@ -596,7 +596,7 @@
596
596
 
597
597
  <fingerprint pattern="^0xb5002331\:(.*)\:Release\s[\s-]*(\d+\.+\d+\.*\d*)" flags="REG_ICASE">
598
598
  <description>ViaVideo/PolyCom H.323 Server</description>
599
- <example>0xb5002331:ViewStation 7.0:Release 7.5.4 - 04 Mar 2005</example>
599
+ <example service.product="ViewStation 7.0" service.version="7.5.4">0xb5002331:ViewStation 7.0:Release 7.5.4 - 04 Mar 2005</example>
600
600
  <param pos="0" name="service.vendor" value="ViaVideo/PolyCom"/>
601
601
  <param pos="1" name="service.product"/>
602
602
  <param pos="2" name="service.version"/>
@@ -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,9 +164,9 @@
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"/>
@@ -183,7 +183,7 @@
183
183
 
184
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,8 +302,8 @@
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"/>
@@ -311,8 +311,8 @@
311
311
 
312
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"/>