pwn 0.5.620 → 0.5.621
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 +1 -1
- data/documentation/Agent-Tool-Registry.md +2 -2
- data/documentation/Cron.md +13 -0
- data/documentation/Diagrams.md +1 -1
- data/documentation/Extrospection.md +71 -5
- data/documentation/Home.md +2 -2
- data/documentation/How-PWN-Works.md +1 -1
- data/documentation/Mistakes.md +2 -1
- data/documentation/Persistence.md +2 -1
- data/documentation/Skills-Memory-Learning.md +1 -0
- data/documentation/Transparent-Browser.md +18 -1
- data/documentation/diagrams/agent-tool-registry.svg +55 -54
- data/documentation/diagrams/ai-integration-tool-calling.svg +24 -24
- data/documentation/diagrams/aws-cloud-security.svg +25 -25
- data/documentation/diagrams/burp-vs-zap-preference.svg +12 -12
- data/documentation/diagrams/code-scanning-sast.svg +25 -25
- data/documentation/diagrams/cron-scheduling.svg +23 -23
- data/documentation/diagrams/dot/agent-tool-registry.dot +2 -2
- data/documentation/diagrams/dot/extrospection-world-awareness.dot +29 -8
- data/documentation/diagrams/dot/memory-skills-detailed.dot +4 -0
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +2 -2
- data/documentation/diagrams/dot/persistence-filesystem.dot +2 -1
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +10 -4
- data/documentation/diagrams/driver-framework.svg +13 -13
- data/documentation/diagrams/extrospection-world-awareness.svg +229 -99
- data/documentation/diagrams/fuzzing-workflow.svg +24 -24
- data/documentation/diagrams/hardware-hacking.svg +18 -18
- data/documentation/diagrams/history-to-drivers.svg +18 -18
- data/documentation/diagrams/memory-skills-detailed.svg +124 -101
- data/documentation/diagrams/mistakes-negative-feedback.svg +55 -55
- data/documentation/diagrams/network-infra-testing.svg +27 -27
- data/documentation/diagrams/overall-pwn-architecture.svg +85 -85
- data/documentation/diagrams/penetration-testing-workflow.svg +30 -30
- data/documentation/diagrams/persistence-filesystem.svg +94 -85
- data/documentation/diagrams/plugin-ecosystem.svg +35 -35
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +226 -180
- data/documentation/diagrams/pwn-repl-prototyping.svg +20 -20
- data/documentation/diagrams/reporting-pipeline.svg +18 -18
- data/documentation/diagrams/reverse-engineering-flow.svg +21 -21
- data/documentation/diagrams/sdr-radio-flow.svg +31 -31
- data/documentation/diagrams/sessions-cron-automation.svg +18 -18
- data/documentation/diagrams/swarm-multi-agent.svg +39 -39
- data/documentation/diagrams/web-application-testing.svg +26 -26
- data/documentation/diagrams/zero-day-research-flow.svg +25 -25
- data/documentation/pwn-ai-Agent.md +1 -1
- data/lib/pwn/ai/agent/extrospection.rb +433 -4
- data/lib/pwn/ai/agent/tools/extrospection.rb +88 -3
- data/lib/pwn/sdr/decoder/adsb.rb +14 -33
- data/lib/pwn/sdr/decoder/apt.rb +97 -36
- data/lib/pwn/sdr/decoder/base.rb +258 -171
- data/lib/pwn/sdr/decoder/bluetooth.rb +13 -20
- data/lib/pwn/sdr/decoder/dect.rb +13 -27
- data/lib/pwn/sdr/decoder/dsp.rb +396 -0
- data/lib/pwn/sdr/decoder/flex.rb +177 -210
- data/lib/pwn/sdr/decoder/gps.rb +12 -21
- data/lib/pwn/sdr/decoder/gsm.rb +21 -73
- data/lib/pwn/sdr/decoder/iridium.rb +11 -26
- data/lib/pwn/sdr/decoder/lora.rb +16 -23
- data/lib/pwn/sdr/decoder/lte.rb +11 -32
- data/lib/pwn/sdr/decoder/morse.rb +95 -21
- data/lib/pwn/sdr/decoder/p25.rb +19 -16
- data/lib/pwn/sdr/decoder/pager.rb +22 -38
- data/lib/pwn/sdr/decoder/pocsag.rb +175 -68
- data/lib/pwn/sdr/decoder/rfid.rb +24 -33
- data/lib/pwn/sdr/decoder/rtl433.rb +21 -30
- data/lib/pwn/sdr/decoder/rtty.rb +100 -27
- data/lib/pwn/sdr/decoder/wifi.rb +21 -42
- data/lib/pwn/sdr/decoder/zigbee.rb +18 -40
- data/lib/pwn/sdr/decoder.rb +8 -0
- data/lib/pwn/version.rb +1 -1
- data/spec/lib/pwn/sdr/decoder/dsp_spec.rb +15 -0
- data/third_party/pwn_rdoc.jsonl +24 -3
- metadata +3 -1
|
@@ -9,75 +9,75 @@
|
|
|
9
9
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 348.08)">
|
|
10
10
|
<title>PWN_Cron</title>
|
|
11
11
|
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-348.08 1204.45,-348.08 1204.45,43.2 -43.2,43.2"/>
|
|
12
|
-
<text xml:space="preserve" text-anchor="start" x="372.5" y="-282.88" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">PWN::Cron — Scheduled Autonomous Jobs</text>
|
|
13
|
-
<text xml:space="preserve" text-anchor="start" x="452" y="-271.43" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">prompt · ruby · script → jobs.yml → crontab → pwn-ai</text>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="372.5" y="-282.88" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">PWN::Cron — Scheduled Autonomous Jobs</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="452" y="-271.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#94a3b8">prompt · ruby · script → jobs.yml → crontab → pwn-ai</text>
|
|
14
14
|
<g id="clust1" class="cluster">
|
|
15
15
|
<title>cluster_kinds</title>
|
|
16
16
|
<path fill="#022c22" stroke="#047857" stroke-width="2" d="M775.75,-30.88C775.75,-30.88 930,-30.88 930,-30.88 936,-30.88 942,-36.88 942,-42.88 942,-42.88 942,-245.88 942,-245.88 942,-251.88 936,-257.88 930,-257.88 930,-257.88 775.75,-257.88 775.75,-257.88 769.75,-257.88 763.75,-251.88 763.75,-245.88 763.75,-245.88 763.75,-42.88 763.75,-42.88 763.75,-36.88 769.75,-30.88 775.75,-30.88"/>
|
|
17
|
-
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-234.88" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">Job Kinds</text>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-234.88" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#a7f3d0">Job Kinds</text>
|
|
18
18
|
</g>
|
|
19
19
|
<!-- Create -->
|
|
20
20
|
<g id="node1" class="node">
|
|
21
21
|
<title>Create</title>
|
|
22
22
|
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.4" d="M102.25,-152.13C102.25,-152.13 12,-152.13 12,-152.13 6,-152.13 0,-146.13 0,-140.13 0,-140.13 0,-115.63 0,-115.63 0,-109.63 6,-103.63 12,-103.63 12,-103.63 102.25,-103.63 102.25,-103.63 108.25,-103.63 114.25,-109.63 114.25,-115.63 114.25,-115.63 114.25,-140.13 114.25,-140.13 114.25,-146.13 108.25,-152.13 102.25,-152.13"/>
|
|
23
|
-
<text xml:space="preserve" text-anchor="middle" x="57.12" y="-137.68" font-family="sans-Serif" font-size="11.00" fill="#0f172a">cron_create</text>
|
|
24
|
-
<text xml:space="preserve" text-anchor="middle" x="57.12" y="-124.18" font-family="sans-Serif" font-size="11.00" fill="#0f172a">name · schedule</text>
|
|
25
|
-
<text xml:space="preserve" text-anchor="middle" x="57.12" y="-110.68" font-family="sans-Serif" font-size="11.00" fill="#0f172a">prompt | ruby | script</text>
|
|
23
|
+
<text xml:space="preserve" text-anchor="middle" x="57.12" y="-137.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">cron_create</text>
|
|
24
|
+
<text xml:space="preserve" text-anchor="middle" x="57.12" y="-124.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">name · schedule</text>
|
|
25
|
+
<text xml:space="preserve" text-anchor="middle" x="57.12" y="-110.68" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">prompt | ruby | script</text>
|
|
26
26
|
</g>
|
|
27
27
|
<!-- Jobs -->
|
|
28
28
|
<g id="node2" class="node">
|
|
29
29
|
<title>Jobs</title>
|
|
30
30
|
<path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M355.88,-184.6C355.88,-186.41 330.1,-187.88 298.38,-187.88 266.65,-187.88 240.88,-186.41 240.88,-184.6 240.88,-184.6 240.88,-155.15 240.88,-155.15 240.88,-153.34 266.65,-151.88 298.38,-151.88 330.1,-151.88 355.88,-153.34 355.88,-155.15 355.88,-155.15 355.88,-184.6 355.88,-184.6"/>
|
|
31
31
|
<path fill="none" stroke="#334155" stroke-width="1.4" d="M355.88,-184.6C355.88,-182.8 330.1,-181.33 298.38,-181.33 266.65,-181.33 240.88,-182.8 240.88,-184.6"/>
|
|
32
|
-
<text xml:space="preserve" text-anchor="middle" x="298.38" y="-166.18" font-family="sans-Serif" font-size="11.00" fill="#0f172a">~/.pwn/cron/jobs.yml</text>
|
|
32
|
+
<text xml:space="preserve" text-anchor="middle" x="298.38" y="-166.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">~/.pwn/cron/jobs.yml</text>
|
|
33
33
|
</g>
|
|
34
34
|
<!-- Create->Jobs -->
|
|
35
35
|
<g id="edge1" class="edge">
|
|
36
36
|
<title>Create->Jobs</title>
|
|
37
37
|
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M114.82,-137.83C149.58,-143.93 194.24,-151.77 230.69,-158.17"/>
|
|
38
38
|
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="229.95,-160.88 238.32,-159.51 230.92,-155.37 229.95,-160.88"/>
|
|
39
|
-
<text xml:space="preserve" text-anchor="middle" x="177" y="-153.34" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">write</text>
|
|
39
|
+
<text xml:space="preserve" text-anchor="middle" x="177" y="-153.34" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">write</text>
|
|
40
40
|
</g>
|
|
41
41
|
<!-- Crontab -->
|
|
42
42
|
<g id="node3" class="node">
|
|
43
43
|
<title>Crontab</title>
|
|
44
44
|
<path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M345,-109.88C345,-109.88 251.75,-109.88 251.75,-109.88 245.75,-109.88 239.75,-103.88 239.75,-97.88 239.75,-97.88 239.75,-85.88 239.75,-85.88 239.75,-79.88 245.75,-73.88 251.75,-73.88 251.75,-73.88 345,-73.88 345,-73.88 351,-73.88 357,-79.88 357,-85.88 357,-85.88 357,-97.88 357,-97.88 357,-103.88 351,-109.88 345,-109.88"/>
|
|
45
|
-
<text xml:space="preserve" text-anchor="middle" x="298.38" y="-94.93" font-family="sans-Serif" font-size="11.00" fill="#0f172a">system crontab</text>
|
|
46
|
-
<text xml:space="preserve" text-anchor="middle" x="298.38" y="-81.43" font-family="sans-Serif" font-size="11.00" fill="#0f172a">(install_crontab: true)</text>
|
|
45
|
+
<text xml:space="preserve" text-anchor="middle" x="298.38" y="-94.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">system crontab</text>
|
|
46
|
+
<text xml:space="preserve" text-anchor="middle" x="298.38" y="-81.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">(install_crontab: true)</text>
|
|
47
47
|
</g>
|
|
48
48
|
<!-- Create->Crontab -->
|
|
49
49
|
<g id="edge2" class="edge">
|
|
50
50
|
<title>Create->Crontab</title>
|
|
51
51
|
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M114.83,-112.81C129.83,-109.26 146.08,-105.81 161.25,-103.38 183.28,-99.85 207.51,-97.36 229.34,-95.62"/>
|
|
52
52
|
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="229.46,-98.42 237.22,-95.03 229.03,-92.84 229.46,-98.42"/>
|
|
53
|
-
<text xml:space="preserve" text-anchor="middle" x="177" y="-105.33" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">append</text>
|
|
53
|
+
<text xml:space="preserve" text-anchor="middle" x="177" y="-105.33" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">append</text>
|
|
54
54
|
</g>
|
|
55
55
|
<!-- Runner -->
|
|
56
56
|
<g id="node4" class="node">
|
|
57
57
|
<title>Runner</title>
|
|
58
58
|
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M611,-146.88C611,-146.88 528.25,-146.88 528.25,-146.88 522.25,-146.88 516.25,-140.88 516.25,-134.88 516.25,-134.88 516.25,-122.88 516.25,-122.88 516.25,-116.88 522.25,-110.88 528.25,-110.88 528.25,-110.88 611,-110.88 611,-110.88 617,-110.88 623,-116.88 623,-122.88 623,-122.88 623,-134.88 623,-134.88 623,-140.88 617,-146.88 611,-146.88"/>
|
|
59
|
-
<text xml:space="preserve" text-anchor="middle" x="569.62" y="-125.18" font-family="sans-Serif" font-size="11.00" fill="#0f172a">PWN::Cron.run(id)</text>
|
|
59
|
+
<text xml:space="preserve" text-anchor="middle" x="569.62" y="-125.18" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">PWN::Cron.run(id)</text>
|
|
60
60
|
</g>
|
|
61
61
|
<!-- Jobs->Runner -->
|
|
62
62
|
<g id="edge4" class="edge">
|
|
63
63
|
<title>Jobs->Runner</title>
|
|
64
64
|
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M356.48,-161.18C400.34,-154.5 460.86,-145.29 506.04,-138.41"/>
|
|
65
65
|
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="506.29,-141.2 513.78,-137.23 505.45,-135.67 506.29,-141.2"/>
|
|
66
|
-
<text xml:space="preserve" text-anchor="middle" x="436.62" y="-155" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">load job</text>
|
|
66
|
+
<text xml:space="preserve" text-anchor="middle" x="436.62" y="-155" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">load job</text>
|
|
67
67
|
</g>
|
|
68
68
|
<!-- Crontab->Runner -->
|
|
69
69
|
<g id="edge3" class="edge">
|
|
70
70
|
<title>Crontab->Runner</title>
|
|
71
71
|
<path fill="none" stroke="#fb7185" stroke-width="2" d="M357.47,-99.86C400.88,-105.83 460.2,-113.98 504.92,-120.12"/>
|
|
72
72
|
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="504.36,-122.87 512.66,-121.19 505.12,-117.32 504.36,-122.87"/>
|
|
73
|
-
<text xml:space="preserve" text-anchor="middle" x="436.62" y="-116.73" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">fire on schedule</text>
|
|
73
|
+
<text xml:space="preserve" text-anchor="middle" x="436.62" y="-116.73" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">fire on schedule</text>
|
|
74
74
|
</g>
|
|
75
75
|
<!-- Prompt -->
|
|
76
76
|
<g id="node5" class="node">
|
|
77
77
|
<title>Prompt</title>
|
|
78
78
|
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M894.62,-218.88C894.62,-218.88 811.12,-218.88 811.12,-218.88 805.12,-218.88 799.12,-212.88 799.12,-206.88 799.12,-206.88 799.12,-194.88 799.12,-194.88 799.12,-188.88 805.12,-182.88 811.12,-182.88 811.12,-182.88 894.62,-182.88 894.62,-182.88 900.62,-182.88 906.62,-188.88 906.62,-194.88 906.62,-194.88 906.62,-206.88 906.62,-206.88 906.62,-212.88 900.62,-218.88 894.62,-218.88"/>
|
|
79
|
-
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-203.93" font-family="sans-Serif" font-size="11.00" fill="#0f172a">:prompt</text>
|
|
80
|
-
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-190.43" font-family="sans-Serif" font-size="11.00" fill="#0f172a">→ pwn-ai one-shot</text>
|
|
79
|
+
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-203.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">:prompt</text>
|
|
80
|
+
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-190.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">→ pwn-ai one-shot</text>
|
|
81
81
|
</g>
|
|
82
82
|
<!-- Runner->Prompt -->
|
|
83
83
|
<g id="edge5" class="edge">
|
|
@@ -89,8 +89,8 @@
|
|
|
89
89
|
<g id="node6" class="node">
|
|
90
90
|
<title>Ruby</title>
|
|
91
91
|
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M922,-146.88C922,-146.88 783.75,-146.88 783.75,-146.88 777.75,-146.88 771.75,-140.88 771.75,-134.88 771.75,-134.88 771.75,-122.88 771.75,-122.88 771.75,-116.88 777.75,-110.88 783.75,-110.88 783.75,-110.88 922,-110.88 922,-110.88 928,-110.88 934,-116.88 934,-122.88 934,-122.88 934,-134.88 934,-134.88 934,-140.88 928,-146.88 922,-146.88"/>
|
|
92
|
-
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-131.93" font-family="sans-Serif" font-size="11.00" fill="#0f172a">:ruby</text>
|
|
93
|
-
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-118.43" font-family="sans-Serif" font-size="11.00" fill="#0f172a">→ TOPLEVEL_BINDING.eval</text>
|
|
92
|
+
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-131.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">:ruby</text>
|
|
93
|
+
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-118.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">→ TOPLEVEL_BINDING.eval</text>
|
|
94
94
|
</g>
|
|
95
95
|
<!-- Runner->Ruby -->
|
|
96
96
|
<g id="edge6" class="edge">
|
|
@@ -102,8 +102,8 @@
|
|
|
102
102
|
<g id="node7" class="node">
|
|
103
103
|
<title>Script</title>
|
|
104
104
|
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M896.12,-74.88C896.12,-74.88 809.62,-74.88 809.62,-74.88 803.62,-74.88 797.62,-68.88 797.62,-62.88 797.62,-62.88 797.62,-50.88 797.62,-50.88 797.62,-44.88 803.62,-38.88 809.62,-38.88 809.62,-38.88 896.12,-38.88 896.12,-38.88 902.12,-38.88 908.12,-44.88 908.12,-50.88 908.12,-50.88 908.12,-62.88 908.12,-62.88 908.12,-68.88 902.12,-74.88 896.12,-74.88"/>
|
|
105
|
-
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-59.93" font-family="sans-Serif" font-size="11.00" fill="#0f172a">:script</text>
|
|
106
|
-
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-46.43" font-family="sans-Serif" font-size="11.00" fill="#0f172a">→ exec external file</text>
|
|
105
|
+
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-59.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">:script</text>
|
|
106
|
+
<text xml:space="preserve" text-anchor="middle" x="852.88" y="-46.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">→ exec external file</text>
|
|
107
107
|
</g>
|
|
108
108
|
<!-- Runner->Script -->
|
|
109
109
|
<g id="edge7" class="edge">
|
|
@@ -116,8 +116,8 @@
|
|
|
116
116
|
<title>Log</title>
|
|
117
117
|
<path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1161.25,-148.56C1161.25,-150.98 1131.61,-152.94 1095.12,-152.94 1058.64,-152.94 1029,-150.98 1029,-148.56 1029,-148.56 1029,-109.19 1029,-109.19 1029,-106.78 1058.64,-104.81 1095.12,-104.81 1131.61,-104.81 1161.25,-106.78 1161.25,-109.19 1161.25,-109.19 1161.25,-148.56 1161.25,-148.56"/>
|
|
118
118
|
<path fill="none" stroke="#334155" stroke-width="1.4" d="M1161.25,-148.56C1161.25,-146.15 1131.61,-144.19 1095.12,-144.19 1058.64,-144.19 1029,-146.15 1029,-148.56"/>
|
|
119
|
-
<text xml:space="preserve" text-anchor="middle" x="1095.12" y="-131.93" font-family="sans-Serif" font-size="11.00" fill="#0f172a">~/.pwn/cron/log/<id>.log</text>
|
|
120
|
-
<text xml:space="preserve" text-anchor="middle" x="1095.12" y="-118.43" font-family="sans-Serif" font-size="11.00" fill="#0f172a">last_run · last_status</text>
|
|
119
|
+
<text xml:space="preserve" text-anchor="middle" x="1095.12" y="-131.93" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">~/.pwn/cron/log/<id>.log</text>
|
|
120
|
+
<text xml:space="preserve" text-anchor="middle" x="1095.12" y="-118.43" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">last_run · last_status</text>
|
|
121
121
|
</g>
|
|
122
122
|
<!-- Prompt->Log -->
|
|
123
123
|
<g id="edge8" class="edge">
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
<title>Log->Jobs</title>
|
|
143
143
|
<path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1069.63,-104.26C1041.6,-78 992.95,-38 942,-21.88 759.1,36 698.93,-34.31 516.25,-92.88 461.31,-110.49 399.34,-132.73 355.76,-148.78"/>
|
|
144
144
|
<polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="354.85,-146.13 348.32,-151.53 356.79,-151.38 354.85,-146.13"/>
|
|
145
|
-
<text xml:space="preserve" text-anchor="middle" x="697.38" y="-35.59" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">update status</text>
|
|
145
|
+
<text xml:space="preserve" text-anchor="middle" x="697.38" y="-35.59" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">update status</text>
|
|
146
146
|
</g>
|
|
147
147
|
</g>
|
|
148
148
|
</svg>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph "PWN_Agent_Tool_Registry" {
|
|
2
2
|
graph [
|
|
3
|
-
label=<<B>PWN::AI::Agent::Registry — Toolsets exposed to the LLM</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">10 toolsets ·
|
|
3
|
+
label=<<B>PWN::AI::Agent::Registry — Toolsets exposed to the LLM</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">10 toolsets · 54 callable tools · lib/pwn/ai/agent/tools/*</FONT>>,
|
|
4
4
|
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
5
|
rankdir=LR, splines=spline, nodesep=0.35, ranksep=1.4,
|
|
6
6
|
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true
|
|
@@ -37,7 +37,7 @@ digraph "PWN_Agent_Tool_Registry" {
|
|
|
37
37
|
t_sess [label="sessions_list · view\ncurrent · delete · stats"];
|
|
38
38
|
t_learn [label="learning_note_outcome\nreflect · distill_skill\nconsolidate · outcomes · reset\nmistakes_list · record\nmistakes_resolve · reset"];
|
|
39
39
|
t_metric [label="metrics_summary\nmetrics_reset"];
|
|
40
|
-
t_extro [label="extro_snapshot · drift\nobserve · intel · correlate\nobservations · stats · reset"];
|
|
40
|
+
t_extro [label="extro_snapshot · drift\nobserve · intel · correlate\nwatch · verify (browser)\nobservations · stats · reset"];
|
|
41
41
|
t_cron [label="cron_list · create · run\nenable · disable · remove"];
|
|
42
42
|
t_swarm [label="agent_list · spawn · ask\ndebate · broadcast\nswarm_bus · swarm_list"];
|
|
43
43
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph "PWN_Extrospection" {
|
|
2
2
|
graph [
|
|
3
|
-
label=<<B>PWN::AI::Agent::Extrospection — World Awareness</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">snapshot · drift · observe · intel · correlate — host · net · toolchain · repo · env · rf</FONT>>,
|
|
3
|
+
label=<<B>PWN::AI::Agent::Extrospection — World Awareness</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">snapshot · drift · observe · intel · watch · verify · correlate — host · net · toolchain · repo · env · rf · web</FONT>>,
|
|
4
4
|
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
5
|
rankdir=LR, splines=spline, nodesep=0.5, ranksep=1.3,
|
|
6
6
|
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true
|
|
@@ -19,26 +19,36 @@ digraph "PWN_Extrospection" {
|
|
|
19
19
|
Tool [label="toolchain\nnmap · burp · msf · git", fillcolor="#fda4af"];
|
|
20
20
|
Repo [label="repo · env\nHEAD · dirty · ruby/gem", fillcolor="#fda4af"];
|
|
21
21
|
RFhw [label="rf 📡\nrtl-sdr · hackrf · flipper\ngqrx sock · serial devs", fillcolor="#fda4af"];
|
|
22
|
+
Web [label="web 🌐\nanchors · targets\nrendered DOM · TLS cert", fillcolor="#fda4af"];
|
|
22
23
|
Feeds [label="intel feeds\nNVD · CIRCL · Exploit-DB", fillcolor="#fda4af"];
|
|
23
24
|
}
|
|
24
|
-
{rank=same; Host; Net; Tool; Repo; RFhw; Feeds}
|
|
25
|
+
{rank=same; Host; Net; Tool; Repo; RFhw; Web; Feeds}
|
|
26
|
+
|
|
27
|
+
/* col 0.5 ─ transport */
|
|
28
|
+
TB [label="PWN::Plugins::\nTransparentBrowser\n:headless (→ :rest fallback)",
|
|
29
|
+
fillcolor="#7dd3fc", penwidth=2];
|
|
25
30
|
|
|
26
31
|
/* col 1 ─ engine */
|
|
27
32
|
subgraph cluster_eng {
|
|
28
33
|
label="Extrospection Engine"; fontcolor="#fde68a"; style=rounded;
|
|
29
34
|
color="#a16207"; bgcolor="#422006"; penwidth=2;
|
|
30
|
-
Snap [label="extro_snapshot\nprobe_host/net/toolchain\nprobe_repo/env/rf", fillcolor="#fcd34d"];
|
|
35
|
+
Snap [label="extro_snapshot\nprobe_host/net/toolchain\nprobe_repo/env/rf/web", fillcolor="#fcd34d"];
|
|
31
36
|
Drift [label="extro_drift\ndelta vs baseline", fillcolor="#fcd34d"];
|
|
32
|
-
Obs [label="extro_observe\nrecon · vuln · intel\ntarget · network · env · rf", fillcolor="#fcd34d"];
|
|
37
|
+
Obs [label="extro_observe\nrecon · vuln · intel\ntarget · network · env · rf · web", fillcolor="#fcd34d"];
|
|
33
38
|
Intel [label="extro_intel\nCVE / exploit lookup", fillcolor="#fcd34d"];
|
|
34
|
-
|
|
39
|
+
Watch [label="extro_watch\nrender → DOM SHA-256\nscreenshot · TLS fp", fillcolor="#fcd34d"];
|
|
40
|
+
Verify[label="extro_verify\n:cve · :version · :doc · :generic\n→ :confirmed | :refuted | :unknown", fillcolor="#fcd34d", penwidth=2];
|
|
41
|
+
Corr [label="extro_correlate\njoin with Learning\n+ Mistakes + Memory", fillcolor="#fcd34d", penwidth=2];
|
|
35
42
|
}
|
|
36
|
-
{rank=same; Snap; Drift; Obs; Intel; Corr}
|
|
43
|
+
{rank=same; Snap; Drift; Obs; Intel; Watch; Verify; Corr}
|
|
37
44
|
|
|
38
|
-
/* col 2 ─ store + prompt */
|
|
45
|
+
/* col 2 ─ store + prompt + feedback sinks */
|
|
39
46
|
Store [label="~/.pwn/\nextrospection.json", shape=cylinder, fillcolor="#fcd34d"];
|
|
47
|
+
Shots [label="~/.pwn/extrospection/\nweb/*.png", shape=cylinder, fillcolor="#fcd34d"];
|
|
40
48
|
Prompt [label="EXTROSPECTION\nblock in system prompt", fillcolor="#c4b5fd"];
|
|
41
|
-
|
|
49
|
+
Mist [label="Mistakes.record\n(tool:'assumption')\n→ KNOWN MISTAKES", fillcolor="#fca5a5", penwidth=2];
|
|
50
|
+
Mem [label="PWN::Memory :fact\n[UNVERIFIED yyyy-mm-dd]\n(revalidate_memory)", fillcolor="#c4b5fd"];
|
|
51
|
+
{rank=same; Store; Shots; Prompt; Mist; Mem}
|
|
42
52
|
|
|
43
53
|
Host -> Snap [color="#fb7185"];
|
|
44
54
|
Net -> Snap [color="#fb7185"];
|
|
@@ -47,11 +57,22 @@ digraph "PWN_Extrospection" {
|
|
|
47
57
|
RFhw -> Obs [label="probe_rf", color="#fb7185"];
|
|
48
58
|
Feeds -> Intel [color="#fb7185"];
|
|
49
59
|
|
|
60
|
+
Web -> TB [color="#fb7185"];
|
|
61
|
+
TB -> Snap [label="probe_web\n(opt-in)", color="#38bdf8"];
|
|
62
|
+
TB -> Watch [label="goto · text\nscreenshot", color="#38bdf8"];
|
|
63
|
+
TB -> Verify[label="render\ncanonical source", color="#38bdf8", penwidth=2];
|
|
64
|
+
|
|
50
65
|
Snap -> Store [color="#f59e0b"];
|
|
51
66
|
Drift -> Store [color="#f59e0b"];
|
|
52
67
|
Obs -> Store [color="#f59e0b"];
|
|
53
68
|
Intel -> Store [label="record:true", color="#f59e0b"];
|
|
69
|
+
Watch -> Store [label="category::web", color="#f59e0b"];
|
|
70
|
+
Watch -> Shots [color="#f59e0b"];
|
|
71
|
+
Verify-> Mist [label=":refuted", color="#fb7185", penwidth=2];
|
|
72
|
+
Verify-> Store [label=":confirmed\n:intel obs (ttl 30d)", color="#f59e0b"];
|
|
73
|
+
Verify-> Mem [label="revalidate_memory\nmark stale :fact", color="#a78bfa", style=dashed];
|
|
54
74
|
Corr -> Prompt[label="findings", color="#a78bfa", penwidth=2];
|
|
55
75
|
Store -> Prompt[label="inject", style=dashed, color="#fbbf24"];
|
|
56
76
|
Store -> Corr [style=dashed, color="#fbbf24", constraint=false];
|
|
77
|
+
Mem -> Corr [label="rule (f)\nstale :fact", style=dashed, color="#a78bfa", constraint=false];
|
|
57
78
|
}
|
|
@@ -64,4 +64,8 @@ digraph "PWN_MemorySkills" {
|
|
|
64
64
|
Out -> Prompt [color="#38bdf8"];
|
|
65
65
|
Sesv -> Prompt [color="#38bdf8"];
|
|
66
66
|
Mlst -> Prompt [label="do NOT repeat", color="#fb7185", penwidth=2];
|
|
67
|
+
|
|
68
|
+
ReVal [label="Extrospection.verify\nrevalidate_memory (cron)\nbrowser-backed GC", fillcolor="#fcd34d"];
|
|
69
|
+
ReVal -> Fmem [label="[UNVERIFIED yyyy-mm-dd]\nprefix stale :fact", color="#fb7185", style=dashed, penwidth=2];
|
|
70
|
+
Fmem -> ReVal [label=":fact w/ CVE|ver|URL", style=dashed, color="#94a3b8", constraint=false];
|
|
67
71
|
}
|
|
@@ -37,7 +37,7 @@ digraph "PWN_Overall_Architecture" {
|
|
|
37
37
|
label="PWN::AI::Agent"; fontcolor="#ddd6fe";
|
|
38
38
|
style=rounded; color="#6d28d9"; bgcolor="#2e1065"; penwidth=2;
|
|
39
39
|
Loop [label="Loop\nplan → dispatch → observe", fillcolor="#c4b5fd"];
|
|
40
|
-
Registry [label="Registry\n10 toolsets ·
|
|
40
|
+
Registry [label="Registry\n10 toolsets · 54 tools", fillcolor="#c4b5fd"];
|
|
41
41
|
Swarm [label="Swarm\npersonas · debate · bus", fillcolor="#c4b5fd"];
|
|
42
42
|
Prompt [label="PromptBuilder\nMEMORY · SKILLS\nMISTAKES · EXTRO",fillcolor="#c4b5fd"];
|
|
43
43
|
}
|
|
@@ -67,7 +67,7 @@ digraph "PWN_Overall_Architecture" {
|
|
|
67
67
|
Learn [label="learning.jsonl", shape=cylinder, fillcolor="#fcd34d"];
|
|
68
68
|
Metrics [label="metrics.json", shape=cylinder, fillcolor="#fcd34d"];
|
|
69
69
|
MistF [label="mistakes.json", shape=cylinder, fillcolor="#fcd34d"];
|
|
70
|
-
Extro [label="extrospection.json\n+ rf snapshot", shape=cylinder, fillcolor="#fcd34d"];
|
|
70
|
+
Extro [label="extrospection.json\n+ rf + web snapshot", shape=cylinder, fillcolor="#fcd34d"];
|
|
71
71
|
Sessions [label="sessions/*.jsonl", shape=cylinder, fillcolor="#fcd34d"];
|
|
72
72
|
SwarmB [label="swarm/*/bus.jsonl", shape=cylinder, fillcolor="#fcd34d"];
|
|
73
73
|
CronF [label="cron/jobs.yml", shape=cylinder, fillcolor="#fcd34d"];
|
|
@@ -18,7 +18,8 @@ digraph "PWN_Persistence" {
|
|
|
18
18
|
lrn [label="learning.jsonl\ntask outcomes"];
|
|
19
19
|
mis [label="mistakes.json\nfailure fingerprints · fixes\n[REPEATING] · [REGRESSED]"];
|
|
20
20
|
met [label="metrics.json\nper-tool telemetry"];
|
|
21
|
-
ext [label="extrospection.json\nhost snapshot + rf + observations"];
|
|
21
|
+
ext [label="extrospection.json\nhost snapshot + rf + web\n+ observations"];
|
|
22
|
+
ews [label="extrospection/web/*.png\nheadless screenshots"];
|
|
22
23
|
ses [label="sessions/*.jsonl\ntranscripts"];
|
|
23
24
|
crn [label="cron/jobs.yml\nscheduled jobs + logs"];
|
|
24
25
|
agt [label="agents.yml\npersona registry"];
|
|
@@ -13,7 +13,7 @@ digraph "PWN_AI_Feedback_Learning_Loop" {
|
|
|
13
13
|
/* L0 ─ actors */
|
|
14
14
|
User [label="👤 Researcher", fillcolor="#7dd3fc"];
|
|
15
15
|
LLM [label="🤖 LLM Provider", fillcolor="#c4b5fd"];
|
|
16
|
-
World [label="🌍 Host · Net · Repo\nToolchain · RF · Intel", fillcolor="#fda4af"];
|
|
16
|
+
World [label="🌍 Host · Net · Repo\nToolchain · RF · Web · Intel", fillcolor="#fda4af"];
|
|
17
17
|
{rank=same; User; LLM; World}
|
|
18
18
|
|
|
19
19
|
/* L1 ─ agent core */
|
|
@@ -37,10 +37,11 @@ digraph "PWN_AI_Feedback_Learning_Loop" {
|
|
|
37
37
|
subgraph cluster_extro {
|
|
38
38
|
label="EXTROSPECTION (world)"; fontcolor="#fde68a";
|
|
39
39
|
style=rounded; color="#a16207"; bgcolor="#422006"; penwidth=2;
|
|
40
|
-
Snapshot [label="snapshot · drift\nhost/net/toolchain\nrepo/env/rf", fillcolor="#fcd34d"];
|
|
41
|
-
Observe [label="observe · intel\nrecon
|
|
40
|
+
Snapshot [label="snapshot · drift\nhost/net/toolchain\nrepo/env/rf/web", fillcolor="#fcd34d"];
|
|
41
|
+
Observe [label="observe · intel · watch\nrecon · CVE · web DOM", fillcolor="#fcd34d"];
|
|
42
|
+
Verify [label="verify (browser)\nfact-check own claims\nrevalidate_memory", fillcolor="#fcd34d", penwidth=2];
|
|
42
43
|
}
|
|
43
|
-
{rank=same; Metrics; Learning; Mistakes; Snapshot; Observe}
|
|
44
|
+
{rank=same; Metrics; Learning; Mistakes; Snapshot; Observe; Verify}
|
|
44
45
|
|
|
45
46
|
/* L3 ─ correlate */
|
|
46
47
|
Correlate [label="extro_correlate()\n\"I did it wrong\" vs \"the world changed\"",
|
|
@@ -78,6 +79,7 @@ digraph "PWN_AI_Feedback_Learning_Loop" {
|
|
|
78
79
|
Result -> Observe [label="auto_extrospect", color="#f59e0b"];
|
|
79
80
|
World -> Snapshot [color="#fb7185", constraint=false];
|
|
80
81
|
World -> Observe [color="#fb7185", constraint=false];
|
|
82
|
+
World -> Verify [label="TransparentBrowser\n:headless", color="#38bdf8", constraint=false, penwidth=2];
|
|
81
83
|
|
|
82
84
|
/* L2 → L3 */
|
|
83
85
|
Metrics -> Correlate [color="#34d399"];
|
|
@@ -85,6 +87,7 @@ digraph "PWN_AI_Feedback_Learning_Loop" {
|
|
|
85
87
|
Mistakes -> Correlate [color="#34d399"];
|
|
86
88
|
Snapshot -> Correlate [color="#f59e0b"];
|
|
87
89
|
Observe -> Correlate [color="#f59e0b"];
|
|
90
|
+
Verify -> Correlate [color="#f59e0b"];
|
|
88
91
|
|
|
89
92
|
/* L3 → L4 */
|
|
90
93
|
Correlate -> Fmet [style=invis];
|
|
@@ -95,6 +98,9 @@ digraph "PWN_AI_Feedback_Learning_Loop" {
|
|
|
95
98
|
Learning -> Fmem [label="lesson", color="#94a3b8"];
|
|
96
99
|
Learning -> Fskl [label="skill", color="#94a3b8"];
|
|
97
100
|
Observe -> Fext [color="#94a3b8"];
|
|
101
|
+
Verify -> Fmis [label=":refuted →\nassumption mistake", color="#fb7185", penwidth=2];
|
|
102
|
+
Verify -> Fmem [label="mark stale\n[UNVERIFIED]", color="#a78bfa", style=dashed];
|
|
103
|
+
Verify -> Fext [label=":confirmed\n:intel obs", color="#94a3b8"];
|
|
98
104
|
|
|
99
105
|
/* feedback (dashed, non-constraining) */
|
|
100
106
|
Fmem -> Prompt [label="MEMORY block", style=dashed, color="#fbbf24", constraint=false];
|
|
@@ -9,31 +9,31 @@
|
|
|
9
9
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 397.2)">
|
|
10
10
|
<title>PWN_Driver</title>
|
|
11
11
|
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-397.2 684.45,-397.2 684.45,43.2 -43.2,43.2"/>
|
|
12
|
-
<text xml:space="preserve" text-anchor="start" x="184.88" y="-332" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">Driver Anatomy — bin/pwn_*</text>
|
|
13
|
-
<text xml:space="preserve" text-anchor="start" x="206.25" y="-320.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">52 shipped drivers · thin CLI over PWN::Plugins</text>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="184.88" y="-332" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">Driver Anatomy — bin/pwn_*</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="206.25" y="-320.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#94a3b8">52 shipped drivers · thin CLI over PWN::Plugins</text>
|
|
14
14
|
<g id="clust1" class="cluster">
|
|
15
15
|
<title>cluster_d</title>
|
|
16
16
|
<path fill="#022c22" stroke="#047857" d="M276,-8C276,-8 419,-8 419,-8 425,-8 431,-14 431,-20 431,-20 431,-223 431,-223 431,-229 425,-235 419,-235 419,-235 276,-235 276,-235 270,-235 264,-229 264,-223 264,-223 264,-20 264,-20 264,-14 270,-8 276,-8"/>
|
|
17
|
-
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-212" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">Driver Body</text>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-212" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#a7f3d0">Driver Body</text>
|
|
18
18
|
</g>
|
|
19
19
|
<g id="clust3" class="cluster">
|
|
20
20
|
<title>cluster_o</title>
|
|
21
21
|
<path fill="#2e1065" stroke="#6d28d9" d="M521,-80C521,-80 621.25,-80 621.25,-80 627.25,-80 633.25,-86 633.25,-92 633.25,-92 633.25,-295 633.25,-295 633.25,-301 627.25,-307 621.25,-307 621.25,-307 521,-307 521,-307 515,-307 509,-301 509,-295 509,-295 509,-92 509,-92 509,-86 515,-80 521,-80"/>
|
|
22
|
-
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-284" font-family="sans-Serif" font-size="20.00" fill="#ddd6fe">Output</text>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-284" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#ddd6fe">Output</text>
|
|
23
23
|
</g>
|
|
24
24
|
<!-- Sh -->
|
|
25
25
|
<g id="node1" class="node">
|
|
26
26
|
<title>Sh</title>
|
|
27
27
|
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M166,-88C166,-88 12,-88 12,-88 6,-88 0,-82 0,-76 0,-76 0,-64 0,-64 0,-58 6,-52 12,-52 12,-52 166,-52 166,-52 172,-52 178,-58 178,-64 178,-64 178,-76 178,-76 178,-82 172,-88 166,-88"/>
|
|
28
|
-
<text xml:space="preserve" text-anchor="middle" x="89" y="-72.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">$ pwn_burp_suite_pro_active_scan \ </text>
|
|
29
|
-
<text xml:space="preserve" text-anchor="middle" x="89" y="-60.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">    -t https://target -o out/</text>
|
|
28
|
+
<text xml:space="preserve" text-anchor="middle" x="89" y="-72.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">$ pwn_burp_suite_pro_active_scan \ </text>
|
|
29
|
+
<text xml:space="preserve" text-anchor="middle" x="89" y="-60.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">    -t https://target -o out/</text>
|
|
30
30
|
</g>
|
|
31
31
|
<!-- Opt -->
|
|
32
32
|
<g id="node2" class="node">
|
|
33
33
|
<title>Opt</title>
|
|
34
34
|
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M378,-52C378,-52 317,-52 317,-52 311,-52 305,-46 305,-40 305,-40 305,-28 305,-28 305,-22 311,-16 317,-16 317,-16 378,-16 378,-16 384,-16 390,-22 390,-28 390,-28 390,-40 390,-40 390,-46 384,-52 378,-52"/>
|
|
35
|
-
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-36.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">OptionParser</text>
|
|
36
|
-
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-24.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">ARGV → opts{}</text>
|
|
35
|
+
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">OptionParser</text>
|
|
36
|
+
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-24.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">ARGV → opts{}</text>
|
|
37
37
|
</g>
|
|
38
38
|
<!-- Sh->Opt -->
|
|
39
39
|
<g id="edge1" class="edge">
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
<g id="node3" class="node">
|
|
46
46
|
<title>Req</title>
|
|
47
47
|
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M370.88,-124C370.88,-124 324.12,-124 324.12,-124 318.12,-124 312.12,-118 312.12,-112 312.12,-112 312.12,-100 312.12,-100 312.12,-94 318.12,-88 324.12,-88 324.12,-88 370.88,-88 370.88,-88 376.88,-88 382.88,-94 382.88,-100 382.88,-100 382.88,-112 382.88,-112 382.88,-118 376.88,-124 370.88,-124"/>
|
|
48
|
-
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-102.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">require 'pwn'</text>
|
|
48
|
+
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-102.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">require 'pwn'</text>
|
|
49
49
|
</g>
|
|
50
50
|
<!-- Sh->Req -->
|
|
51
51
|
<g id="edge2" class="edge">
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
<g id="node4" class="node">
|
|
58
58
|
<title>Call</title>
|
|
59
59
|
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M411,-196C411,-196 284,-196 284,-196 278,-196 272,-190 272,-184 272,-184 272,-172 272,-172 272,-166 278,-160 284,-160 284,-160 411,-160 411,-160 417,-160 423,-166 423,-172 423,-172 423,-184 423,-184 423,-190 417,-196 411,-196"/>
|
|
60
|
-
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-174.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">PWN::Plugins::X.method(opts)</text>
|
|
60
|
+
<text xml:space="preserve" text-anchor="middle" x="347.5" y="-174.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">PWN::Plugins::X.method(opts)</text>
|
|
61
61
|
</g>
|
|
62
62
|
<!-- Opt->Call -->
|
|
63
63
|
<g id="edge3" class="edge">
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
<g id="node5" class="node">
|
|
76
76
|
<title>Std</title>
|
|
77
77
|
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M613.25,-124C613.25,-124 529,-124 529,-124 523,-124 517,-118 517,-112 517,-112 517,-100 517,-100 517,-94 523,-88 529,-88 529,-88 613.25,-88 613.25,-88 619.25,-88 625.25,-94 625.25,-100 625.25,-100 625.25,-112 625.25,-112 625.25,-118 619.25,-124 613.25,-124"/>
|
|
78
|
-
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-102.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">STDOUT / STDERR</text>
|
|
78
|
+
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-102.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">STDOUT / STDERR</text>
|
|
79
79
|
</g>
|
|
80
80
|
<!-- Call->Std -->
|
|
81
81
|
<g id="edge5" class="edge">
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
<g id="node6" class="node">
|
|
88
88
|
<title>Rep</title>
|
|
89
89
|
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M599.38,-196C599.38,-196 542.88,-196 542.88,-196 536.88,-196 530.88,-190 530.88,-184 530.88,-184 530.88,-172 530.88,-172 530.88,-166 536.88,-160 542.88,-160 542.88,-160 599.38,-160 599.38,-160 605.38,-160 611.38,-166 611.38,-172 611.38,-172 611.38,-184 611.38,-184 611.38,-190 605.38,-196 599.38,-196"/>
|
|
90
|
-
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-174.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">PWN::Reports</text>
|
|
90
|
+
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-174.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">PWN::Reports</text>
|
|
91
91
|
</g>
|
|
92
92
|
<!-- Call->Rep -->
|
|
93
93
|
<g id="edge6" class="edge">
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
<g id="node7" class="node">
|
|
100
100
|
<title>Ex</title>
|
|
101
101
|
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M587,-268C587,-268 555.25,-268 555.25,-268 549.25,-268 543.25,-262 543.25,-256 543.25,-256 543.25,-244 543.25,-244 543.25,-238 549.25,-232 555.25,-232 555.25,-232 587,-232 587,-232 593,-232 599,-238 599,-244 599,-244 599,-256 599,-256 599,-262 593,-268 587,-268"/>
|
|
102
|
-
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-246.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">exit code</text>
|
|
102
|
+
<text xml:space="preserve" text-anchor="middle" x="571.12" y="-246.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">exit code</text>
|
|
103
103
|
</g>
|
|
104
104
|
<!-- Call->Ex -->
|
|
105
105
|
<g id="edge7" class="edge">
|