pwn 0.4.456 → 0.4.458

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
  SHA256:
3
- metadata.gz: b3b1843c0855572815309240a50172a80b69cb45ac5deb69680209ad1a8c7d67
4
- data.tar.gz: 943a67a010803ace7adc4aac78c18b43c168dfb5014a29058a7245a84ae07424
3
+ metadata.gz: 85a03a42892f8f86f382af989d14ecb6abdff9043de8d4e6b45609c659d25a5a
4
+ data.tar.gz: 5ad007f33886674f720ab1ba73fff4da5cb1cfdeec8a5f5202de8fd4707c60ce
5
5
  SHA512:
6
- metadata.gz: 4f46dc1fa6e26ddab03a457400456670b6ce163669ed26b89932d27f22e597535f0b4e92d95035df91bb0eec7b2650e3a2e8d8a05eef01b71716433cc83a10b5
7
- data.tar.gz: 1732ba89f610c2a50c20f932bee5fb9707e292ca3cb667f4bd937b7aa7fd27e80a8a431bc0a5032866c41d215d0f8e95b55a6407e3daacf32962a3d3ccadebca
6
+ metadata.gz: 831872dde165783f8f102c094d29b6d73b7556b29ec6d97567b97324cddf4fdf72e87861100e2cd4d9cbf302f453ede7b0f79ddb8369c4018e4d5d44a9990c0d
7
+ data.tar.gz: 3cef3140532c9f1368aec2f9290dc79a52c19b810a0861a982655c35681d6ff8b35fe04a72aa4314bfd974909aab42c7171f2aec685096d3d5e0b3d8eecafa49
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.1.2@pwn
37
37
  $ rvm list gemsets
38
38
  $ gem install --verbose pwn
39
39
  $ pwn
40
- pwn[v0.4.456]:001 >>> PWN.help
40
+ pwn[v0.4.458]:001 >>> PWN.help
41
41
  ```
42
42
 
43
43
  [![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
@@ -52,7 +52,7 @@ $ rvm use ruby-3.1.2@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.4.456]:001 >>> PWN.help
55
+ pwn[v0.4.458]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -24,6 +24,200 @@ module PWN
24
24
  raise e
25
25
  end
26
26
 
27
+ # Supported Method Parameters::
28
+ # cmds = PWN::Plugins::MSR206.list_cmds
29
+ public_class_method def self.list_cmds
30
+ # Returns an Array of Symbols
31
+ cmds = %i[
32
+ version_report
33
+ simulate_power_cycle_warm_reset
34
+ configuration_request
35
+ reproduce_last_command
36
+ resume_transmission_to_host
37
+ pause_transmission_to_host
38
+ abort_command
39
+ red_on
40
+ red_off
41
+ red_flash
42
+ green_on
43
+ green_off
44
+ green_flash
45
+ yellow_on
46
+ yellow_off
47
+ yellow_flash
48
+ arm_to_read
49
+ arm_to_read_w_speed_prompts
50
+ tx_iso_std_data_track1
51
+ tx_iso_std_data_track2
52
+ tx_iso_std_data_track3
53
+ alt_tx_iso_std_data_track1
54
+ alt_tx_iso_std_data_track2
55
+ alt_tx_iso_std_data_track3
56
+ tx_error_data
57
+ tx_custom_data_forward_track1
58
+ tx_custom_data_forward_track2
59
+ tx_custom_data_forward_track3
60
+ tx_passbook_data
61
+ alt_tx_passbook_data
62
+ write_verify
63
+ card_edge_detect
64
+ load_iso_std_data_for_writing_track1
65
+ load_iso_std_data_for_writing_track2
66
+ load_iso_std_data_for_writing_track3
67
+ alt_load_iso_std_data_for_writing_track1
68
+ alt_load_iso_std_data_for_writing_track2
69
+ alt_load_iso_std_data_for_writing_track3
70
+ load_passbook_data_for_writing
71
+ load_custom_data_for_writing_track1
72
+ load_custom_data_for_writing_track2
73
+ load_custom_data_for_writing_track3
74
+ set_write_density
75
+ set_write_density_210_bpi_tracks13
76
+ set_write_density_75_bpi_tracks13
77
+ set_write_density_210_bpi_tracks2
78
+ set_write_density_75_bpi_tracks2
79
+ set_default_write_current
80
+ view_default_write_current
81
+ set_temp_write_current
82
+ view_temp_write_current
83
+ arm_to_write_with_raw
84
+ arm_to_write_no_raw
85
+ arm_to_write_with_raw_speed_prompts
86
+ ]
87
+ rescue StandardError => e
88
+ raise e
89
+ end
90
+
91
+ # Supported Method Parameters::
92
+ # PWN::Plugins::MSR206.exec(
93
+ # msr206_obj: 'required - msr206_obj returned from #connect method'
94
+ # cmd: 'required - cmd returned from #list_cmds method',
95
+ # params: 'optional - parameters for specific command returned from #list_params method'
96
+ # )
97
+ public_class_method def self.exec(opts = {})
98
+ msr206_obj = opts[:msr206_obj]
99
+ cmd = opts[:cmd].to_s.scrub.strip.chomp
100
+ params = opts[:params].to_s.scrub.strip.chomp
101
+
102
+ params_bytes = []
103
+ case cmd.to_sym
104
+ when :version_report
105
+ cmd_bytes = [0x39]
106
+ when :simulate_power_cycle_warm_reset
107
+ cmd_bytes = [0x7F]
108
+ when :configuration_request
109
+ cmd_bytes = [0x23]
110
+ when :reproduce_last_command
111
+ cmd_bytes = [0x25]
112
+ when :resume_transmission_to_host
113
+ cmd_bytes = [0x11]
114
+ when :pause_transmission_to_host
115
+ cmd_bytes = [0x13]
116
+ when :abort_command
117
+ cmd_bytes = [0x1B]
118
+ when :red_on
119
+ cmd_bytes = [0x4D]
120
+ when :red_off
121
+ cmd_bytes = [0x6D]
122
+ when :red_flash
123
+ cmd_bytes = [0x29]
124
+ when :green_on
125
+ cmd_bytes = [0x4C]
126
+ when :green_off
127
+ cmd_bytes = [0x6C]
128
+ when :green_flash
129
+ cmd_bytes = [0x28]
130
+ when :yellow_on
131
+ cmd_bytes = [0x4B]
132
+ when :yellow_off
133
+ cmd_bytes = [0x6B]
134
+ when :yellow_flash
135
+ cmd_bytes = [0x7C]
136
+ when :arm_to_read
137
+ cmd_bytes = [0x50]
138
+ when :arm_to_read_w_speed_prompts
139
+ cmd_bytes = [0x70]
140
+ when :tx_iso_std_data_track1
141
+ cmd_bytes = [0x51]
142
+ when :tx_iso_std_data_track2
143
+ cmd_bytes = [0x52]
144
+ when :tx_iso_std_data_track3
145
+ cmd_bytes = [0x53]
146
+ when :tx_error_data
147
+ cmd_bytes = [0x49]
148
+ when :tx_custom_data_forward_track1, :load_custom_data_for_writing_track1
149
+ cmd_bytes = [0x45]
150
+ when :tx_custom_data_forward_track2, :load_custom_data_for_writing_track2
151
+ cmd_bytes = [0x46]
152
+ when :tx_custom_data_forward_track3, :load_custom_data_for_writing_track3
153
+ cmd_bytes = [0x47]
154
+ when :tx_passbook_data
155
+ cmd_bytes = [0x58]
156
+ when :alt_tx_passbook_data
157
+ cmd_bytes = [0x78]
158
+ when :write_verify
159
+ cmd_bytes = [0x3F]
160
+ when :card_edge_detect
161
+ cmd_bytes = [0x26]
162
+ when :load_iso_std_data_for_writing_track1
163
+ cmd_bytes = [0x41]
164
+ when :load_iso_std_data_for_writing_track2
165
+ cmd_bytes = [0x42]
166
+ when :load_iso_std_data_for_writing_track3
167
+ cmd_bytes = [0x43]
168
+ when :alt_load_iso_std_data_for_writing_track1
169
+ cmd_bytes = [0x61]
170
+ when :alt_load_iso_std_data_for_writing_track2
171
+ cmd_bytes = [0x62]
172
+ when :alt_load_iso_std_data_for_writing_track3
173
+ cmd_bytes = [0x63]
174
+ when :load_passbook_data_for_writing
175
+ cmd_bytes = [0x6A]
176
+ when :set_write_density
177
+ cmd_bytes = [0x3B]
178
+ when :set_write_density_210_bpi_tracks13
179
+ cmd_bytes = [0x4F]
180
+ when :set_write_density_75_bpi_tracks13
181
+ cmd_bytes = [0x6F]
182
+ when :set_write_density_210_bpi_tracks2
183
+ cmd_bytes = [0x4E]
184
+ when :set_write_density_75_bpi_tracks2
185
+ cmd_bytes = [0x6E]
186
+ when :set_default_write_current
187
+ cmd_bytes = [0x5B]
188
+ when :view_default_write_current
189
+ cmd_bytes = [0x5D]
190
+ when :set_temp_write_current
191
+ cmd_bytes = [0x3C]
192
+ when :view_temp_write_current
193
+ cmd_bytes = [0x3E]
194
+ when :arm_to_write_with_raw
195
+ cmd_bytes = [0x40]
196
+ when :arm_to_write_no_raw
197
+ cmd_bytes = [0x5A]
198
+ when :arm_to_write_with_raw_speed_prompts
199
+ cmd_bytes = [0x7A]
200
+ else
201
+ raise "Unsupported Command: #{cmd}. Supported commands are:\n#{list_cmds}\n\n\n"
202
+ end
203
+
204
+ # If parameters to a command are set, append them.
205
+ cmd_bytes += params_bytes unless params_bytes.empty?
206
+ # Execute the command.
207
+ cmd_bytes.each do |byte|
208
+ son_micro_rfid_obj[:serial_conn].putc(byte)
209
+ end
210
+
211
+ # Parse commands response(s).
212
+ # Return an array of hashes.
213
+ parse_responses(
214
+ son_micro_rfid_obj: son_micro_rfid_obj,
215
+ cmd: cmd.to_sym
216
+ )
217
+ rescue StandardError => e
218
+ raise e
219
+ end
220
+
27
221
  # Supported Method Parameters::
28
222
  # PWN::Plugins::MSR206.disconnect(
29
223
  # msr206_obj: 'required - msr206_obj returned from #connect method'
@@ -58,6 +252,14 @@ module PWN
58
252
  flow_control: 'optional (defaults to SerialPort::NONE)'
59
253
  )
60
254
 
255
+ cmds = #{self}.list_cmds
256
+
257
+ parsed_cmd_resp_arr = #{self}.exec(
258
+ msr206_obj: 'required msr206_obj returned from #connect method',
259
+ cmd: 'required - cmd returned from #list_cmds method',
260
+ params: 'optional - parameters for specific command returned from #list_params method'
261
+ )
262
+
61
263
  #{self}.disconnect(
62
264
  msr206_obj: 'required msr206_obj returned from #connect method'
63
265
  )
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.4.456'
4
+ VERSION = '0.4.458'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.456
4
+ version: 0.4.458
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.