pwn 0.4.456 → 0.4.458

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.