pwn 0.5.517 → 0.5.518

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: d403ac56d5b24ec9f22bf2b773ce83f4902230cbd2d5b75407186f0ffad9f7a3
4
- data.tar.gz: 74a0da9916beaa43083e5d8b72e5418ce8d5ded33d941fbe8b4d7fa1d43daa62
3
+ metadata.gz: 4782a5ea26c616b61254cbc43ba1fa0fbee4f71890b48ac3b0197a0586965356
4
+ data.tar.gz: 987fdf3e321dd0790ca1f059c483a045bcee5239f63ba5f2bfbd065e5f85c24f
5
5
  SHA512:
6
- metadata.gz: baa8a16fb23ee21bb239fe7aed8285a9b987faf5fe874f8ec383b156690f60cc5e3a0f57865f0f7bedd926d4052015a60329b3ec4a5741b2498aef3b304092d8
7
- data.tar.gz: 13d7d16fae2271e71e53f8b06ef20c5c493b7ffc956aad3848098d8c42d1354cf11645bdd5d18636671d569b6f4f56e2a7fc0d8871bf64b4e6566f2e76c42fae
6
+ metadata.gz: 4417e4d4bbcffc1596d854c0d37eb2911b65456257c8d5520afeb1706bda670f1cb4881f312ca521951ae8d47eba063af98ac4f89d981c34b50f5e2acc052c7b
7
+ data.tar.gz: c989b552b031669fb6a2a96580d53ad4f240607d68f7ee2d4b9f65a9b0e48c6d1b5666613782a356a5edb11fb5d2178b30501a7e3bfa2fc6057eda39d3a70299
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.517]:001 >>> PWN.help
40
+ pwn[v0.5.518]: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.4.7@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.5.517]:001 >>> PWN.help
55
+ pwn[v0.5.518]: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.4.7@pwn
62
62
  $ rvmsudo gem uninstall --all --executables pwn
63
63
  $ rvmsudo gem install --verbose pwn
64
64
  $ pwn
65
- pwn[v0.5.517]:001 >>> PWN.help
65
+ pwn[v0.5.518]: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:
@@ -11,17 +11,17 @@ module PWN
11
11
  # )
12
12
 
13
13
  # private_class_method def self.rds(opts = {})
14
- public_class_method def self.rds(opts = {})
14
+ public_class_method def self.decode(opts = {})
15
15
  gqrx_sock = opts[:gqrx_sock]
16
16
 
17
17
  # We toggle RDS off and on to reset the decoder
18
- rds_resp = gqrx_cmd(
18
+ rds_resp = PWN::SDR::GQRX.gqrx_cmd(
19
19
  gqrx_sock: gqrx_sock,
20
20
  cmd: 'U RDS 0',
21
21
  resp_ok: 'RPRT 0'
22
22
  )
23
23
 
24
- rds_resp = gqrx_cmd(
24
+ rds_resp = PWN::SDR::GQRX.gqrx_cmd(
25
25
  gqrx_sock: gqrx_sock,
26
26
  cmd: 'U RDS 1',
27
27
  resp_ok: 'RPRT 0'
@@ -34,9 +34,9 @@ module PWN
34
34
  print 'INFO: Decoding FM radio RDS data (Press ENTER to skip)...'
35
35
  max_attempts.times do
36
36
  attempts += 1
37
- rds_resp[:rds_pi] = gqrx_cmd(gqrx_sock: gqrx_sock, cmd: 'p RDS_PI')
38
- rds_resp[:rds_ps_name] = gqrx_cmd(gqrx_sock: gqrx_sock, cmd: 'p RDS_PS_NAME')
39
- rds_resp[:rds_radiotext] = gqrx_cmd(gqrx_sock: gqrx_sock, cmd: 'p RDS_RADIOTEXT')
37
+ rds_resp[:rds_pi] = PWN::SDR::GQRX.gqrx_cmd(gqrx_sock: gqrx_sock, cmd: 'p RDS_PI')
38
+ rds_resp[:rds_ps_name] = PWN::SDR::GQRX.gqrx_cmd(gqrx_sock: gqrx_sock, cmd: 'p RDS_PS_NAME')
39
+ rds_resp[:rds_radiotext] = PWN::SDR::GQRX.gqrx_cmd(gqrx_sock: gqrx_sock, cmd: 'p RDS_RADIOTEXT')
40
40
 
41
41
  # Break if ENTER key pressed
42
42
  # This is useful if no RDS data is available
data/lib/pwn/sdr/gqrx.rb CHANGED
@@ -14,7 +14,7 @@ module PWN
14
14
  # resp_ok: 'optional - Expected response from GQRX to indicate success'
15
15
  # )
16
16
 
17
- private_class_method def self.gqrx_cmd(opts = {})
17
+ public_class_method def self.gqrx_cmd(opts = {})
18
18
  gqrx_sock = opts[:gqrx_sock]
19
19
  cmd = opts[:cmd]
20
20
  resp_ok = opts[:resp_ok]
@@ -175,7 +175,7 @@ module PWN
175
175
  unique_samples = samples.uniq
176
176
  if unique_samples.length > 1
177
177
  prev_strength_db = unique_samples[-2]
178
- distance_between_unique_samples = (strength_db - prev_strength_db).abs
178
+ distance_between_unique_samples = (strength_db - prev_strength_db).abs.round(2)
179
179
  strength_measured = true if distance_between_unique_samples.positive? && strength_lock > strength_db
180
180
  end
181
181
  strength_measured = true if distance_between_unique_samples.positive? && distance_between_unique_samples < 5
@@ -573,7 +573,7 @@ module PWN
573
573
  )
574
574
 
575
575
  rds_resp = nil
576
- rds_resp = PWN::SDR::Decoder.rds(gqrx_sock: gqrx_sock) if rds
576
+ rds_resp = PWN::SDR::Decoder::RDS.decode(gqrx_sock: gqrx_sock) if rds
577
577
 
578
578
  freq_obj[:audio_gain_db] = audio_gain_db
579
579
  freq_obj[:demod_mode_n_passband] = demod_n_passband
@@ -948,6 +948,12 @@ module PWN
948
948
  port: 'optional - GQRX target port (defaults to 7356)'
949
949
  )
950
950
 
951
+ gqrx_resp = #{self}.gqrx_cmd(
952
+ gqrx_sock: 'required - GQRX socket object returned from #connect method',
953
+ cmd: 'required - GQRX command to send',
954
+ resp_ok: 'optional - Expected OK response (defaults to nil / no check)'
955
+ )
956
+
951
957
  freq_obj = #{self}.init_freq(
952
958
  gqrx_sock: 'required - GQRX socket object returned from #connect method',
953
959
  freq: 'required - Frequency to set',
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.517'
4
+ VERSION = '0.5.518'
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.5.517
4
+ version: 0.5.518
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.