pwn 0.5.58 → 0.5.60
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 +4 -4
- data/README.md +3 -3
- data/bin/pwn_bdba_scan +1 -0
- data/bin/pwn_gqrx_scanner +53 -10
- data/lib/pwn/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6c816ffedc2894df4b53a12630f520b60c6948ecab662b527477c3d95d439e8
|
4
|
+
data.tar.gz: 6d7d1b7deeac4665d4b6173cf4d2cc9a9af66d9d06b861b6dbe1b09d764e2688
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0c01cb75c862332b5cd527c615301999731e640cf8252e766fcbb46eaa912dd8ff26a85de0ab9338157638748174efd4268cb7daf06f49b7eeaed76bb72556e
|
7
|
+
data.tar.gz: cf6d6bf0aa6ca87ab063b39129d9a3b5bb1281912a426ecc2ba29c80e063f3e4530c71b0274eb55ea1971655d0d48fd9d413f511e143dc131d8d4b844fd65482
|
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.
|
40
|
+
pwn[v0.5.60]:001 >>> PWN.help
|
41
41
|
```
|
42
42
|
|
43
43
|
[](https://youtu.be/G7iLUY4FzsI)
|
@@ -52,7 +52,7 @@ $ rvm use ruby-3.3.0@pwn
|
|
52
52
|
$ gem uninstall --all --executables pwn
|
53
53
|
$ gem install --verbose pwn
|
54
54
|
$ pwn
|
55
|
-
pwn[v0.5.
|
55
|
+
pwn[v0.5.60]:001 >>> PWN.help
|
56
56
|
```
|
57
57
|
|
58
58
|
If you're using a multi-user install of RVM do:
|
@@ -62,7 +62,7 @@ $ rvm use ruby-3.3.0@pwn
|
|
62
62
|
$ rvmsudo gem uninstall --all --executables pwn
|
63
63
|
$ rvmsudo gem install --verbose pwn
|
64
64
|
$ pwn
|
65
|
-
pwn[v0.5.
|
65
|
+
pwn[v0.5.60]: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:
|
data/bin/pwn_bdba_scan
CHANGED
data/bin/pwn_gqrx_scanner
CHANGED
@@ -43,7 +43,7 @@ OptionParser.new do |options|
|
|
43
43
|
opts[:precision] = p
|
44
44
|
end
|
45
45
|
|
46
|
-
options.on('-SFLOAT', '--strength-lock=FLOAT', '<Optional - Strength to
|
46
|
+
options.on('-SFLOAT', '--strength-lock=FLOAT', '<Optional - Strength to lock onto frequency (Defaults to -45.0)>') do |s|
|
47
47
|
opts[:strength_lock] = s
|
48
48
|
end
|
49
49
|
|
@@ -242,17 +242,18 @@ def init_freq(opts = {})
|
|
242
242
|
init_freq_hash = {
|
243
243
|
demod_mode_n_passband: demod_n_passband,
|
244
244
|
frequency: current_freq,
|
245
|
+
bandwidth: bandwidth,
|
245
246
|
audio_gain_db: audio_gain_db,
|
246
247
|
squelch: current_squelch,
|
247
248
|
rf_gain: rf_gain,
|
248
249
|
if_gain: if_gain,
|
249
250
|
bb_gain: bb_gain,
|
250
251
|
strength: current_strength,
|
251
|
-
|
252
|
+
strength_lock: strength_lock,
|
252
253
|
lock_freq_duration: lock_freq_duration
|
253
254
|
}
|
254
|
-
puts JSON.pretty_generate(init_freq_hash)
|
255
255
|
|
256
|
+
print '.'
|
256
257
|
sleep lock_freq_duration if current_strength > strength_lock
|
257
258
|
|
258
259
|
init_freq_hash
|
@@ -269,9 +270,22 @@ def scan_range(opts = {})
|
|
269
270
|
strength_lock = opts[:strength_lock]
|
270
271
|
|
271
272
|
multiplier = 10**(precision - 1)
|
273
|
+
prev_freq_hash = {
|
274
|
+
demod_mode_n_passband: demodulator_mode,
|
275
|
+
frequency: start_freq,
|
276
|
+
bandwidth: bandwidth,
|
277
|
+
audio_gain_db: 0.0,
|
278
|
+
squelch: 0.0,
|
279
|
+
rf_gain: 0.0,
|
280
|
+
if_gain: 0.0,
|
281
|
+
bb_gain: 0.0,
|
282
|
+
strength: 0.0,
|
283
|
+
strength_lock: strength_lock,
|
284
|
+
lock_freq_duration: lock_freq_duration
|
285
|
+
}
|
272
286
|
if start_freq > target_freq
|
273
287
|
start_freq.downto(target_freq) do |this_freq|
|
274
|
-
next unless (
|
288
|
+
next unless (this_freq % multiplier).zero?
|
275
289
|
|
276
290
|
init_freq_hash = init_freq(
|
277
291
|
gqrx_sock: gqrx_sock,
|
@@ -281,6 +295,20 @@ def scan_range(opts = {})
|
|
281
295
|
lock_freq_duration: lock_freq_duration,
|
282
296
|
strength_lock: strength_lock
|
283
297
|
)
|
298
|
+
|
299
|
+
current_strength = init_freq_hash[:strength]
|
300
|
+
prev_strength = prev_freq_hash[:strength]
|
301
|
+
prev_freq = prev_freq_hash[:frequency]
|
302
|
+
|
303
|
+
approaching_detection = true if current_strength > prev_strength &&
|
304
|
+
current_strength > strength_lock
|
305
|
+
if approaching_detection && current_strength <= prev_strength
|
306
|
+
puts "\n**** Found a signal ~ #{prev_freq} Hz ****"
|
307
|
+
puts JSON.pretty_generate(prev_freq_hash)
|
308
|
+
approaching_detection = false
|
309
|
+
end
|
310
|
+
|
311
|
+
prev_freq_hash = init_freq_hash
|
284
312
|
end
|
285
313
|
else
|
286
314
|
this_freq = start_freq
|
@@ -294,6 +322,20 @@ def scan_range(opts = {})
|
|
294
322
|
strength_lock: strength_lock
|
295
323
|
)
|
296
324
|
|
325
|
+
current_strength = init_freq_hash[:strength]
|
326
|
+
prev_strength = prev_freq_hash[:strength]
|
327
|
+
prev_freq = prev_freq_hash[:frequency]
|
328
|
+
|
329
|
+
approaching_detection = true if current_strength > prev_strength &&
|
330
|
+
current_strength > strength_lock
|
331
|
+
if approaching_detection && current_strength < prev_strength
|
332
|
+
puts "\n**** Discovered a signal ~ #{prev_freq} Hz ****"
|
333
|
+
puts JSON.pretty_generate(prev_freq_hash)
|
334
|
+
approaching_detection = false
|
335
|
+
end
|
336
|
+
|
337
|
+
prev_freq_hash = init_freq_hash
|
338
|
+
|
297
339
|
this_freq += multiplier
|
298
340
|
end
|
299
341
|
end
|
@@ -323,7 +365,7 @@ begin
|
|
323
365
|
demodulator_mode.upcase!
|
324
366
|
raise "ERROR: Invalid demodulator mode: #{demodulator_mode}" unless %w[OFF RAW AM FM WFM WFM_ST WFM_ST_OIRT LSB USB CW CWL CWU].include?(demodulator_mode)
|
325
367
|
|
326
|
-
bandwidth = opts[:bandwidth] ||= '
|
368
|
+
bandwidth = opts[:bandwidth] ||= '200.000'
|
327
369
|
|
328
370
|
puts "Setting demodulator mode to #{demodulator_mode} and bandwidth to #{bandwidth}..."
|
329
371
|
bandwidth = bandwidth.to_s.delete('.').to_i unless bandwidth.nil?
|
@@ -341,7 +383,7 @@ begin
|
|
341
383
|
resp_ok: 'RPRT 0'
|
342
384
|
)
|
343
385
|
|
344
|
-
squelch = opts[:squelch] ||= -
|
386
|
+
squelch = opts[:squelch] ||= -63.0
|
345
387
|
squelch = squelch.to_f
|
346
388
|
squelch_resp = gqrx_cmd(
|
347
389
|
gqrx_sock: gqrx_sock,
|
@@ -356,10 +398,10 @@ begin
|
|
356
398
|
lock_freq_duration = opts[:lock_freq_duration] ||= 0.5
|
357
399
|
lock_freq_duration = lock_freq_duration.to_f
|
358
400
|
|
359
|
-
strength_lock = opts[:strength_lock] ||= -
|
401
|
+
strength_lock = opts[:strength_lock] ||= -60.0
|
360
402
|
strength_lock = strength_lock.to_f
|
361
403
|
|
362
|
-
rf_gain = opts[:rf_gain] ||=
|
404
|
+
rf_gain = opts[:rf_gain] ||= 0.0
|
363
405
|
rf_gain = rf_gain.to_f
|
364
406
|
squelch_resp = gqrx_cmd(
|
365
407
|
gqrx_sock: gqrx_sock,
|
@@ -367,7 +409,7 @@ begin
|
|
367
409
|
resp_ok: 'RPRT 0'
|
368
410
|
)
|
369
411
|
|
370
|
-
intermediate_gain = opts[:intermediate_gain] ||=
|
412
|
+
intermediate_gain = opts[:intermediate_gain] ||= 32.0
|
371
413
|
intermediate_gain = intermediate_gain.to_f
|
372
414
|
squelch_resp = gqrx_cmd(
|
373
415
|
gqrx_sock: gqrx_sock,
|
@@ -385,11 +427,12 @@ begin
|
|
385
427
|
|
386
428
|
s_freq_pretty = start_freq.to_s.chars.insert(-4, '.').insert(-8, '.').join
|
387
429
|
t_freq_pretty = target_freq.to_s.chars.insert(-4, '.').insert(-8, '.').join
|
388
|
-
puts "*** Scanning from #{s_freq_pretty} to #{t_freq_pretty}"
|
430
|
+
puts "*** Scanning from #{s_freq_pretty} to #{t_freq_pretty}\n\n\n"
|
389
431
|
|
390
432
|
scan_range(
|
391
433
|
gqrx_sock: gqrx_sock,
|
392
434
|
demodulator_mode: demodulator_mode,
|
435
|
+
bandwidth: bandwidth,
|
393
436
|
start_freq: start_freq,
|
394
437
|
target_freq: target_freq,
|
395
438
|
precision: precision,
|
data/lib/pwn/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pwn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.60
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 0day Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03-
|
11
|
+
date: 2024-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|