pwn 0.5.228 → 0.5.229

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: 989e7a9f2d5b2d94aa4861aa8b46875ca3481c741ce77e47929a3d2acfdc8fb0
4
- data.tar.gz: 155d29494dc71dcb6406aa48db9694e64499acd439ca09216f9b4f11a7bdb21a
3
+ metadata.gz: 001b5c31619468cfb8ec9da3effa118109f6af66b388d4c71a7a119d658fc28f
4
+ data.tar.gz: 749fde686f3242b60d3da6b5d26488820a4b1c8e483dfdf914f84dfa416e6014
5
5
  SHA512:
6
- metadata.gz: 1fac4317e6c3aab36e338450bd767ed52a54e04164ba8d126e170e38ccb3635f049682fb3b456dae14ddb97f68410fea4ec5014ba1c70654a48faf56a1a3064f
7
- data.tar.gz: 0a68af70fcf790799a0cd26a89ec0798c8c22f19d49a76e942aaa29cf250abd390b92c5727bf6f50aa6ec46740a8b29ef753028b4952cfdb21e9632f300e9f90
6
+ metadata.gz: 266e937c6b03158194cc17535ee7732398d8b5d62587a5954a953db3068c3652976731f7b498e94a6d8eab716d73202b676fcd13a9e7855732108aaf95cca028
7
+ data.tar.gz: 3e2b4fa17bb40f7a43bb7fcef1c9ae488fc00e98ea5f6e1e86fa24eb51ea777c807814e776d634c4e2ef089782f509c3d7dc669520c9f3ae9ce1877a86877e65
data/.rubocop_todo.yml CHANGED
@@ -1,25 +1,14 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2024-10-30 18:35:44 UTC using RuboCop version 1.66.1.
3
+ # on 2025-01-14 18:50:21 UTC using RuboCop version 1.70.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 5
10
- # This cop supports safe autocorrection (--autocorrect).
11
- # Configuration parameters: EnforcedStyle.
12
- # SupportedStyles: space, no_space
13
- Layout/LineContinuationSpacing:
14
- Exclude:
15
- - 'packer/provisioners/beef.rb'
16
- - 'packer/provisioners/metasploit.rb'
17
- - 'packer/provisioners/wpscan.rb'
18
- - 'vagrant/provisioners/beef.rb'
19
-
20
9
  # Offense count: 21
21
10
  # This cop supports safe autocorrection (--autocorrect).
22
- # Configuration parameters: Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
11
+ # Configuration parameters: Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
23
12
  # URISchemes: http, https
24
13
  Layout/LineLength:
25
14
  Exclude:
@@ -41,7 +30,7 @@ Lint/NestedMethodDefinition:
41
30
  Exclude:
42
31
  - 'lib/pwn/plugins/repl.rb'
43
32
 
44
- # Offense count: 312
33
+ # Offense count: 316
45
34
  # This cop supports safe autocorrection (--autocorrect).
46
35
  # Configuration parameters: AutoCorrect.
47
36
  Lint/UselessAssignment:
@@ -117,7 +106,7 @@ Style/Alias:
117
106
  Style/ClassVars:
118
107
  Enabled: false
119
108
 
120
- # Offense count: 282
109
+ # Offense count: 280
121
110
  # This cop supports safe autocorrection (--autocorrect).
122
111
  # Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
123
112
  # SupportedStyles: assign_to_condition, assign_inside_condition
@@ -150,6 +139,21 @@ Style/MapIntoArray:
150
139
  - 'lib/pwn/plugins/credit_card.rb'
151
140
  - 'lib/pwn/plugins/nexpose_vuln_scan.rb'
152
141
 
142
+ # Offense count: 9
143
+ # This cop supports safe autocorrection (--autocorrect).
144
+ # Configuration parameters: AllowMethodComparison, ComparisonsThreshold.
145
+ Style/MultipleComparison:
146
+ Exclude:
147
+ - 'lib/pwn/sast/banned_function_calls_c.rb'
148
+ - 'lib/pwn/sast/cmd_execution_python.rb'
149
+ - 'lib/pwn/sast/cmd_execution_ruby.rb'
150
+ - 'lib/pwn/sast/deserial_java.rb'
151
+ - 'lib/pwn/sast/factory.rb'
152
+ - 'lib/pwn/sast/logger.rb'
153
+ - 'lib/pwn/sast/throw_errors.rb'
154
+ - 'lib/pwn/www/duckduckgo.rb'
155
+ - 'lib/pwn/www/twitter.rb'
156
+
153
157
  # Offense count: 1
154
158
  # This cop supports safe autocorrection (--autocorrect).
155
159
  Style/RedundantBegin:
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.5
1
+ 3.4.1
data/Gemfile CHANGED
@@ -18,7 +18,7 @@ gem 'aws-sdk', '3.2.0'
18
18
  # gem 'bettercap', '1.6.2'
19
19
  gem 'barby', '0.7.0'
20
20
  gem 'base32', '0.3.4'
21
- gem 'brakeman', '6.2.2'
21
+ gem 'brakeman', '7.0.0'
22
22
  gem 'bson', '5.0.2'
23
23
  gem 'bundler', '>=2.6.2'
24
24
  gem 'bundler-audit', '0.9.2'
@@ -29,7 +29,7 @@ gem 'eventmachine', '1.2.7'
29
29
  gem 'executable-hooks', '1.7.1'
30
30
  gem 'faker', '3.5.1'
31
31
  gem 'faye-websocket', '0.11.3'
32
- gem 'ffi', '1.17.0'
32
+ gem 'ffi', '1.17.1'
33
33
  gem 'fftw3', '0.3'
34
34
  gem 'gdb', '1.0.0'
35
35
  gem 'gem-wrappers', '1.4.0'
@@ -43,11 +43,11 @@ gem 'jenkins_api_client2', '1.9.0'
43
43
  gem 'js-beautify', '0.1.8'
44
44
  gem 'json', '2.9.1'
45
45
  gem 'jsonpath', '1.1.5'
46
- gem 'jwt', '2.9.3'
46
+ gem 'jwt', '2.10.1'
47
47
  gem 'libusb', '0.7.2'
48
48
  gem 'luhn', '1.0.2'
49
49
  gem 'mail', '2.8.1'
50
- gem 'meshtastic', '0.0.79'
50
+ gem 'meshtastic', '0.0.81'
51
51
  gem 'metasm', '1.0.5'
52
52
  gem 'mongo', '2.21.0'
53
53
  gem 'msfrpc-client', '1.1.2'
@@ -56,7 +56,7 @@ gem 'net-ldap', '0.19.0'
56
56
  gem 'net-openvpn', '0.8.7'
57
57
  gem 'net-smtp', '0.5.0'
58
58
  gem 'nexpose', '7.3.0'
59
- gem 'nokogiri', '1.17.2'
59
+ gem 'nokogiri', '1.18.1'
60
60
  gem 'nokogiri-diff', '0.3.0'
61
61
  # gem 'oauth2', '2.0.9'
62
62
  gem 'oily_png', '1.2.1'
@@ -64,7 +64,7 @@ gem 'open3', '0.2.1'
64
64
  gem 'os', '1.1.4'
65
65
  gem 'ostruct', '0.6.1'
66
66
  gem 'packetfu', '2.0.0'
67
- gem 'packetgen', '3.3.3'
67
+ gem 'packetgen', '4.0.0'
68
68
  gem 'pdf-reader', '2.13.0'
69
69
  gem 'pg', '1.5.9'
70
70
  gem 'pry', '0.15.2'
@@ -79,7 +79,7 @@ gem 'rmagick', '6.0.1'
79
79
  gem 'rqrcode', '2.2.0'
80
80
  gem 'rspec', '3.13.0'
81
81
  gem 'rtesseract', '3.1.3'
82
- gem 'rubocop', '1.69.2'
82
+ gem 'rubocop', '1.70.0'
83
83
  gem 'rubocop-rake', '0.6.0'
84
84
  gem 'rubocop-rspec', '3.3.0'
85
85
  gem 'ruby-audio', '1.6.1'
@@ -88,15 +88,16 @@ gem 'ruby-saml', '1.17.0'
88
88
  gem 'rvm', '1.11.3.9'
89
89
  gem 'savon', '2.15.1'
90
90
  gem 'selenium-devtools', '0.131.0'
91
- gem 'serialport', '1.3.2'
91
+ # gem 'serialport', '1.3.2'
92
92
  # gem 'sinatra', '4.0.0'
93
93
  gem 'slack-ruby-client', '2.4.0'
94
94
  gem 'socksify', '1.7.1'
95
95
  gem 'spreadsheet', '1.3.3'
96
- gem 'sqlite3', '2.4.1'
96
+ gem 'sqlite3', '2.5.0'
97
97
  gem 'thin', '1.8.2'
98
98
  gem 'tty-prompt', '0.23.1'
99
99
  gem 'tty-spinner', '0.9.3'
100
+ gem 'uart', '1.0.0'
100
101
  gem 'watir', '7.3.0'
101
102
  gem 'waveform', '0.1.3'
102
103
  gem 'webrick', '1.9.1'
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ cd /opt/pwn
37
37
  $ ./install.sh
38
38
  $ ./install.sh ruby-gem
39
39
  $ pwn
40
- pwn[v0.5.228]:001 >>> PWN.help
40
+ pwn[v0.5.229]: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)
@@ -48,21 +48,21 @@ pwn[v0.5.228]:001 >>> PWN.help
48
48
  It's wise to update pwn often as numerous versions are released/week:
49
49
  ```
50
50
  $ rvm list gemsets
51
- $ rvm use ruby-3.3.5@pwn
51
+ $ rvm use ruby-3.4.1@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.5.228]:001 >>> PWN.help
55
+ pwn[v0.5.229]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
  If you're using a multi-user install of RVM do:
59
59
  ```
60
60
  $ rvm list gemsets
61
- $ rvm use ruby-3.3.5@pwn
61
+ $ rvm use ruby-3.4.1@pwn
62
62
  $ rvmsudo gem uninstall --all --executables pwn
63
63
  $ rvmsudo gem install --verbose pwn
64
64
  $ pwn
65
- pwn[v0.5.228]:001 >>> PWN.help
65
+ pwn[v0.5.229]:001 >>> PWN.help
66
66
  ```
67
67
 
68
68
  PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
@@ -12,7 +12,18 @@ if (( $# == 3 )); then
12
12
  git add . --all
13
13
  echo 'Updating Gems to Latest Versions in Gemfile...'
14
14
  ./find_latest_gem_versions_per_Gemfile.sh
15
+ if [[ $? -ne 0 ]]; then
16
+ echo 'ERROR: find_latest_gem_versions_per_Gemfile.sh failed!'
17
+ exit 1
18
+ fi
19
+
15
20
  pwn_autoinc_version
21
+ if [[ $? -ne 0 ]]; then
22
+ echo 'ERROR: pwn_autoinc_version failed! Investigate and bump pwn version manually.'
23
+ exit 1
24
+ fi
25
+
26
+ # Generate RDoc JSONL for fine-tunning LLMs
16
27
  pwn_rdoc_to_jsonl --rdoc-root-dir '/opt/pwn/rdoc/PWN' --jsonl-results '/opt/pwn/third_party/pwn_rdoc.jsonl'
17
28
 
18
29
  # Tag for every 100 commits (i.e. 0.1.100, 0.1.200, etc)
@@ -24,6 +35,10 @@ if (( $# == 3 )); then
24
35
 
25
36
  git commit -a -S --author="${1} <${2}>" -m "${3}"
26
37
  ./update_pwn.sh
38
+ if [[ $? -ne 0 ]]; then
39
+ echo 'ERROR: update_pwn.sh failed!'
40
+ exit 1
41
+ fi
27
42
 
28
43
  latest_gem=$(ls pkg/*.gem)
29
44
  if [[ $latest_gem != "" ]]; then
@@ -127,8 +127,7 @@ module PWN
127
127
  baud: 'optional (defaults to 9600)',
128
128
  data_bits: 'optional (defaults to 8)',
129
129
  stop_bits: 'optional (defaults to 1)',
130
- parity: 'optional (defaults to SerialPort::NONE)',
131
- flow_control: 'optional (defaults to SerialPort::HARD) SerialPort::NONE|SerialPort::SOFT|SerialPort::HARD'
130
+ parity: 'optional - :even||:odd|:none (defaults to :none)'
132
131
  )
133
132
 
134
133
  #{self}.init_mode(
@@ -1169,8 +1169,7 @@ module PWN
1169
1169
  baud: 'optional (defaults to 9600)',
1170
1170
  data_bits: 'optional (defaults to 8)',
1171
1171
  stop_bits: 'optional (defaults to 1)',
1172
- parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :none),'
1173
- flow_control: 'optional - :none|:hard|:soft (defaults to :none)'
1172
+ parity: 'optional - :even||:odd|:none (defaults to :none)'
1174
1173
  )
1175
1174
 
1176
1175
  cmds = #{self}.list_cmds
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'serialport'
3
+ require 'uart'
4
4
  require 'io/wait'
5
5
 
6
6
  module PWN
@@ -16,63 +16,34 @@ module PWN
16
16
  # baud: 'optional - (defaults to 9600)',
17
17
  # data_bits: 'optional - (defaults to 8)',
18
18
  # stop_bits: 'optional - (defaults to 1)',
19
- # parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :none)',
20
- # flow_control: 'optional - :none||:hard||:soft (defaults to :none)'
19
+ # parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :none)'
21
20
  # )
22
21
 
23
22
  public_class_method def self.connect(opts = {})
24
- block_dev = opts[:block_dev].to_s if File.exist?(
25
- opts[:block_dev].to_s
26
- )
27
- block_dev = '/dev/ttyUSB0' if opts[:block_dev].nil?
28
-
29
- baud = if opts[:baud].nil?
30
- 9_600
31
- else
32
- opts[:baud].to_i
33
- end
34
-
35
- data_bits = if opts[:data_bits].nil?
36
- 8
37
- else
38
- opts[:data_bits].to_i
39
- end
40
-
41
- stop_bits = if opts[:stop_bits].nil?
42
- 1
43
- else
44
- opts[:stop_bits].to_i
45
- end
23
+ block_dev = opts[:block_dev] ||= '/dev/ttyUSB0'
24
+ raise "Invalid block device: #{block_dev}" unless File.exist?(block_dev)
25
+
26
+ baud = opts[:baud] ||= 9_600
27
+ data_bits = opts[:data_bits] ||= 8
28
+ stop_bits = opts[:stop_bits] ||= 1
46
29
 
30
+ parity = nil
47
31
  case opts[:parity].to_s.to_sym
48
32
  when :even
49
- parity = SerialPort::EVEN
50
- when :mark
51
- parity = SerialPort::MARK
33
+ parity = 'E'
52
34
  when :odd
53
- parity = SerialPort::ODD
54
- when :space
55
- parity = SerialPort::SPACE
56
- else
57
- parity = SerialPort::NONE
35
+ parity = 'O'
36
+ when :none
37
+ parity = 'N'
58
38
  end
39
+ raise "Invalid parity: #{opts[:parity]}" if parity.nil?
59
40
 
60
- case opts[:flow_control].to_s.to_sym
61
- when :hard
62
- flow_control = SerialPort::HARD
63
- when :soft
64
- flow_control = SerialPort::SOFT
65
- else
66
- flow_control = SerialPort::NONE
67
- end
41
+ mode = "#{data_bits}#{stop_bits}#{parity}"
68
42
 
69
- serial_conn = SerialPort.new(
43
+ serial_conn = UART.open(
70
44
  block_dev,
71
45
  baud,
72
- data_bits,
73
- stop_bits,
74
- parity,
75
- flow_control
46
+ mode
76
47
  )
77
48
 
78
49
  serial_obj = {}
@@ -124,7 +95,9 @@ module PWN
124
95
  public_class_method def self.get_line_state(opts = {})
125
96
  serial_obj = opts[:serial_obj]
126
97
  serial_conn = serial_obj[:serial_conn]
127
- serial_conn.get_signals
98
+ # Should return something like:
99
+ # {"rts"=>1, "dtr"=>1, "cts"=>1, "dsr"=>1, "dcd"=>0, "ri"=>0}
100
+ serial_conn.lstat
128
101
  rescue StandardError => e
129
102
  disconnect(serial_obj: serial_obj) unless serial_obj.nil?
130
103
  raise e
@@ -138,6 +111,8 @@ module PWN
138
111
  public_class_method def self.get_modem_params(opts = {})
139
112
  serial_obj = opts[:serial_obj]
140
113
  serial_conn = serial_obj[:serial_conn]
114
+ # Should return something like:
115
+ # {"baud"=>9600, "data_bits"=>8, "stop_bits"=>1, "parity"=>0}
141
116
  serial_conn.get_modem_params
142
117
  rescue StandardError => e
143
118
  disconnect(serial_obj: serial_obj) unless serial_obj.nil?
@@ -155,8 +130,10 @@ module PWN
155
130
  payload = opts[:payload]
156
131
  serial_conn = serial_obj[:serial_conn]
157
132
 
158
- byte_arr = payload
133
+ byte_arr = nil
134
+ byte_arr = payload if payload.instance_of?(Array)
159
135
  byte_arr = payload.chars if payload.instance_of?(String)
136
+ raise "ERROR: Invalid payload type: #{payload.class}" if byte_arr.nil?
160
137
 
161
138
  byte_arr.each do |byte|
162
139
  serial_conn.putc(byte)
@@ -168,18 +145,6 @@ module PWN
168
145
  raise e
169
146
  end
170
147
 
171
- # public_class_method def self.request(opts = {})
172
- # serial_obj = opts[:serial_obj]
173
- # request = opts[:request].to_s.scrub
174
- # serial_conn = serial_obj[:serial_conn]
175
- # chars_written = serial_conn.write(request)
176
- # serial_conn.flush
177
- # chars_written
178
- # rescue StandardError => e
179
- # disconnect(serial_obj: serial_obj) unless serial_obj.nil?
180
- # raise e
181
- # end
182
-
183
148
  # Supported Method Parameters::
184
149
  # PWN::Plugins::Serial.response(
185
150
  # serial_obj: 'required - serial_obj returned from #connect method'
@@ -218,14 +183,6 @@ module PWN
218
183
  raise e
219
184
  end
220
185
 
221
- # public_class_method def self.response(opts = {})
222
- # serial_obj = opts[:serial_obj]
223
- # @session_data.last
224
- # rescue StandardError => e
225
- # disconnect(serial_obj: serial_obj) unless serial_obj.nil?
226
- # raise e
227
- # end
228
-
229
186
  # Supported Method Parameters::
230
187
  # session_data = PWN::Plugins::Serial.dump_session_data
231
188
 
@@ -278,8 +235,7 @@ module PWN
278
235
  baud: 'optional (defaults to 9600)',
279
236
  data_bits: 'optional (defaults to 8)',
280
237
  stop_bits: 'optional (defaults to 1)',
281
- parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :none)',
282
- flow_control: 'optional - :none||:hard||:soft (defaults to :none)'
238
+ parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :none)'
283
239
  )
284
240
 
285
241
  line_state = #{self}.get_line_state(
@@ -476,8 +476,7 @@ module PWN
476
476
  baud: 'optional (defaults to 19_200)',
477
477
  data_bits: 'optional (defaults to 8)',
478
478
  stop_bits: 'optional (defaults to 1)',
479
- parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :odd),'
480
- flow_control: 'optional - :none||:hard||:soft (defaults to :none)'
479
+ parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :odd)'
481
480
  )
482
481
 
483
482
  cmds = #{self}.list_cmds
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.5.228'
4
+ VERSION = '0.5.229'
5
5
  end
@@ -20,11 +20,11 @@ export rvmsudo_secure_path=1
20
20
  rvmsudo gem install bundler
21
21
  if [[ $(uname -s) == "Darwin" ]]; then
22
22
  bundle config build.pg --with-pg-config=/opt/local/lib/postgresql96/bin/pg_config
23
- bundle config build.serialport \
24
- --with-cflags=-Wno-implicit-function-declaration \
25
- --with-cflags=-Wno-int-conversion
23
+ # bundle config build.serialport \
24
+ # --with-cflags=-Wno-implicit-function-declaration \
25
+ # --with-cflags=-Wno-int-conversion
26
26
  fi
27
- bundle config build.serialport --with-cflags=-Wno-int-conversion
27
+ # bundle config build.serialport --with-cflags=-Wno-int-conversion
28
28
  bundle install
29
29
  # bundle install --full-index
30
30
  rvm --default ruby-$ruby_version@$ruby_gemset
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.228
4
+ version: 0.5.229
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2024-12-24 00:00:00.000000000 Z
10
+ date: 2025-01-14 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activesupport
@@ -99,14 +99,14 @@ dependencies:
99
99
  requirements:
100
100
  - - '='
101
101
  - !ruby/object:Gem::Version
102
- version: 6.2.2
102
+ version: 7.0.0
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - '='
108
108
  - !ruby/object:Gem::Version
109
- version: 6.2.2
109
+ version: 7.0.0
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: bson
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -253,14 +253,14 @@ dependencies:
253
253
  requirements:
254
254
  - - '='
255
255
  - !ruby/object:Gem::Version
256
- version: 1.17.0
256
+ version: 1.17.1
257
257
  type: :runtime
258
258
  prerelease: false
259
259
  version_requirements: !ruby/object:Gem::Requirement
260
260
  requirements:
261
261
  - - '='
262
262
  - !ruby/object:Gem::Version
263
- version: 1.17.0
263
+ version: 1.17.1
264
264
  - !ruby/object:Gem::Dependency
265
265
  name: fftw3
266
266
  requirement: !ruby/object:Gem::Requirement
@@ -435,14 +435,14 @@ dependencies:
435
435
  requirements:
436
436
  - - '='
437
437
  - !ruby/object:Gem::Version
438
- version: 2.9.3
438
+ version: 2.10.1
439
439
  type: :runtime
440
440
  prerelease: false
441
441
  version_requirements: !ruby/object:Gem::Requirement
442
442
  requirements:
443
443
  - - '='
444
444
  - !ruby/object:Gem::Version
445
- version: 2.9.3
445
+ version: 2.10.1
446
446
  - !ruby/object:Gem::Dependency
447
447
  name: libusb
448
448
  requirement: !ruby/object:Gem::Requirement
@@ -491,14 +491,14 @@ dependencies:
491
491
  requirements:
492
492
  - - '='
493
493
  - !ruby/object:Gem::Version
494
- version: 0.0.79
494
+ version: 0.0.81
495
495
  type: :runtime
496
496
  prerelease: false
497
497
  version_requirements: !ruby/object:Gem::Requirement
498
498
  requirements:
499
499
  - - '='
500
500
  - !ruby/object:Gem::Version
501
- version: 0.0.79
501
+ version: 0.0.81
502
502
  - !ruby/object:Gem::Dependency
503
503
  name: metasm
504
504
  requirement: !ruby/object:Gem::Requirement
@@ -617,14 +617,14 @@ dependencies:
617
617
  requirements:
618
618
  - - '='
619
619
  - !ruby/object:Gem::Version
620
- version: 1.17.2
620
+ version: 1.18.1
621
621
  type: :runtime
622
622
  prerelease: false
623
623
  version_requirements: !ruby/object:Gem::Requirement
624
624
  requirements:
625
625
  - - '='
626
626
  - !ruby/object:Gem::Version
627
- version: 1.17.2
627
+ version: 1.18.1
628
628
  - !ruby/object:Gem::Dependency
629
629
  name: nokogiri-diff
630
630
  requirement: !ruby/object:Gem::Requirement
@@ -715,14 +715,14 @@ dependencies:
715
715
  requirements:
716
716
  - - '='
717
717
  - !ruby/object:Gem::Version
718
- version: 3.3.3
718
+ version: 4.0.0
719
719
  type: :runtime
720
720
  prerelease: false
721
721
  version_requirements: !ruby/object:Gem::Requirement
722
722
  requirements:
723
723
  - - '='
724
724
  - !ruby/object:Gem::Version
725
- version: 3.3.3
725
+ version: 4.0.0
726
726
  - !ruby/object:Gem::Dependency
727
727
  name: pdf-reader
728
728
  requirement: !ruby/object:Gem::Requirement
@@ -925,14 +925,14 @@ dependencies:
925
925
  requirements:
926
926
  - - '='
927
927
  - !ruby/object:Gem::Version
928
- version: 1.69.2
928
+ version: 1.70.0
929
929
  type: :runtime
930
930
  prerelease: false
931
931
  version_requirements: !ruby/object:Gem::Requirement
932
932
  requirements:
933
933
  - - '='
934
934
  - !ruby/object:Gem::Version
935
- version: 1.69.2
935
+ version: 1.70.0
936
936
  - !ruby/object:Gem::Dependency
937
937
  name: rubocop-rake
938
938
  requirement: !ruby/object:Gem::Requirement
@@ -1045,20 +1045,6 @@ dependencies:
1045
1045
  - - '='
1046
1046
  - !ruby/object:Gem::Version
1047
1047
  version: 0.131.0
1048
- - !ruby/object:Gem::Dependency
1049
- name: serialport
1050
- requirement: !ruby/object:Gem::Requirement
1051
- requirements:
1052
- - - '='
1053
- - !ruby/object:Gem::Version
1054
- version: 1.3.2
1055
- type: :runtime
1056
- prerelease: false
1057
- version_requirements: !ruby/object:Gem::Requirement
1058
- requirements:
1059
- - - '='
1060
- - !ruby/object:Gem::Version
1061
- version: 1.3.2
1062
1048
  - !ruby/object:Gem::Dependency
1063
1049
  name: slack-ruby-client
1064
1050
  requirement: !ruby/object:Gem::Requirement
@@ -1107,14 +1093,14 @@ dependencies:
1107
1093
  requirements:
1108
1094
  - - '='
1109
1095
  - !ruby/object:Gem::Version
1110
- version: 2.4.1
1096
+ version: 2.5.0
1111
1097
  type: :runtime
1112
1098
  prerelease: false
1113
1099
  version_requirements: !ruby/object:Gem::Requirement
1114
1100
  requirements:
1115
1101
  - - '='
1116
1102
  - !ruby/object:Gem::Version
1117
- version: 2.4.1
1103
+ version: 2.5.0
1118
1104
  - !ruby/object:Gem::Dependency
1119
1105
  name: thin
1120
1106
  requirement: !ruby/object:Gem::Requirement
@@ -1157,6 +1143,20 @@ dependencies:
1157
1143
  - - '='
1158
1144
  - !ruby/object:Gem::Version
1159
1145
  version: 0.9.3
1146
+ - !ruby/object:Gem::Dependency
1147
+ name: uart
1148
+ requirement: !ruby/object:Gem::Requirement
1149
+ requirements:
1150
+ - - '='
1151
+ - !ruby/object:Gem::Version
1152
+ version: 1.0.0
1153
+ type: :runtime
1154
+ prerelease: false
1155
+ version_requirements: !ruby/object:Gem::Requirement
1156
+ requirements:
1157
+ - - '='
1158
+ - !ruby/object:Gem::Version
1159
+ version: 1.0.0
1160
1160
  - !ruby/object:Gem::Dependency
1161
1161
  name: watir
1162
1162
  requirement: !ruby/object:Gem::Requirement