pwn 0.5.228 → 0.5.230

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: 989e7a9f2d5b2d94aa4861aa8b46875ca3481c741ce77e47929a3d2acfdc8fb0
4
- data.tar.gz: 155d29494dc71dcb6406aa48db9694e64499acd439ca09216f9b4f11a7bdb21a
3
+ metadata.gz: 7af8e67a2f1debdf6740514a5c0f0b447d8b2e3020ec722c089ad7686492c760
4
+ data.tar.gz: 26fcb204bd1248eda0e941df4b0c7c55dacc8efa718fb67af994d3a3e66785a9
5
5
  SHA512:
6
- metadata.gz: 1fac4317e6c3aab36e338450bd767ed52a54e04164ba8d126e170e38ccb3635f049682fb3b456dae14ddb97f68410fea4ec5014ba1c70654a48faf56a1a3064f
7
- data.tar.gz: 0a68af70fcf790799a0cd26a89ec0798c8c22f19d49a76e942aaa29cf250abd390b92c5727bf6f50aa6ec46740a8b29ef753028b4952cfdb21e9632f300e9f90
6
+ metadata.gz: a3df6c9362495ef739f14ad4730624722639cbf60e666f2c75d9026b36d1b419edda106c8b03f03e8e958e2786354a05c71d1bbc4f1a92df9a64f34c62bcca42
7
+ data.tar.gz: e954c806a59456360e755695c0290acd2e067fde05982d6b81a2cd21b3fa22c95c6549e64e2b964e387eb265f86673d7b2c82e4b6b8d7b736483e6dcb9f3b3d1
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.230]: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.230]: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.230]: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,35 @@ 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
46
-
47
- case opts[:parity].to_s.to_sym
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
29
+ parity = opts[:parity] ||= :none
30
+
31
+ case 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}#{parity}#{stop_bits}"
42
+ puts mode
68
43
 
69
- serial_conn = SerialPort.new(
44
+ serial_conn = UART.open(
70
45
  block_dev,
71
46
  baud,
72
- data_bits,
73
- stop_bits,
74
- parity,
75
- flow_control
47
+ mode
76
48
  )
77
49
 
78
50
  serial_obj = {}
@@ -97,7 +69,7 @@ module PWN
97
69
 
98
70
  # Spin up a serial_obj session_thread
99
71
  Thread.new do
100
- serial_conn.read_timeout = -1
72
+ # serial_conn.read_timeout = -1
101
73
  serial_conn.flush
102
74
 
103
75
  loop do
@@ -124,7 +96,9 @@ module PWN
124
96
  public_class_method def self.get_line_state(opts = {})
125
97
  serial_obj = opts[:serial_obj]
126
98
  serial_conn = serial_obj[:serial_conn]
127
- serial_conn.get_signals
99
+ # Should return something like:
100
+ # {"rts"=>1, "dtr"=>1, "cts"=>1, "dsr"=>1, "dcd"=>0, "ri"=>0}
101
+ serial_conn.lstat
128
102
  rescue StandardError => e
129
103
  disconnect(serial_obj: serial_obj) unless serial_obj.nil?
130
104
  raise e
@@ -138,6 +112,8 @@ module PWN
138
112
  public_class_method def self.get_modem_params(opts = {})
139
113
  serial_obj = opts[:serial_obj]
140
114
  serial_conn = serial_obj[:serial_conn]
115
+ # Should return something like:
116
+ # {"baud"=>9600, "data_bits"=>8, "stop_bits"=>1, "parity"=>0}
141
117
  serial_conn.get_modem_params
142
118
  rescue StandardError => e
143
119
  disconnect(serial_obj: serial_obj) unless serial_obj.nil?
@@ -155,8 +131,10 @@ module PWN
155
131
  payload = opts[:payload]
156
132
  serial_conn = serial_obj[:serial_conn]
157
133
 
158
- byte_arr = payload
134
+ byte_arr = nil
135
+ byte_arr = payload if payload.instance_of?(Array)
159
136
  byte_arr = payload.chars if payload.instance_of?(String)
137
+ raise "ERROR: Invalid payload type: #{payload.class}" if byte_arr.nil?
160
138
 
161
139
  byte_arr.each do |byte|
162
140
  serial_conn.putc(byte)
@@ -168,18 +146,6 @@ module PWN
168
146
  raise e
169
147
  end
170
148
 
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
149
  # Supported Method Parameters::
184
150
  # PWN::Plugins::Serial.response(
185
151
  # serial_obj: 'required - serial_obj returned from #connect method'
@@ -218,14 +184,6 @@ module PWN
218
184
  raise e
219
185
  end
220
186
 
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
187
  # Supported Method Parameters::
230
188
  # session_data = PWN::Plugins::Serial.dump_session_data
231
189
 
@@ -278,8 +236,7 @@ module PWN
278
236
  baud: 'optional (defaults to 9600)',
279
237
  data_bits: 'optional (defaults to 8)',
280
238
  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)'
239
+ parity: 'optional - :even|:mark|:odd|:space|:none (defaults to :none)'
283
240
  )
284
241
 
285
242
  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.230'
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.230
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