pwn 0.5.428 → 0.5.429
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/Gemfile +1 -1
- data/README.md +3 -3
- data/etc/pwn.yaml.EXAMPLE +24 -22
- data/lib/pwn/plugins/repl.rb +31 -28
- data/lib/pwn/plugins/vault.rb +9 -10
- data/lib/pwn/version.rb +1 -1
- data/third_party/pwn_rdoc.jsonl +12 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d62d95361763fc4363d172024859e5fc8cc9ea1b96b2765a37c679b468c9a22f
|
4
|
+
data.tar.gz: 8def884e714ec444f10fae2c952087acb64fc4c5f06bef088f19e3f0a39fc157
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d46e4790ac2a3023a6210d77641c530226127429000c3994919750fcefa3a4610b0bf7390d4790be85081a9a7846c88e1bfa6ebda334375922276678239066cc
|
7
|
+
data.tar.gz: 2f96f89617d314c6f1b9094580890b67a9b722fd9a58ee8e05642ba7c8bdd51e8f598f3e7c2cc3df267da05ba77efebbb23e29e15ccd684414b385531cad122c
|
data/Gemfile
CHANGED
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.429]:001 >>> PWN.help
|
41
41
|
```
|
42
42
|
|
43
43
|
[](https://youtu.be/G7iLUY4FzsI)
|
@@ -52,7 +52,7 @@ $ rvm use ruby-3.4.4@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.429]: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.4@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.429]: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/etc/pwn.yaml.EXAMPLE
CHANGED
@@ -1,7 +1,30 @@
|
|
1
1
|
# Drop this file in $HOME/.pwn/pwn.yaml
|
2
2
|
# Use PWN::Plugins::Vault.create(file: 'pwn.yaml') to encrypt this file
|
3
|
+
|
3
4
|
# ai_engine: 'openai' || 'ollama'
|
4
|
-
|
5
|
+
ai:
|
6
|
+
active: 'grok'
|
7
|
+
introspection: false
|
8
|
+
grok:
|
9
|
+
base_uri: 'optional - Base URI for Grok - Use private base OR defaults to https://api.x.ai/v1'
|
10
|
+
key: 'required - OpenAI API Key'
|
11
|
+
model: 'optional - Grok model to use'
|
12
|
+
system_role_content: 'You are an ethically hacking OpenAI agent.'
|
13
|
+
temp: 'optional - OpenAI temperature'
|
14
|
+
|
15
|
+
openai:
|
16
|
+
base_uri: 'optional - Base URI for OpenAI - Use private base OR defaults to https://api.openai.com/v1'
|
17
|
+
key: 'required - OpenAI API Key'
|
18
|
+
model: 'optional - OpenAI model to use'
|
19
|
+
system_role_content: 'You are an ethically hacking OpenAI agent.'
|
20
|
+
temp: 'optional - OpenAI temperature'
|
21
|
+
|
22
|
+
ollama:
|
23
|
+
base_uri: 'required - Base URI for Open WebUI - e.g. https://ollama.local'
|
24
|
+
key: 'required - Open WebUI API Key Under Settings >> Account >> JWT Token'
|
25
|
+
model: 'required - Ollama model to use'
|
26
|
+
system_role_content: 'You are an ethically hacking Ollama agent.'
|
27
|
+
temp: 'optional - Ollama temperature'
|
5
28
|
|
6
29
|
# Use PWN::Plugins::Assembly.list_supported_archs to list supported architectures
|
7
30
|
asm:
|
@@ -28,27 +51,6 @@ irc:
|
|
28
51
|
hunter:
|
29
52
|
api_key: 'hunter.how API Key'
|
30
53
|
|
31
|
-
grok:
|
32
|
-
base_uri: 'optional - Base URI for Grok - Use private base OR defaults to https://api.x.ai/v1'
|
33
|
-
key: 'required - OpenAI API Key'
|
34
|
-
model: 'optional - Grok model to use'
|
35
|
-
system_role_content: 'You are an ethically hacking OpenAI agent.'
|
36
|
-
temp: 'optional - OpenAI temperature'
|
37
|
-
|
38
|
-
openai:
|
39
|
-
base_uri: 'optional - Base URI for OpenAI - Use private base OR defaults to https://api.openai.com/v1'
|
40
|
-
key: 'required - OpenAI API Key'
|
41
|
-
model: 'optional - OpenAI model to use'
|
42
|
-
system_role_content: 'You are an ethically hacking OpenAI agent.'
|
43
|
-
temp: 'optional - OpenAI temperature'
|
44
|
-
|
45
|
-
ollama:
|
46
|
-
base_uri: 'required - Base URI for Open WebUI - e.g. https://ollama.local'
|
47
|
-
key: 'required - Open WebUI API Key Under Settings >> Account >> JWT Token'
|
48
|
-
model: 'required - Ollama model to use'
|
49
|
-
system_role_content: 'You are an ethically hacking Ollama agent.'
|
50
|
-
temp: 'optional - Ollama temperature'
|
51
|
-
|
52
54
|
meshtastic:
|
53
55
|
psks:
|
54
56
|
LongFast: 'required - PSK for LongFast channel'
|
data/lib/pwn/plugins/repl.rb
CHANGED
@@ -21,7 +21,7 @@ module PWN
|
|
21
21
|
if Pry.config.refresh
|
22
22
|
# puts "Refreshing PWN env via #{opts[:yaml_config_path]}"
|
23
23
|
opts[:pi] = pi
|
24
|
-
PWN::Plugins::Vault.
|
24
|
+
PWN::Plugins::Vault.refresh_config(opts)
|
25
25
|
end
|
26
26
|
|
27
27
|
pi.config.pwn_repl_line += 1
|
@@ -48,13 +48,13 @@ module PWN
|
|
48
48
|
end
|
49
49
|
|
50
50
|
if pi.config.pwn_ai
|
51
|
-
|
52
|
-
model = pi.config.pwn[
|
53
|
-
system_role_content = pi.config.pwn[
|
54
|
-
temp = pi.config.pwn[
|
55
|
-
pname = "pwn.ai:#{
|
56
|
-
pname = "pwn.ai:#{
|
57
|
-
pname = "pwn.ai:#{
|
51
|
+
engine = pi.config.pwn[:ai][:active].to_s.downcase.to_sym
|
52
|
+
model = pi.config.pwn[:ai][engine][:model]
|
53
|
+
system_role_content = pi.config.pwn[:ai][engine][:system_role_content]
|
54
|
+
temp = pi.config.pwn[:ai][engine][:temp]
|
55
|
+
pname = "pwn.ai:#{engine}"
|
56
|
+
pname = "pwn.ai:#{engine}/#{model}" if model
|
57
|
+
pname = "pwn.ai:#{engine}/#{model}.SPEAK" if pi.config.pwn_ai_speak
|
58
58
|
pi.config.prompt_name = pname
|
59
59
|
|
60
60
|
name = "\001\e[1m\002\001\e[33m\002#{pi.config.prompt_name}\001\e[0m\002"
|
@@ -306,12 +306,12 @@ module PWN
|
|
306
306
|
next unless dm_agent == nick
|
307
307
|
|
308
308
|
response_history = ai_agents[dm_agent.to_sym][:response_history]
|
309
|
-
|
310
|
-
base_uri = pi.config.pwn[
|
311
|
-
key = pi.config.pwn[
|
312
|
-
temp = pi.config.pwn[
|
313
|
-
model = pi.config.pwn[
|
314
|
-
system_role_content = pi.config.pwn[
|
309
|
+
engine = pi.config.pwn[:ai][:active].to_s.downcase.to_sym
|
310
|
+
base_uri = pi.config.pwn[:ai][engine][:base_uri]
|
311
|
+
key = pi.config.pwn[:ai][engine][:key] ||= ''
|
312
|
+
temp = pi.config.pwn[:ai][engine][:temp]
|
313
|
+
model = pi.config.pwn[:ai][engine][:model]
|
314
|
+
system_role_content = pi.config.pwn[:ai][engine][:system_role_content]
|
315
315
|
|
316
316
|
users_in_chan = PWN::Plugins::IRC.names(
|
317
317
|
irc_obj: irc_obj,
|
@@ -342,7 +342,7 @@ module PWN
|
|
342
342
|
message.
|
343
343
|
"
|
344
344
|
|
345
|
-
case
|
345
|
+
case engine
|
346
346
|
when :grok
|
347
347
|
response = PWN::AI::Grok.chat(
|
348
348
|
base_uri: base_uri,
|
@@ -459,7 +459,7 @@ module PWN
|
|
459
459
|
end
|
460
460
|
end
|
461
461
|
|
462
|
-
Pry::Commands.create_command 'pwn-vault
|
462
|
+
Pry::Commands.create_command 'pwn-vault' do
|
463
463
|
description 'Edit the pwn.yaml configuration file.'
|
464
464
|
|
465
465
|
def process
|
@@ -541,7 +541,7 @@ module PWN
|
|
541
541
|
Pry.config.hooks.add_hook(:before_session, :init_opts) do |_output, _binding, pi|
|
542
542
|
# puts "Refreshing PWN env via #{opts[:yaml_config_path]}"
|
543
543
|
opts[:pi] = pi
|
544
|
-
PWN::Plugins::Vault.
|
544
|
+
PWN::Plugins::Vault.refresh_config(opts)
|
545
545
|
end
|
546
546
|
|
547
547
|
Pry.config.hooks.add_hook(:after_read, :pwn_asm_hook) do |request, pi|
|
@@ -585,23 +585,23 @@ module PWN
|
|
585
585
|
if pi.config.pwn_ai && !request.chomp.empty?
|
586
586
|
request = pi.input.line_buffer.to_s
|
587
587
|
debug = pi.config.pwn_ai_debug
|
588
|
-
|
589
|
-
base_uri = pi.config.pwn[
|
590
|
-
key = pi.config.pwn[
|
588
|
+
engine = pi.config.pwn[:ai][:active].to_s.downcase.to_sym
|
589
|
+
base_uri = pi.config.pwn[:ai][engine][:base_uri]
|
590
|
+
key = pi.config.pwn[:ai][engine][:key] ||= ''
|
591
591
|
if key.empty?
|
592
592
|
key = PWN::Plugins::AuthenticationHelper.mask_password(
|
593
593
|
prompt: 'pwn-ai Key'
|
594
594
|
)
|
595
|
-
pi.config.pwn[
|
595
|
+
pi.config.pwn[:ai][engine][:key] = key
|
596
596
|
end
|
597
597
|
|
598
|
-
response_history = pi.config.
|
598
|
+
response_history = pi.config.pwn[:ai][engine][:response_history]
|
599
599
|
speak_answer = pi.config.pwn_ai_speak
|
600
|
-
model = pi.config.pwn[
|
601
|
-
system_role_content = pi.config.pwn[
|
602
|
-
temp = pi.config.pwn[
|
600
|
+
model = pi.config.pwn[:ai][engine][:model]
|
601
|
+
system_role_content = pi.config.pwn[:ai][engine][:system_role_content]
|
602
|
+
temp = pi.config.pwn[:ai][engine][:temp]
|
603
603
|
|
604
|
-
case
|
604
|
+
case engine
|
605
605
|
when :grok
|
606
606
|
response = PWN::AI::Grok.chat(
|
607
607
|
base_uri: base_uri,
|
@@ -639,7 +639,7 @@ module PWN
|
|
639
639
|
spinner: true
|
640
640
|
)
|
641
641
|
else
|
642
|
-
raise "ERROR: Unsupported AI Engine: #{
|
642
|
+
raise "ERROR: Unsupported AI Engine: #{engine}"
|
643
643
|
end
|
644
644
|
# puts response.inspect
|
645
645
|
|
@@ -668,7 +668,7 @@ module PWN
|
|
668
668
|
pp response_history
|
669
669
|
puts "\nresponse_history[:choices] Length: #{response_history[:choices].length}\n" unless response_history.nil?
|
670
670
|
end
|
671
|
-
pi.config.
|
671
|
+
pi.config.pwn[:ai][engine][:response_history] = response_history
|
672
672
|
end
|
673
673
|
end
|
674
674
|
rescue StandardError => e
|
@@ -687,6 +687,9 @@ module PWN
|
|
687
687
|
|
688
688
|
pwn_config_root = "#{Dir.home}/.pwn"
|
689
689
|
FileUtils.mkdir_p(pwn_config_root)
|
690
|
+
|
691
|
+
Pry.config.history_file = "#{pwn_config_root}/pwn_history"
|
692
|
+
|
690
693
|
opts[:yaml_config_path] ||= "#{pwn_config_root}/pwn.yaml"
|
691
694
|
opts[:yaml_decryptor_path] ||= "#{pwn_config_root}/pwn.decryptor.yaml"
|
692
695
|
|
data/lib/pwn/plugins/vault.rb
CHANGED
@@ -235,12 +235,12 @@ module PWN
|
|
235
235
|
end
|
236
236
|
|
237
237
|
# Supported Method Parameters::
|
238
|
-
# PWN::Plugins::Vault.
|
238
|
+
# PWN::Plugins::Vault.refresh_config(
|
239
239
|
# yaml_config_path: 'required - full path to pwn.yaml file',
|
240
240
|
# pi: 'optional - Pry instance (default: Pry)',
|
241
241
|
# yaml_decryptor_path: 'optional - full path to decryption YAML file'
|
242
242
|
# )
|
243
|
-
public_class_method def self.
|
243
|
+
public_class_method def self.refresh_config(opts = {})
|
244
244
|
yaml_config_path = opts[:yaml_config_path]
|
245
245
|
|
246
246
|
return false unless File.exist?(yaml_config_path)
|
@@ -279,16 +279,15 @@ module PWN
|
|
279
279
|
]
|
280
280
|
|
281
281
|
# Convert ai_engine to symbol and downcase to ensure stability
|
282
|
-
yaml_config[:ai_engine] = yaml_config[:ai_engine].to_s.downcase.to_sym
|
283
282
|
pi.config.pwn = yaml_config
|
284
|
-
|
285
|
-
raise "ERROR: Unsupported AI Engine: #{
|
283
|
+
engine = pi.config.pwn[:ai][:active].to_s.downcase.to_sym
|
284
|
+
raise "ERROR: Unsupported AI Engine: #{engine} in #{yaml_config_path}. Supported AI Engines:\n#{valid_ai_engines.inspect}" unless valid_ai_engines.include?(engine)
|
286
285
|
|
287
|
-
model = pi.config.pwn[
|
288
|
-
system_role_content = pi.config.pwn[
|
286
|
+
model = pi.config.pwn[:ai][engine][:model]
|
287
|
+
system_role_content = pi.config.pwn[:ai][engine][:system_role_content]
|
289
288
|
|
290
|
-
# Reset the ai response history
|
291
|
-
pi.config.
|
289
|
+
# Reset the ai response history on config refresh
|
290
|
+
pi.config.pwn[:ai][engine][:response_history] = {
|
292
291
|
id: '',
|
293
292
|
object: '',
|
294
293
|
model: model,
|
@@ -364,7 +363,7 @@ module PWN
|
|
364
363
|
file: 'required - file to check if encrypted'
|
365
364
|
)
|
366
365
|
|
367
|
-
#{self}.
|
366
|
+
#{self}.refresh_config(
|
368
367
|
yaml_config_path: 'required - full path to pwn.yaml file',
|
369
368
|
pi: 'optional - Pry instance (default: Pry)',
|
370
369
|
yaml_decryptor_path: 'optional - full path to decryption YAML file'
|
data/lib/pwn/version.rb
CHANGED
data/third_party/pwn_rdoc.jsonl
CHANGED
@@ -438,6 +438,17 @@
|
|
438
438
|
{"messages":[{"role":"user","content":"PWN::Banner::WhiteRabbit.authors Usage"},{"role":"assistant","content":"`PWN::Banner::WhiteRabbit.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
439
439
|
{"messages":[{"role":"user","content":"PWN::Banner::WhiteRabbit.get Usage"},{"role":"assistant","content":"`PWN::Banner::WhiteRabbit.get`: Supported Method Parameters\n\nPWN::Banner::WhiteRabbit.get\n"}]}
|
440
440
|
{"messages":[{"role":"user","content":"PWN::Banner::WhiteRabbit.help Usage"},{"role":"assistant","content":"`PWN::Banner::WhiteRabbit.help`: "}]}
|
441
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain.help Usage"},{"role":"assistant","content":"`PWN::Blockchain.help`: "}]}
|
442
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.authors Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
443
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.btc_rest_call Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.btc_rest_call`: Supported Method Parameters\n\nbtc_rest_call(\n\nhttp_method: 'optional HTTP method (defaults to GET)\nrest_call: 'required rest call to make per the schema',\nparams: 'optional params passed in the URI or HTTP Headers',\nhttp_body: 'optional HTTP body sent in HTTP methods that support it e.g. POST',\ntimeout: 'optional timeout in seconds (defaults to 180)',\nspinner: 'optional - display spinner (defaults to false)'\n\n)\n"}]}
|
444
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.get_block_details Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.get_block_details`: Supported Method Parameters\n\nPWN::Blockchain::BTC.get_block_details(\n\nheight: 'required - block height number',\ntoken: 'optional - API token for higher rate limits'\n\n)\n"}]}
|
445
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.get_latest_block Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.get_latest_block`: Supported Method Parameters\n\nlatest_block = PWN::Blockchain::BTC.get_latest_block(\n\ntoken: 'optional - API token for higher rate limits'\n\n)\n"}]}
|
446
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::BTC.help Usage"},{"role":"assistant","content":"`PWN::Blockchain::BTC.help`: "}]}
|
447
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::ETH.authors Usage"},{"role":"assistant","content":"`PWN::Blockchain::ETH.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
448
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::ETH.eth_rest_call Usage"},{"role":"assistant","content":"`PWN::Blockchain::ETH.eth_rest_call`: Supported Method Parameters\n\neth_rest_call(\n\nhttp_method: 'optional HTTP method (defaults to GET)\nrest_call: 'required rest call to make per the schema',\nparams: 'optional params passed in the URI or HTTP Headers',\nhttp_body: 'optional HTTP body sent in HTTP methods that support it e.g. POST',\ntimeout: 'optional timeout in seconds (defaults to 180)',\nspinner: 'optional - display spinner (defaults to false)'\n\n)\n"}]}
|
449
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::ETH.get_block_details Usage"},{"role":"assistant","content":"`PWN::Blockchain::ETH.get_block_details`: Supported Method Parameters\n\nPWN::Blockchain::ETH.get_block_details(\n\nheight: 'required - block height number',\ntoken: 'optional - API token for higher rate limits'\n\n)\n"}]}
|
450
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::ETH.get_latest_block Usage"},{"role":"assistant","content":"`PWN::Blockchain::ETH.get_latest_block`: Supported Method Parameters\n\nlatest_block = PWN::Blockchain::ETH.get_latest_block(\n\ntoken: 'optional - API token for higher rate limits'\n\n)\n"}]}
|
451
|
+
{"messages":[{"role":"user","content":"PWN::Blockchain::ETH.help Usage"},{"role":"assistant","content":"`PWN::Blockchain::ETH.help`: "}]}
|
441
452
|
{"messages":[{"role":"user","content":"PWN::FFI.help Usage"},{"role":"assistant","content":"`PWN::FFI.help`: "}]}
|
442
453
|
{"messages":[{"role":"user","content":"PWN::FFI::Stdio.authors Usage"},{"role":"assistant","content":"`PWN::FFI::Stdio.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
443
454
|
{"messages":[{"role":"user","content":"PWN::FFI::Stdio.help Usage"},{"role":"assistant","content":"`PWN::FFI::Stdio.help`: "}]}
|
@@ -1023,7 +1034,7 @@
|
|
1023
1034
|
{"messages":[{"role":"user","content":"PWN::Plugins::Vault.encrypt Usage"},{"role":"assistant","content":"`PWN::Plugins::Vault.encrypt`: Supported Method Parameters\n\nPWN::Plugins::Vault.encrypt(\n\nfile: 'required - file to encrypt',\nkey: 'required - key to decrypt',\niv: 'required - iv to decrypt'\n\n)\n"}]}
|
1024
1035
|
{"messages":[{"role":"user","content":"PWN::Plugins::Vault.file_encrypted? Usage"},{"role":"assistant","content":"`PWN::Plugins::Vault.file_encrypted?`: Supported Method Parameters\n\nPWN::Plugins::Vault.file_encrypted?(\n\nfile: 'required - file to check if encrypted'\n\n)\n"}]}
|
1025
1036
|
{"messages":[{"role":"user","content":"PWN::Plugins::Vault.help Usage"},{"role":"assistant","content":"`PWN::Plugins::Vault.help`: "}]}
|
1026
|
-
{"messages":[{"role":"user","content":"PWN::Plugins::Vault.refresh_config_for_repl Usage"},{"role":"assistant","content":"`PWN::Plugins::Vault.refresh_config_for_repl`: Supported Method Parameters\n\nPWN::Plugins::Vault.refresh_config_for_repl(\n\n yaml_config_path: 'required - full path to pwn.yaml file',\n pi: 'optional - Pry instance (default: Pry)',\n
|
1037
|
+
{"messages":[{"role":"user","content":"PWN::Plugins::Vault.refresh_config_for_repl Usage"},{"role":"assistant","content":"`PWN::Plugins::Vault.refresh_config_for_repl`: Supported Method Parameters\n\nPWN::Plugins::Vault.refresh_config_for_repl(\n\n yaml_config_path: 'required - full path to pwn.yaml file',\n pi: 'optional - Pry instance (default: Pry)',\n yaml_decryptor_path: 'optional - full path to decryption YAML file'\n)\n"}]}
|
1027
1038
|
{"messages":[{"role":"user","content":"PWN::Plugins::Vault.refresh_encryption_secrets Usage"},{"role":"assistant","content":"`PWN::Plugins::Vault.refresh_encryption_secrets`: Supported Method Parameters\n\nPWN::Plugins::Vault.refresh_encryption_secrets(\n\nfile: 'required - file to encrypt with new key and iv',\nkey: 'required - key to decrypt',\niv: 'required - iv to decrypt'\n\n)\n"}]}
|
1028
1039
|
{"messages":[{"role":"user","content":"PWN::Plugins::Voice.authors Usage"},{"role":"assistant","content":"`PWN::Plugins::Voice.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
1029
1040
|
{"messages":[{"role":"user","content":"PWN::Plugins::Voice.help Usage"},{"role":"assistant","content":"`PWN::Plugins::Voice.help`: "}]}
|
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.
|
4
|
+
version: 0.5.429
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 0day Inc.
|
@@ -477,14 +477,14 @@ dependencies:
|
|
477
477
|
requirements:
|
478
478
|
- - '='
|
479
479
|
- !ruby/object:Gem::Version
|
480
|
-
version:
|
480
|
+
version: 2.0.0
|
481
481
|
type: :runtime
|
482
482
|
prerelease: false
|
483
483
|
version_requirements: !ruby/object:Gem::Requirement
|
484
484
|
requirements:
|
485
485
|
- - '='
|
486
486
|
- !ruby/object:Gem::Version
|
487
|
-
version:
|
487
|
+
version: 2.0.0
|
488
488
|
- !ruby/object:Gem::Dependency
|
489
489
|
name: mail
|
490
490
|
requirement: !ruby/object:Gem::Requirement
|