pwn 0.5.615 → 0.5.617

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.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -10
  3. data/bin/pwn +47 -2
  4. data/bin/pwn_gqrx_scanner +75 -18
  5. data/documentation/Diagrams.md +123 -40
  6. data/documentation/General-PWN-Usage.md +50 -30
  7. data/documentation/Home.md +78 -51
  8. data/documentation/How-PWN-Works.md +59 -57
  9. data/documentation/Installation.md +53 -28
  10. data/documentation/What-is-PWN.md +51 -32
  11. data/documentation/Why-PWN.md +41 -11
  12. data/documentation/diagrams/ai-integration-tool-calling.svg +141 -103
  13. data/documentation/diagrams/build.sh +20 -0
  14. data/documentation/diagrams/burp-vs-zap-preference.svg +47 -62
  15. data/documentation/diagrams/code-scanning-sast.svg +139 -79
  16. data/documentation/diagrams/dot/_THEME.md +27 -0
  17. data/documentation/diagrams/dot/agent-tool-registry.dot +59 -0
  18. data/documentation/diagrams/dot/ai-integration-tool-calling.dot +47 -20
  19. data/documentation/diagrams/dot/aws-cloud-security.dot +48 -0
  20. data/documentation/diagrams/dot/burp-vs-zap-preference.dot +23 -12
  21. data/documentation/diagrams/dot/code-scanning-sast.dot +46 -18
  22. data/documentation/diagrams/dot/cron-scheduling.dot +40 -0
  23. data/documentation/diagrams/dot/driver-framework.dot +36 -14
  24. data/documentation/diagrams/dot/extrospection-world-awareness.dot +55 -0
  25. data/documentation/diagrams/dot/fuzzing-workflow.dot +44 -24
  26. data/documentation/diagrams/dot/history-to-drivers.dot +31 -17
  27. data/documentation/diagrams/dot/memory-skills-detailed.dot +57 -25
  28. data/documentation/diagrams/dot/network-infra-testing.dot +51 -19
  29. data/documentation/diagrams/dot/overall-pwn-architecture.dot +110 -44
  30. data/documentation/diagrams/dot/penetration-testing-workflow.dot +56 -25
  31. data/documentation/diagrams/dot/plugin-ecosystem.dot +41 -27
  32. data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +87 -46
  33. data/documentation/diagrams/dot/pwn-repl-prototyping.dot +49 -30
  34. data/documentation/diagrams/dot/reporting-pipeline.dot +43 -14
  35. data/documentation/diagrams/dot/reverse-engineering-flow.dot +40 -18
  36. data/documentation/diagrams/dot/sdr-radio-flow.dot +45 -0
  37. data/documentation/diagrams/dot/sessions-cron-automation.dot +41 -14
  38. data/documentation/diagrams/dot/swarm-multi-agent.dot +70 -0
  39. data/documentation/diagrams/dot/web-application-testing.dot +45 -23
  40. data/documentation/diagrams/dot/zero-day-research-flow.dot +46 -24
  41. data/documentation/diagrams/driver-framework.svg +87 -66
  42. data/documentation/diagrams/fuzzing-workflow.svg +128 -115
  43. data/documentation/diagrams/history-to-drivers.svg +84 -82
  44. data/documentation/diagrams/memory-skills-detailed.svg +167 -119
  45. data/documentation/diagrams/network-infra-testing.svg +146 -84
  46. data/documentation/diagrams/overall-pwn-architecture.svg +356 -185
  47. data/documentation/diagrams/penetration-testing-workflow.svg +161 -108
  48. data/documentation/diagrams/plugin-ecosystem.svg +225 -121
  49. data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +257 -185
  50. data/documentation/diagrams/pwn-repl-prototyping.svg +126 -137
  51. data/documentation/diagrams/reporting-pipeline.svg +128 -68
  52. data/documentation/diagrams/reverse-engineering-flow.svg +100 -80
  53. data/documentation/diagrams/sessions-cron-automation.svg +112 -68
  54. data/documentation/diagrams/web-application-testing.svg +136 -100
  55. data/documentation/diagrams/zero-day-research-flow.svg +116 -112
  56. data/git_commit.sh +1 -1
  57. data/lib/pwn/ai/agent/assembly.rb +1 -1
  58. data/lib/pwn/ai/agent/btc.rb +1 -1
  59. data/lib/pwn/ai/agent/burp_suite.rb +1 -1
  60. data/lib/pwn/ai/agent/extrospection.rb +618 -0
  61. data/lib/pwn/ai/agent/gqrx.rb +2 -2
  62. data/lib/pwn/ai/agent/hacker_one.rb +1 -1
  63. data/lib/pwn/ai/agent/introspection.rb +91 -0
  64. data/lib/pwn/ai/agent/learning.rb +6 -4
  65. data/lib/pwn/ai/agent/loop.rb +15 -0
  66. data/lib/pwn/ai/agent/prompt_builder.rb +10 -1
  67. data/lib/pwn/ai/agent/sast.rb +1 -1
  68. data/lib/pwn/ai/agent/swarm.rb +437 -0
  69. data/lib/pwn/ai/agent/tools/cron.rb +163 -0
  70. data/lib/pwn/ai/agent/tools/extrospection.rb +280 -0
  71. data/lib/pwn/ai/agent/tools/learning.rb +108 -0
  72. data/lib/pwn/ai/agent/tools/memory.rb +27 -0
  73. data/lib/pwn/ai/agent/tools/metrics.rb +61 -0
  74. data/lib/pwn/ai/agent/tools/sessions.rb +139 -0
  75. data/lib/pwn/ai/agent/tools/skills.rb +30 -0
  76. data/lib/pwn/ai/agent/tools/swarm.rb +229 -0
  77. data/lib/pwn/ai/agent/transparent_browser.rb +1 -1
  78. data/lib/pwn/ai/agent/vuln_gen.rb +2 -2
  79. data/lib/pwn/ai/agent.rb +3 -0
  80. data/lib/pwn/ai/anthropic.rb +19 -4
  81. data/lib/pwn/ai.rb +0 -1
  82. data/lib/pwn/config.rb +10 -23
  83. data/lib/pwn/cron.rb +16 -7
  84. data/lib/pwn/plugins/repl.rb +90 -281
  85. data/lib/pwn/sdr/decoder/base.rb +251 -0
  86. data/lib/pwn/sdr/decoder/gsm.rb +84 -185
  87. data/lib/pwn/sdr/decoder/pocsag.rb +62 -217
  88. data/lib/pwn/sdr/decoder.rb +1 -0
  89. data/lib/pwn/sdr/gqrx.rb +446 -65
  90. data/lib/pwn/version.rb +1 -1
  91. data/spec/lib/pwn/ai/agent/extrospection_spec.rb +15 -0
  92. data/spec/lib/pwn/ai/agent/introspection_spec.rb +15 -0
  93. data/spec/lib/pwn/ai/agent/swarm_spec.rb +34 -0
  94. data/spec/lib/pwn/ai/agent/tools/cron_spec.rb +40 -0
  95. data/spec/lib/pwn/ai/agent/tools/extrospection_spec.rb +40 -0
  96. data/spec/lib/pwn/ai/agent/tools/metrics_spec.rb +20 -0
  97. data/spec/lib/pwn/ai/agent/tools/sessions_spec.rb +35 -0
  98. data/spec/lib/pwn/ai/agent/tools/swarm_spec.rb +17 -0
  99. data/spec/lib/pwn/{ai/introspection_spec.rb → sdr/decoder/base_spec.rb} +3 -3
  100. data/third_party/pwn_rdoc.jsonl +178 -33
  101. metadata +27 -3
  102. data/lib/pwn/ai/introspection.rb +0 -76
@@ -3,177 +3,166 @@
3
3
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
4
  <!-- Generated by graphviz version 14.1.2 (0)
5
5
  -->
6
- <!-- Title: PWN REPL Prototyping &amp; Development Pages: 1 -->
7
- <svg width="820pt" height="382pt"
8
- viewBox="0.00 0.00 820.00 382.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
- <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 377.67)">
10
- <title>PWN REPL Prototyping &amp; Development</title>
11
- <polygon fill="white" stroke="none" points="-4,4 -4,-377.67 816.39,-377.67 816.39,4 -4,4"/>
6
+ <!-- Title: PWN_REPL Pages: 1 -->
7
+ <svg width="840pt" height="529pt"
8
+ viewBox="0.00 0.00 840.00 529.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+ <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 485.95)">
10
+ <title>PWN_REPL</title>
11
+ <polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-485.95 796.57,-485.95 796.57,43.2 -43.2,43.2"/>
12
+ <text xml:space="preserve" text-anchor="start" x="183.93" y="-420.75" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">The pwn REPL — Interactive Prototyping</text>
13
+ <text xml:space="preserve" text-anchor="start" x="266.81" y="-409.3" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">Pry + full PWN:: preload + custom commands</text>
12
14
  <g id="clust1" class="cluster">
13
- <title>cluster_pwn</title>
14
- <polygon fill="none" stroke="navy" points="686.89,-54.67 686.89,-365.67 804.39,-365.67 804.39,-54.67 686.89,-54.67"/>
15
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-348.37" font-family="Times,serif" font-size="14.00">PWN Namespace</text>
15
+ <title>cluster_repl</title>
16
+ <path fill="#2e1065" stroke="#6d28d9" stroke-width="2" d="M139,-242.5C139,-242.5 513,-242.5 513,-242.5 519,-242.5 525,-248.5 525,-254.5 525,-254.5 525,-313.75 525,-313.75 525,-319.75 519,-325.75 513,-325.75 513,-325.75 139,-325.75 139,-325.75 133,-325.75 127,-319.75 127,-313.75 127,-313.75 127,-254.5 127,-254.5 127,-248.5 133,-242.5 139,-242.5"/>
17
+ <text xml:space="preserve" text-anchor="middle" x="326" y="-302.75" font-family="sans-Serif" font-size="20.00" fill="#ddd6fe">Plugins::REPL &#160;(Pry)</text>
18
+ </g>
19
+ <g id="clust3" class="cluster">
20
+ <title>cluster_cmds</title>
21
+ <path fill="#022c22" stroke="#047857" d="M53,-125.25C53,-125.25 674,-125.25 674,-125.25 680,-125.25 686,-131.25 686,-137.25 686,-137.25 686,-196.5 686,-196.5 686,-202.5 680,-208.5 674,-208.5 674,-208.5 53,-208.5 53,-208.5 47,-208.5 41,-202.5 41,-196.5 41,-196.5 41,-137.25 41,-137.25 41,-131.25 47,-125.25 53,-125.25"/>
22
+ <text xml:space="preserve" text-anchor="middle" x="363.5" y="-185.5" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">Custom Commands</text>
23
+ </g>
24
+ <g id="clust5" class="cluster">
25
+ <title>cluster_ns</title>
26
+ <path fill="#422006" stroke="#a16207" d="M20,-8C20,-8 322,-8 322,-8 328,-8 334,-14 334,-20 334,-20 334,-79.25 334,-79.25 334,-85.25 328,-91.25 322,-91.25 322,-91.25 20,-91.25 20,-91.25 14,-91.25 8,-85.25 8,-79.25 8,-79.25 8,-20 8,-20 8,-14 14,-8 20,-8"/>
27
+ <text xml:space="preserve" text-anchor="middle" x="171" y="-68.25" font-family="sans-Serif" font-size="20.00" fill="#fde68a">Live Namespace</text>
16
28
  </g>
17
29
  <!-- User -->
18
30
  <g id="node1" class="node">
19
31
  <title>User</title>
20
- <path fill="none" stroke="black" d="M58,-159.67C58,-159.67 12,-159.67 12,-159.67 6,-159.67 0,-153.67 0,-147.67 0,-147.67 0,-135.67 0,-135.67 0,-129.67 6,-123.67 12,-123.67 12,-123.67 58,-123.67 58,-123.67 64,-123.67 70,-129.67 70,-135.67 70,-135.67 70,-147.67 70,-147.67 70,-153.67 64,-159.67 58,-159.67"/>
21
- <text xml:space="preserve" text-anchor="middle" x="35" y="-143.62" font-family="Arial" font-size="9.00">User</text>
22
- <text xml:space="preserve" text-anchor="middle" x="35" y="-133.12" font-family="Arial" font-size="9.00">(Researcher)</text>
32
+ <path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M357.5,-403.75C357.5,-403.75 320.5,-403.75 320.5,-403.75 314.5,-403.75 308.5,-397.75 308.5,-391.75 308.5,-391.75 308.5,-379.75 308.5,-379.75 308.5,-373.75 314.5,-367.75 320.5,-367.75 320.5,-367.75 357.5,-367.75 357.5,-367.75 363.5,-367.75 369.5,-373.75 369.5,-379.75 369.5,-379.75 369.5,-391.75 369.5,-391.75 369.5,-397.75 363.5,-403.75 357.5,-403.75"/>
33
+ <text xml:space="preserve" text-anchor="middle" x="339" y="-382.62" font-family="sans-Serif" font-size="10.00" fill="#0f172a">👤 &#160;$ pwn</text>
23
34
  </g>
24
- <!-- Shell -->
35
+ <!-- Prompt -->
25
36
  <g id="node2" class="node">
26
- <title>Shell</title>
27
- <path fill="none" stroke="black" d="M212.75,-199.67C212.75,-199.67 133,-199.67 133,-199.67 127,-199.67 121,-193.67 121,-187.67 121,-187.67 121,-175.67 121,-175.67 121,-169.67 127,-163.67 133,-163.67 133,-163.67 212.75,-163.67 212.75,-163.67 218.75,-163.67 224.75,-169.67 224.75,-175.67 224.75,-175.67 224.75,-187.67 224.75,-187.67 224.75,-193.67 218.75,-199.67 212.75,-199.67"/>
28
- <text xml:space="preserve" text-anchor="middle" x="172.88" y="-178.37" font-family="Arial" font-size="9.00">shell (pwn command)</text>
37
+ <title>Prompt</title>
38
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M229.38,-286.5C229.38,-286.5 146.62,-286.5 146.62,-286.5 140.62,-286.5 134.62,-280.5 134.62,-274.5 134.62,-274.5 134.62,-262.5 134.62,-262.5 134.62,-256.5 140.62,-250.5 146.62,-250.5 146.62,-250.5 229.38,-250.5 229.38,-250.5 235.38,-250.5 241.38,-256.5 241.38,-262.5 241.38,-262.5 241.38,-274.5 241.38,-274.5 241.38,-280.5 235.38,-286.5 229.38,-286.5"/>
39
+ <text xml:space="preserve" text-anchor="middle" x="188" y="-265" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn[v0.5.x]:001 &gt;&gt;&gt;</text>
29
40
  </g>
30
- <!-- User&#45;&gt;Shell -->
41
+ <!-- User&#45;&gt;Prompt -->
31
42
  <g id="edge1" class="edge">
32
- <title>User&#45;&gt;Shell</title>
33
- <path fill="none" stroke="black" d="M70.29,-151.76C82.32,-155.31 96.24,-159.4 109.84,-163.41"/>
34
- <polygon fill="black" stroke="black" points="108.61,-166.69 119.19,-166.16 110.58,-159.98 108.61,-166.69"/>
35
- <text xml:space="preserve" text-anchor="middle" x="95.5" y="-162.62" font-family="Arial" font-size="8.00">pwn</text>
43
+ <title>User&#45;&gt;Prompt</title>
44
+ <path fill="none" stroke="#38bdf8" stroke-width="2" d="M315.75,-367.25C300.22,-355.54 279.35,-339.76 261,-325.75 247.26,-315.26 232.11,-303.6 219.19,-293.63"/>
45
+ <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="221.09,-291.56 213.04,-288.89 217.66,-295.99 221.09,-291.56"/>
36
46
  </g>
37
- <!-- Pry -->
47
+ <!-- Preload -->
38
48
  <g id="node3" class="node">
39
- <title>Pry</title>
40
- <ellipse fill="lightgreen" stroke="black" cx="341.95" cy="-141.67" rx="61.7" ry="20.51"/>
41
- <text xml:space="preserve" text-anchor="middle" x="341.95" y="-143.62" font-family="Arial" font-size="9.00">Pry REPL</text>
42
- <text xml:space="preserve" text-anchor="middle" x="341.95" y="-133.12" font-family="Arial" font-size="9.00">(PWN preloaded)</text>
43
- </g>
44
- <!-- Shell&#45;&gt;Pry -->
45
- <g id="edge2" class="edge">
46
- <title>Shell&#45;&gt;Pry</title>
47
- <path fill="none" stroke="black" d="M224.91,-169.45C242.31,-165.29 261.95,-160.58 280.05,-156.25"/>
48
- <polygon fill="black" stroke="black" points="280.7,-159.69 289.61,-153.96 279.07,-152.89 280.7,-159.69"/>
49
- <text xml:space="preserve" text-anchor="middle" x="252.5" y="-166.22" font-family="Arial" font-size="8.00">starts</text>
50
- </g>
51
- <!-- Pry&#45;&gt;User -->
52
- <g id="edge12" class="edge">
53
- <title>Pry&#45;&gt;User</title>
54
- <path fill="none" stroke="black" d="M280.96,-137.67C262.9,-136.64 243.03,-135.68 224.75,-135.17 178.66,-133.88 167.08,-133.41 121,-135.17 108.2,-135.66 94.35,-136.56 81.61,-137.54"/>
55
- <polygon fill="black" stroke="black" points="81.49,-134.04 71.8,-138.33 82.05,-141.01 81.49,-134.04"/>
56
- <text xml:space="preserve" text-anchor="middle" x="172.88" y="-147.07" font-family="Arial" font-size="8.00">interactive results</text>
57
- <text xml:space="preserve" text-anchor="middle" x="172.88" y="-137.32" font-family="Arial" font-size="8.00">inspect / pp / tab&#45;complete</text>
49
+ <title>Preload</title>
50
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M384.88,-286.5C384.88,-286.5 293.12,-286.5 293.12,-286.5 287.12,-286.5 281.12,-280.5 281.12,-274.5 281.12,-274.5 281.12,-262.5 281.12,-262.5 281.12,-256.5 287.12,-250.5 293.12,-250.5 293.12,-250.5 384.88,-250.5 384.88,-250.5 390.88,-250.5 396.88,-256.5 396.88,-262.5 396.88,-262.5 396.88,-274.5 396.88,-274.5 396.88,-280.5 390.88,-286.5 384.88,-286.5"/>
51
+ <text xml:space="preserve" text-anchor="middle" x="339" y="-271" font-family="sans-Serif" font-size="10.00" fill="#0f172a">autoload PWN::*</text>
52
+ <text xml:space="preserve" text-anchor="middle" x="339" y="-259" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Banner · MonkeyPatch</text>
58
53
  </g>
59
- <!-- Plugins -->
54
+ <!-- User&#45;&gt;Preload -->
55
+ <!-- Hist -->
60
56
  <g id="node4" class="node">
61
- <title>Plugins</title>
62
- <path fill="none" stroke="black" d="M784.39,-332.67C784.39,-332.67 706.89,-332.67 706.89,-332.67 700.89,-332.67 694.89,-326.67 694.89,-320.67 694.89,-320.67 694.89,-294.67 694.89,-294.67 694.89,-288.67 700.89,-282.67 706.89,-282.67 706.89,-282.67 784.39,-282.67 784.39,-282.67 790.39,-282.67 796.39,-288.67 796.39,-294.67 796.39,-294.67 796.39,-320.67 796.39,-320.67 796.39,-326.67 790.39,-332.67 784.39,-332.67"/>
63
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-320.12" font-family="Arial" font-size="9.00">PWN::Plugins::</text>
64
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-309.62" font-family="Arial" font-size="9.00">(Burp, NmapIt,</text>
65
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-299.12" font-family="Arial" font-size="9.00">TransparentBrowser,</text>
66
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-288.62" font-family="Arial" font-size="9.00">Metasploit, etc.)</text>
67
- </g>
68
- <!-- Pry&#45;&gt;Plugins -->
69
- <g id="edge3" class="edge">
70
- <title>Pry&#45;&gt;Plugins</title>
71
- <path fill="none" stroke="black" d="M368.5,-160.44C383.57,-171.12 403.25,-184.37 421.64,-194.67 507.19,-242.59 616.7,-275.69 683.71,-293.17"/>
72
- <polygon fill="black" stroke="black" points="682.47,-296.46 693.03,-295.56 684.21,-289.68 682.47,-296.46"/>
73
- <text xml:space="preserve" text-anchor="middle" x="555.27" y="-273.11" font-family="Arial" font-size="8.00">direct method calls</text>
74
- </g>
75
- <!-- SAST -->
57
+ <title>Hist</title>
58
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M505.25,-286.5C505.25,-286.5 448.75,-286.5 448.75,-286.5 442.75,-286.5 436.75,-280.5 436.75,-274.5 436.75,-274.5 436.75,-262.5 436.75,-262.5 436.75,-256.5 442.75,-250.5 448.75,-250.5 448.75,-250.5 505.25,-250.5 505.25,-250.5 511.25,-250.5 517.25,-256.5 517.25,-262.5 517.25,-262.5 517.25,-274.5 517.25,-274.5 517.25,-280.5 511.25,-286.5 505.25,-286.5"/>
59
+ <text xml:space="preserve" text-anchor="middle" x="477" y="-271" font-family="sans-Serif" font-size="10.00" fill="#0f172a">~/.pwn_history</text>
60
+ <text xml:space="preserve" text-anchor="middle" x="477" y="-259" font-family="sans-Serif" font-size="10.00" fill="#0f172a">replay · edit</text>
61
+ </g>
62
+ <!-- User&#45;&gt;Hist -->
63
+ <!-- CAI -->
76
64
  <g id="node5" class="node">
77
- <title>SAST</title>
78
- <path fill="none" stroke="black" d="M772.77,-264.42C772.77,-264.42 718.52,-264.42 718.52,-264.42 712.52,-264.42 706.52,-258.42 706.52,-252.42 706.52,-252.42 706.52,-236.92 706.52,-236.92 706.52,-230.92 712.52,-224.92 718.52,-224.92 718.52,-224.92 772.77,-224.92 772.77,-224.92 778.77,-224.92 784.77,-230.92 784.77,-236.92 784.77,-236.92 784.77,-252.42 784.77,-252.42 784.77,-258.42 778.77,-264.42 772.77,-264.42"/>
79
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-251.87" font-family="Arial" font-size="9.00">PWN::SAST</text>
80
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-241.37" font-family="Arial" font-size="9.00">(Static Analysis</text>
81
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-230.87" font-family="Arial" font-size="9.00">+ Testgen)</text>
65
+ <title>CAI</title>
66
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M91,-169.25C91,-169.25 61,-169.25 61,-169.25 55,-169.25 49,-163.25 49,-157.25 49,-157.25 49,-145.25 49,-145.25 49,-139.25 55,-133.25 61,-133.25 61,-133.25 91,-133.25 91,-133.25 97,-133.25 103,-139.25 103,-145.25 103,-145.25 103,-157.25 103,-157.25 103,-163.25 97,-169.25 91,-169.25"/>
67
+ <text xml:space="preserve" text-anchor="middle" x="76" y="-147.75" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn&#45;ai</text>
82
68
  </g>
83
- <!-- Pry&#45;&gt;SAST -->
69
+ <!-- Prompt&#45;&gt;CAI -->
84
70
  <g id="edge4" class="edge">
85
- <title>Pry&#45;&gt;SAST</title>
86
- <path fill="none" stroke="black" d="M381.79,-157.73C394.38,-162.6 408.48,-167.7 421.64,-171.67 517.04,-200.48 631.34,-223.74 695.2,-235.76"/>
87
- <polygon fill="black" stroke="black" points="694.18,-239.13 704.66,-237.53 695.47,-232.25 694.18,-239.13"/>
88
- <text xml:space="preserve" text-anchor="middle" x="555.27" y="-219.86" font-family="Arial" font-size="8.00">PWN::SAST.analyze...</text>
71
+ <title>Prompt&#45;&gt;CAI</title>
72
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M167.12,-249.86C154.03,-238.48 137.04,-223.12 123,-208.5 113.61,-198.72 103.9,-187.34 95.76,-177.38"/>
73
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="98.04,-175.76 90.84,-171.29 93.69,-179.28 98.04,-175.76"/>
89
74
  </g>
90
- <!-- Reports -->
75
+ <!-- CASM -->
91
76
  <g id="node6" class="node">
92
- <title>Reports</title>
93
- <path fill="none" stroke="black" d="M770.52,-206.67C770.52,-206.67 720.77,-206.67 720.77,-206.67 714.77,-206.67 708.77,-200.67 708.77,-194.67 708.77,-194.67 708.77,-182.67 708.77,-182.67 708.77,-176.67 714.77,-170.67 720.77,-170.67 720.77,-170.67 770.52,-170.67 770.52,-170.67 776.52,-170.67 782.52,-176.67 782.52,-182.67 782.52,-182.67 782.52,-194.67 782.52,-194.67 782.52,-200.67 776.52,-206.67 770.52,-206.67"/>
94
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-185.37" font-family="Arial" font-size="9.00">PWN::Reports</text>
77
+ <title>CASM</title>
78
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M186.88,-169.25C186.88,-169.25 155.12,-169.25 155.12,-169.25 149.12,-169.25 143.12,-163.25 143.12,-157.25 143.12,-157.25 143.12,-145.25 143.12,-145.25 143.12,-139.25 149.12,-133.25 155.12,-133.25 155.12,-133.25 186.88,-133.25 186.88,-133.25 192.88,-133.25 198.88,-139.25 198.88,-145.25 198.88,-145.25 198.88,-157.25 198.88,-157.25 198.88,-163.25 192.88,-169.25 186.88,-169.25"/>
79
+ <text xml:space="preserve" text-anchor="middle" x="171" y="-147.75" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn&#45;asm</text>
95
80
  </g>
96
- <!-- Pry&#45;&gt;Reports -->
81
+ <!-- Prompt&#45;&gt;CASM -->
97
82
  <g id="edge5" class="edge">
98
- <title>Pry&#45;&gt;Reports</title>
99
- <path fill="none" stroke="black" d="M398.36,-150.43C406.17,-151.57 414.1,-152.69 421.64,-153.67 519.58,-166.44 634.65,-178.11 697.6,-184.22"/>
100
- <polygon fill="black" stroke="black" points="696.94,-187.67 707.23,-185.15 697.61,-180.7 696.94,-187.67"/>
101
- <text xml:space="preserve" text-anchor="middle" x="555.27" y="-177.16" font-family="Arial" font-size="8.00">PWN::Reports.generate</text>
102
- </g>
103
- <!-- AI -->
104
- <g id="node8" class="node">
105
- <title>AI</title>
106
- <path fill="none" stroke="black" d="M778.02,-152.67C778.02,-152.67 713.27,-152.67 713.27,-152.67 707.27,-152.67 701.27,-146.67 701.27,-140.67 701.27,-140.67 701.27,-128.67 701.27,-128.67 701.27,-122.67 707.27,-116.67 713.27,-116.67 713.27,-116.67 778.02,-116.67 778.02,-116.67 784.02,-116.67 790.02,-122.67 790.02,-128.67 790.02,-128.67 790.02,-140.67 790.02,-140.67 790.02,-146.67 784.02,-152.67 778.02,-152.67"/>
107
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-136.62" font-family="Arial" font-size="9.00">PWN::AI::</text>
108
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-126.12" font-family="Arial" font-size="9.00">(Agent, Grok, etc.)</text>
83
+ <title>Prompt&#45;&gt;CASM</title>
84
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M185.42,-250C182.64,-231.19 178.2,-201.06 174.98,-179.22"/>
85
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="177.78,-178.99 173.84,-171.49 172.24,-179.81 177.78,-178.99"/>
86
+ </g>
87
+ <!-- NS -->
88
+ <g id="node11" class="node">
89
+ <title>NS</title>
90
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M313.62,-52C313.62,-52 28.38,-52 28.38,-52 22.38,-52 16.38,-46 16.38,-40 16.38,-40 16.38,-28 16.38,-28 16.38,-22 22.38,-16 28.38,-16 28.38,-16 313.62,-16 313.62,-16 319.62,-16 325.62,-22 325.62,-28 325.62,-28 325.62,-40 325.62,-40 325.62,-46 319.62,-52 313.62,-52"/>
91
+ <text xml:space="preserve" text-anchor="middle" x="171" y="-37.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">PWN::Plugins &#160;· &#160;PWN::SAST &#160;· &#160;PWN::AWS &#160;· &#160;PWN::SDR</text>
92
+ <text xml:space="preserve" text-anchor="middle" x="171" y="-23.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">PWN::WWW &#160;· &#160;PWN::Reports &#160;· &#160;PWN::AI &#160;· &#160;PWN::Memory</text>
93
+ </g>
94
+ <!-- Prompt&#45;&gt;NS -->
95
+ <g id="edge13" class="edge">
96
+ <title>Prompt&#45;&gt;NS</title>
97
+ <path fill="none" stroke="#f59e0b" stroke-width="2" d="M233.46,-249.97C242.47,-247.05 251.95,-244.37 261,-242.5 308.48,-232.68 663.08,-244.09 696,-208.5 721.12,-181.34 719.84,-153.54 696,-125.25 650.59,-71.37 473.25,-49.66 337.11,-40.91"/>
98
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="2" points="337.32,-38.12 329.16,-40.41 336.97,-43.7 337.32,-38.12"/>
99
+ <text xml:space="preserve" text-anchor="middle" x="733.87" y="-147.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">direct call</text>
100
+ </g>
101
+ <!-- CMEM -->
102
+ <g id="node7" class="node">
103
+ <title>CMEM</title>
104
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M309.38,-169.25C309.38,-169.25 250.62,-169.25 250.62,-169.25 244.62,-169.25 238.62,-163.25 238.62,-157.25 238.62,-157.25 238.62,-145.25 238.62,-145.25 238.62,-139.25 244.62,-133.25 250.62,-133.25 250.62,-133.25 309.38,-133.25 309.38,-133.25 315.38,-133.25 321.38,-139.25 321.38,-145.25 321.38,-145.25 321.38,-157.25 321.38,-157.25 321.38,-163.25 315.38,-169.25 309.38,-169.25"/>
105
+ <text xml:space="preserve" text-anchor="middle" x="280" y="-147.75" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn&#45;ai&#45;memory</text>
109
106
  </g>
110
- <!-- Pry&#45;&gt;AI -->
107
+ <!-- Preload&#45;&gt;CMEM -->
111
108
  <g id="edge6" class="edge">
112
- <title>Pry&#45;&gt;AI</title>
113
- <path fill="none" stroke="black" d="M403.95,-140.61C481.66,-139.25 614.81,-136.93 689.57,-135.63"/>
114
- <polygon fill="black" stroke="black" points="689.6,-139.13 699.53,-135.46 689.47,-132.13 689.6,-139.13"/>
115
- <text xml:space="preserve" text-anchor="middle" x="555.27" y="-141.02" font-family="Arial" font-size="8.00">pwn&#45;ai or direct</text>
109
+ <title>Preload&#45;&gt;CMEM</title>
110
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M330.04,-250C320.28,-230.93 304.57,-200.24 293.35,-178.33"/>
111
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="295.89,-177.14 289.75,-171.29 290.9,-179.69 295.89,-177.14"/>
116
112
  </g>
117
- <!-- History -->
118
- <g id="node9" class="node">
119
- <title>History</title>
120
- <path fill="none" stroke="black" d="M607.89,-110.98C607.89,-112.98 584.3,-114.61 555.27,-114.61 526.23,-114.61 502.64,-112.98 502.64,-110.98 502.64,-110.98 502.64,-78.36 502.64,-78.36 502.64,-76.36 526.23,-74.73 555.27,-74.73 584.3,-74.73 607.89,-76.36 607.89,-78.36 607.89,-78.36 607.89,-110.98 607.89,-110.98"/>
121
- <path fill="none" stroke="black" d="M607.89,-110.98C607.89,-108.98 584.3,-107.36 555.27,-107.36 526.23,-107.36 502.64,-108.98 502.64,-110.98"/>
122
- <text xml:space="preserve" text-anchor="middle" x="555.27" y="-96.62" font-family="Arial" font-size="9.00">Pry Command History</text>
123
- <text xml:space="preserve" text-anchor="middle" x="555.27" y="-86.12" font-family="Arial" font-size="9.00">(~/.pry_history)</text>
113
+ <!-- CSESS -->
114
+ <g id="node8" class="node">
115
+ <title>CSESS</title>
116
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M436.25,-169.25C436.25,-169.25 373.75,-169.25 373.75,-169.25 367.75,-169.25 361.75,-163.25 361.75,-157.25 361.75,-157.25 361.75,-145.25 361.75,-145.25 361.75,-139.25 367.75,-133.25 373.75,-133.25 373.75,-133.25 436.25,-133.25 436.25,-133.25 442.25,-133.25 448.25,-139.25 448.25,-145.25 448.25,-145.25 448.25,-157.25 448.25,-157.25 448.25,-163.25 442.25,-169.25 436.25,-169.25"/>
117
+ <text xml:space="preserve" text-anchor="middle" x="405" y="-147.75" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn&#45;ai&#45;sessions</text>
124
118
  </g>
125
- <!-- Pry&#45;&gt;History -->
119
+ <!-- Preload&#45;&gt;CSESS -->
126
120
  <g id="edge7" class="edge">
127
- <title>Pry&#45;&gt;History</title>
128
- <path fill="none" stroke="black" d="M394.1,-130.29C423.36,-123.78 460.31,-115.57 491.34,-108.67"/>
129
- <polygon fill="black" stroke="black" points="492,-112.1 501,-106.52 490.48,-105.27 492,-112.1"/>
130
- <text xml:space="preserve" text-anchor="middle" x="453.14" y="-125.91" font-family="Arial" font-size="8.00">every cmd logged</text>
121
+ <title>Preload&#45;&gt;CSESS</title>
122
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M349.02,-250C359.99,-230.85 377.68,-199.96 390.23,-178.04"/>
123
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="392.57,-179.58 394.12,-171.25 387.71,-176.8 392.57,-179.58"/>
131
124
  </g>
132
- <!-- Scripts -->
133
- <g id="node10" class="node">
134
- <title>Scripts</title>
135
- <path fill="none" stroke="black" d="M586.52,-52.67C586.52,-52.67 524.02,-52.67 524.02,-52.67 518.02,-52.67 512.02,-46.67 512.02,-40.67 512.02,-40.67 512.02,-28.67 512.02,-28.67 512.02,-22.67 518.02,-16.67 524.02,-16.67 524.02,-16.67 586.52,-16.67 586.52,-16.67 592.52,-16.67 598.52,-22.67 598.52,-28.67 598.52,-28.67 598.52,-40.67 598.52,-40.67 598.52,-46.67 592.52,-52.67 586.52,-52.67"/>
136
- <text xml:space="preserve" text-anchor="middle" x="555.27" y="-36.62" font-family="Arial" font-size="9.00">Custom Scripts</text>
137
- <text xml:space="preserve" text-anchor="middle" x="555.27" y="-26.12" font-family="Arial" font-size="9.00">&amp; Prototypes (.rb)</text>
125
+ <!-- CCRON -->
126
+ <g id="node9" class="node">
127
+ <title>CCRON</title>
128
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M542.12,-169.25C542.12,-169.25 499.88,-169.25 499.88,-169.25 493.88,-169.25 487.88,-163.25 487.88,-157.25 487.88,-157.25 487.88,-145.25 487.88,-145.25 487.88,-139.25 493.88,-133.25 499.88,-133.25 499.88,-133.25 542.12,-133.25 542.12,-133.25 548.12,-133.25 554.12,-139.25 554.12,-145.25 554.12,-145.25 554.12,-157.25 554.12,-157.25 554.12,-163.25 548.12,-169.25 542.12,-169.25"/>
129
+ <text xml:space="preserve" text-anchor="middle" x="521" y="-147.75" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn&#45;ai&#45;cron</text>
138
130
  </g>
139
- <!-- Pry&#45;&gt;Scripts -->
131
+ <!-- Hist&#45;&gt;CCRON -->
140
132
  <g id="edge8" class="edge">
141
- <title>Pry&#45;&gt;Scripts</title>
142
- <path fill="none" stroke="black" d="M354.05,-121.09C367.1,-99.18 390.9,-65.46 421.64,-49.17 445.51,-36.52 475.16,-32.39 500.37,-31.64"/>
143
- <polygon fill="black" stroke="black" points="500.13,-35.14 510.09,-31.53 500.05,-28.14 500.13,-35.14"/>
144
- <text xml:space="preserve" text-anchor="middle" x="453.14" y="-61.07" font-family="Arial" font-size="8.00">save / edit</text>
145
- <text xml:space="preserve" text-anchor="middle" x="453.14" y="-51.32" font-family="Arial" font-size="8.00">prototype</text>
133
+ <title>Hist&#45;&gt;CCRON</title>
134
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M483.68,-250C490.93,-231.02 502.58,-200.51 510.93,-178.63"/>
135
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="513.46,-179.85 513.7,-171.38 508.23,-177.85 513.46,-179.85"/>
146
136
  </g>
147
- <!-- Driver -->
148
- <g id="node7" class="node">
149
- <title>Driver</title>
150
- <path fill="none" stroke="black" d="M780.64,-98.67C780.64,-98.67 710.64,-98.67 710.64,-98.67 704.64,-98.67 698.64,-92.67 698.64,-86.67 698.64,-86.67 698.64,-74.67 698.64,-74.67 698.64,-68.67 704.64,-62.67 710.64,-62.67 710.64,-62.67 780.64,-62.67 780.64,-62.67 786.64,-62.67 792.64,-68.67 792.64,-74.67 792.64,-74.67 792.64,-86.67 792.64,-86.67 792.64,-92.67 786.64,-98.67 780.64,-98.67"/>
151
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-82.62" font-family="Arial" font-size="9.00">PWN::Driver</text>
152
- <text xml:space="preserve" text-anchor="middle" x="745.64" y="-72.12" font-family="Arial" font-size="9.00">(Parser, auto_opts)</text>
137
+ <!-- CDEL -->
138
+ <g id="node10" class="node">
139
+ <title>CDEL</title>
140
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M666.12,-169.25C666.12,-169.25 605.88,-169.25 605.88,-169.25 599.88,-169.25 593.88,-163.25 593.88,-157.25 593.88,-157.25 593.88,-145.25 593.88,-145.25 593.88,-139.25 599.88,-133.25 605.88,-133.25 605.88,-133.25 666.12,-133.25 666.12,-133.25 672.12,-133.25 678.12,-139.25 678.12,-145.25 678.12,-145.25 678.12,-157.25 678.12,-157.25 678.12,-163.25 672.12,-169.25 666.12,-169.25"/>
141
+ <text xml:space="preserve" text-anchor="middle" x="636" y="-147.75" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn&#45;ai&#45;delegate</text>
153
142
  </g>
154
- <!-- History&#45;&gt;Pry -->
143
+ <!-- Hist&#45;&gt;CDEL -->
155
144
  <g id="edge9" class="edge">
156
- <title>History&#45;&gt;Pry</title>
157
- <path fill="none" stroke="black" d="M502.39,-77.6C477.4,-72.05 447.35,-69.37 421.64,-78.42 401.32,-85.57 382.38,-100.43 368.17,-113.95"/>
158
- <polygon fill="black" stroke="black" points="366.08,-111.09 361.45,-120.62 371.01,-116.06 366.08,-111.09"/>
159
- <text xml:space="preserve" text-anchor="middle" x="453.14" y="-100.07" font-family="Arial" font-size="8.00">history</text>
160
- <text xml:space="preserve" text-anchor="middle" x="453.14" y="-90.32" font-family="Arial" font-size="8.00">up&#45;arrow</text>
161
- <text xml:space="preserve" text-anchor="middle" x="453.14" y="-80.57" font-family="Arial" font-size="8.00">ctrl&#45;r search</text>
162
- </g>
163
- <!-- Scripts&#45;&gt;Pry -->
145
+ <title>Hist&#45;&gt;CDEL</title>
146
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M509,-250.09C528.4,-239.04 553.31,-223.95 574,-208.5 586.96,-198.82 600.37,-186.92 611.39,-176.57"/>
147
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="613.32,-178.59 617.18,-171.05 609.46,-174.54 613.32,-178.59"/>
148
+ </g>
149
+ <!-- CAI&#45;&gt;NS -->
164
150
  <g id="edge10" class="edge">
165
- <title>Scripts&#45;&gt;Pry</title>
166
- <path fill="none" stroke="black" d="M520.6,-16.23C492.49,-3.52 452.21,8.23 421.64,-9.17 383.95,-30.62 362.44,-78.03 351.73,-109.92"/>
167
- <polygon fill="black" stroke="black" points="348.39,-108.86 348.72,-119.45 355.07,-110.97 348.39,-108.86"/>
168
- <text xml:space="preserve" text-anchor="middle" x="453.14" y="-21.07" font-family="Arial" font-size="8.00">load / require</text>
169
- <text xml:space="preserve" text-anchor="middle" x="453.14" y="-11.32" font-family="Arial" font-size="8.00">copy&#45;paste</text>
151
+ <title>CAI&#45;&gt;NS</title>
152
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M90.43,-132.75C106.42,-113.34 132.35,-81.89 150.46,-59.92"/>
153
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="152.57,-61.76 155.5,-53.81 148.25,-58.2 152.57,-61.76"/>
170
154
  </g>
171
- <!-- Scripts&#45;&gt;Driver -->
155
+ <!-- CASM&#45;&gt;NS -->
172
156
  <g id="edge11" class="edge">
173
- <title>Scripts&#45;&gt;Driver</title>
174
- <path fill="none" stroke="black" d="M599.01,-45.11C625.17,-51.5 658.97,-59.75 687.42,-66.7"/>
175
- <polygon fill="black" stroke="black" points="686.42,-70.06 696.97,-69.03 688.09,-63.26 686.42,-70.06"/>
176
- <text xml:space="preserve" text-anchor="middle" x="651.39" y="-65.29" font-family="Arial" font-size="8.00">wrap as driver</text>
157
+ <title>CASM&#45;&gt;NS</title>
158
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M171,-132.75C171,-113.94 171,-83.81 171,-61.97"/>
159
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="173.8,-62.26 171,-54.26 168.2,-62.26 173.8,-62.26"/>
160
+ </g>
161
+ <!-- CMEM&#45;&gt;NS -->
162
+ <g id="edge12" class="edge">
163
+ <title>CMEM&#45;&gt;NS</title>
164
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M263.45,-132.75C244.93,-113.17 214.82,-81.33 194.02,-59.34"/>
165
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="196.24,-57.61 188.71,-53.72 192.17,-61.46 196.24,-57.61"/>
177
166
  </g>
178
167
  </g>
179
168
  </svg>