pwn 0.5.779 → 0.5.781
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 +3 -3
- data/documentation/AI-Integration.md +4 -4
- data/documentation/AWS.md +10 -9
- data/documentation/Agent-Tool-Registry.md +20 -17
- data/documentation/Blockchain.md +3 -2
- data/documentation/Bounty.md +8 -6
- data/documentation/BurpSuite.md +6 -10
- data/documentation/CLI-Drivers.md +7 -4
- data/documentation/Capability-Broker-Sandbox.md +1 -1
- data/documentation/Configuration.md +23 -15
- data/documentation/Contributing.md +3 -3
- data/documentation/Cron.md +3 -2
- data/documentation/Diagrams.md +9 -3
- data/documentation/Drivers.md +12 -6
- data/documentation/Extrospection.md +25 -5
- data/documentation/FFI.md +15 -25
- data/documentation/Fuzzing.md +13 -13
- data/documentation/General-PWN-Usage.md +7 -4
- data/documentation/Harness-Evaluation.md +90 -3
- data/documentation/Home.md +6 -5
- data/documentation/How-PWN-Works.md +9 -10
- data/documentation/Installation.md +12 -11
- data/documentation/Metasploit.md +13 -19
- data/documentation/Mistakes.md +2 -2
- data/documentation/NmapIt.md +6 -3
- data/documentation/Operability.md +99 -0
- data/documentation/Persistence.md +3 -2
- data/documentation/Plugin-Degradation.md +4 -2
- data/documentation/Plugins.md +4 -11
- data/documentation/Policy-Benchmark.md +4 -0
- data/documentation/Reinforcement-Learning.md +19 -3
- data/documentation/Reporting.md +6 -5
- data/documentation/SAST.md +15 -10
- data/documentation/SDR-Decoder-Coverage.md +10 -4
- data/documentation/SDR.md +28 -40
- data/documentation/Session-Workflow.md +25 -12
- data/documentation/Sessions.md +7 -0
- data/documentation/Skills-Memory-Learning.md +11 -4
- data/documentation/Swarm.md +6 -0
- data/documentation/Transparent-Browser.md +1 -1
- data/documentation/Troubleshooting.md +6 -3
- data/documentation/What-is-PWN.md +4 -4
- data/documentation/Why-PWN.md +1 -1
- data/documentation/diagrams/agent-tool-registry.svg +219 -180
- data/documentation/diagrams/ai-integration-tool-calling.svg +35 -34
- data/documentation/diagrams/code-scanning-sast.svg +78 -78
- data/documentation/diagrams/cron-scheduling.svg +165 -145
- data/documentation/diagrams/dot/_THEME.md +6 -4
- data/documentation/diagrams/dot/agent-tool-registry.dot +6 -2
- data/documentation/diagrams/dot/ai-integration-tool-calling.dot +1 -1
- data/documentation/diagrams/dot/code-scanning-sast.dot +8 -8
- data/documentation/diagrams/dot/cron-scheduling.dot +2 -0
- data/documentation/diagrams/dot/driver-framework.dot +1 -1
- data/documentation/diagrams/dot/extrospection-world-awareness.dot +2 -2
- data/documentation/diagrams/dot/fuzzing-workflow.dot +3 -3
- data/documentation/diagrams/dot/history-to-drivers.dot +1 -1
- data/documentation/diagrams/dot/memory-skills-detailed.dot +3 -3
- data/documentation/diagrams/dot/mistakes-negative-feedback.dot +2 -2
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +33 -121
- data/documentation/diagrams/dot/persistence-filesystem.dot +2 -2
- data/documentation/diagrams/dot/plugin-ecosystem.dot +2 -2
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +31 -167
- data/documentation/diagrams/dot/pwn-repl-prototyping.dot +1 -1
- data/documentation/diagrams/dot/reinforcement-learning.dot +15 -7
- data/documentation/diagrams/dot/reporting-pipeline.dot +5 -3
- data/documentation/diagrams/dot/reverse-engineering-flow.dot +3 -3
- data/documentation/diagrams/dot/sdr-radio-flow.dot +5 -5
- data/documentation/diagrams/dot/sessions-cron-automation.dot +1 -1
- data/documentation/diagrams/dot/swarm-multi-agent.dot +3 -3
- data/documentation/diagrams/dot/task-summarizer.dot +2 -2
- data/documentation/diagrams/dot/web-application-testing.dot +4 -3
- data/documentation/diagrams/dot/zero-day-research-flow.dot +4 -3
- data/documentation/diagrams/driver-framework.svg +1 -1
- data/documentation/diagrams/extrospection-world-awareness.svg +178 -178
- data/documentation/diagrams/fuzzing-workflow.svg +58 -58
- data/documentation/diagrams/history-to-drivers.svg +42 -42
- data/documentation/diagrams/memory-skills-detailed.svg +210 -210
- data/documentation/diagrams/mistakes-negative-feedback.svg +116 -116
- data/documentation/diagrams/overall-pwn-architecture.svg +248 -404
- data/documentation/diagrams/persistence-filesystem.svg +143 -143
- data/documentation/diagrams/plugin-ecosystem.svg +100 -100
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +233 -752
- data/documentation/diagrams/pwn-repl-prototyping.svg +27 -27
- data/documentation/diagrams/reinforcement-learning.svg +295 -221
- data/documentation/diagrams/reporting-pipeline.svg +94 -80
- data/documentation/diagrams/reverse-engineering-flow.svg +31 -31
- data/documentation/diagrams/sdr-radio-flow.svg +157 -155
- data/documentation/diagrams/sessions-cron-automation.svg +13 -13
- data/documentation/diagrams/swarm-multi-agent.svg +86 -86
- data/documentation/diagrams/task-summarizer.svg +57 -57
- data/documentation/diagrams/web-application-testing.svg +81 -75
- data/documentation/diagrams/zero-day-research-flow.svg +101 -92
- data/documentation/pwn-REPL.md +5 -3
- data/documentation/pwn-ai-Agent.md +18 -14
- data/documentation/pwn_silent_help_learn_demo.gif +0 -0
- data/etc/default_skills/pwn/ai/agent/learning/SKILL.md +1 -0
- data/lib/pwn/ai/agent/learning.rb +46 -1
- data/lib/pwn/ai/agent/loop.rb +6 -3
- data/lib/pwn/ai/agent/policy_evaluation.rb +5 -1
- data/lib/pwn/ai/agent/reward.rb +9 -0
- data/lib/pwn/version.rb +1 -1
- data/spec/fixtures/harness/completion_regressions.json +10 -0
- data/spec/fixtures/harness/completion_regressions.json.sha256 +1 -0
- data/spec/integration/harness_evaluation_spec.rb +13 -0
- data/spec/lib/pwn/ai/agent/learning_spec.rb +22 -0
- data/spec/lib/pwn/ai/agent/loop_spec.rb +39 -0
- data/spec/lib/pwn/ai/agent/policy_evaluation_spec.rb +6 -1
- data/spec/lib/pwn/ai/agent/reward_spec.rb +21 -0
- data/spec/support/harness/evaluate.rb +1 -1
- data/third_party/pwn_rdoc.jsonl +2 -1
- metadata +10 -7
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
5
|
-->
|
|
6
6
|
<!-- Title: PWN_AI_Integration Pages: 1 -->
|
|
7
|
-
<svg width="
|
|
8
|
-
viewBox="0.00 0.00
|
|
7
|
+
<svg width="876pt" height="580pt"
|
|
8
|
+
viewBox="0.00 0.00 876.00 580.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
9
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 537.2)">
|
|
10
10
|
<title>PWN_AI_Integration</title>
|
|
11
|
-
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-537.2
|
|
12
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
13
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-537.2 832.95,-537.2 832.95,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="203.62" y="-472" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">PWN::AI - Multi-Provider LLM Integration</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="286.12" y="-460.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">one Agent Loop · six interchangeable engines</text>
|
|
14
14
|
<g id="clust1" class="cluster">
|
|
15
15
|
<title>cluster_c</title>
|
|
16
16
|
<path fill="#2e1065" stroke="#6d28d9" d="M331.5,-8C331.5,-8 483.25,-8 483.25,-8 489.25,-8 495.25,-14 495.25,-20 495.25,-20 495.25,-435 495.25,-435 495.25,-441 489.25,-447 483.25,-447 483.25,-447 331.5,-447 331.5,-447 325.5,-447 319.5,-441 319.5,-435 319.5,-435 319.5,-20 319.5,-20 319.5,-14 325.5,-8 331.5,-8"/>
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
</g>
|
|
19
19
|
<g id="clust3" class="cluster">
|
|
20
20
|
<title>cluster_api</title>
|
|
21
|
-
<path fill="#450a0a" stroke="#b91c1c" stroke-dasharray="5,2" d="M586.25,-24C586.25,-24
|
|
22
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
21
|
+
<path fill="#450a0a" stroke="#b91c1c" stroke-dasharray="5,2" d="M586.25,-24C586.25,-24 769.75,-24 769.75,-24 775.75,-24 781.75,-30 781.75,-36 781.75,-36 781.75,-435 781.75,-435 781.75,-441 775.75,-447 769.75,-447 769.75,-447 586.25,-447 586.25,-447 580.25,-447 574.25,-441 574.25,-435 574.25,-435 574.25,-36 574.25,-36 574.25,-30 580.25,-24 586.25,-24"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-424" font-family="sans-Serif" font-size="20.00" fill="#fecaca">Provider APIs</text>
|
|
23
23
|
</g>
|
|
24
24
|
<!-- Loop -->
|
|
25
25
|
<g id="node1" class="node">
|
|
@@ -116,77 +116,78 @@
|
|
|
116
116
|
<!-- A1 -->
|
|
117
117
|
<g id="node8" class="node">
|
|
118
118
|
<title>A1</title>
|
|
119
|
-
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="
|
|
120
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
119
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M761.75,-408C761.75,-408 594.25,-408 594.25,-408 588.25,-408 582.25,-402 582.25,-396 582.25,-396 582.25,-384 582.25,-384 582.25,-378 588.25,-372 594.25,-372 594.25,-372 761.75,-372 761.75,-372 767.75,-372 773.75,-378 773.75,-384 773.75,-384 773.75,-396 773.75,-396 773.75,-402 767.75,-408 761.75,-408"/>
|
|
120
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-392.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">api.openai.com (API key)</text>
|
|
121
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-380.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">chatgpt.com/backend-api/codex (OAuth)</text>
|
|
121
122
|
</g>
|
|
122
123
|
<!-- OpenAI->A1 -->
|
|
123
124
|
<g id="edge7" class="edge">
|
|
124
125
|
<title>OpenAI->A1</title>
|
|
125
|
-
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M434.
|
|
126
|
-
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="
|
|
126
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M434.17,-390C466.1,-390 521.9,-390 571.97,-390"/>
|
|
127
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="571.93,-392.8 579.93,-390 571.93,-387.2 571.93,-392.8"/>
|
|
127
128
|
</g>
|
|
128
129
|
<!-- A2 -->
|
|
129
130
|
<g id="node9" class="node">
|
|
130
131
|
<title>A2</title>
|
|
131
|
-
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="
|
|
132
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
132
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M712.62,-340C712.62,-340 643.38,-340 643.38,-340 637.38,-340 631.38,-334 631.38,-328 631.38,-328 631.38,-316 631.38,-316 631.38,-310 637.38,-304 643.38,-304 643.38,-304 712.62,-304 712.62,-304 718.62,-304 724.62,-310 724.62,-316 724.62,-316 724.62,-328 724.62,-328 724.62,-334 718.62,-340 712.62,-340"/>
|
|
133
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-318.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">api.anthropic.com</text>
|
|
133
134
|
</g>
|
|
134
135
|
<!-- Anthropic->A2 -->
|
|
135
136
|
<g id="edge8" class="edge">
|
|
136
137
|
<title>Anthropic->A2</title>
|
|
137
|
-
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="
|
|
138
|
-
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="
|
|
138
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M435.91,-322C479.6,-322 564.76,-322 621.27,-322"/>
|
|
139
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="621.16,-324.8 629.16,-322 621.16,-319.2 621.16,-324.8"/>
|
|
139
140
|
</g>
|
|
140
141
|
<!-- A3 -->
|
|
141
142
|
<g id="node10" class="node">
|
|
142
143
|
<title>A3</title>
|
|
143
|
-
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="
|
|
144
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
145
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
144
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M693,-272C693,-272 663,-272 663,-272 657,-272 651,-266 651,-260 651,-260 651,-248 651,-248 651,-242 657,-236 663,-236 663,-236 693,-236 693,-236 699,-236 705,-242 705,-248 705,-248 705,-260 705,-260 705,-266 699,-272 693,-272"/>
|
|
145
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-256.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">api.x.ai</text>
|
|
146
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-244.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">auth.x.ai</text>
|
|
146
147
|
</g>
|
|
147
148
|
<!-- Grok->A3 -->
|
|
148
149
|
<g id="edge9" class="edge">
|
|
149
150
|
<title>Grok->A3</title>
|
|
150
|
-
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M455.
|
|
151
|
-
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="
|
|
151
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M455.37,-254C508.23,-254 592.5,-254 640.46,-254"/>
|
|
152
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="640.44,-256.8 648.44,-254 640.44,-251.2 640.44,-256.8"/>
|
|
152
153
|
</g>
|
|
153
154
|
<!-- A4 -->
|
|
154
155
|
<g id="node11" class="node">
|
|
155
156
|
<title>A4</title>
|
|
156
|
-
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="
|
|
157
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
158
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
157
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M716,-204C716,-204 640,-204 640,-204 634,-204 628,-198 628,-192 628,-192 628,-180 628,-180 628,-174 634,-168 640,-168 640,-168 716,-168 716,-168 722,-168 728,-174 728,-180 728,-180 728,-192 728,-192 728,-198 722,-204 716,-204"/>
|
|
158
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-188.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">generativelanguage</text>
|
|
159
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-176.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">.googleapis.com</text>
|
|
159
160
|
</g>
|
|
160
161
|
<!-- Gemini->A4 -->
|
|
161
162
|
<g id="edge10" class="edge">
|
|
162
163
|
<title>Gemini->A4</title>
|
|
163
|
-
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M434.
|
|
164
|
-
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="
|
|
164
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M434.17,-186C476.43,-186 560.51,-186 617.76,-186"/>
|
|
165
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="617.45,-188.8 625.45,-186 617.45,-183.2 617.45,-188.8"/>
|
|
165
166
|
</g>
|
|
166
167
|
<!-- A5 -->
|
|
167
168
|
<g id="node12" class="node">
|
|
168
169
|
<title>A5</title>
|
|
169
|
-
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="
|
|
170
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
170
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M708.12,-136C708.12,-136 647.88,-136 647.88,-136 641.88,-136 635.88,-130 635.88,-124 635.88,-124 635.88,-112 635.88,-112 635.88,-106 641.88,-100 647.88,-100 647.88,-100 708.12,-100 708.12,-100 714.12,-100 720.12,-106 720.12,-112 720.12,-112 720.12,-124 720.12,-124 720.12,-130 714.12,-136 708.12,-136"/>
|
|
171
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-114.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">localhost:11434</text>
|
|
171
172
|
</g>
|
|
172
173
|
<!-- Ollama->A5 -->
|
|
173
174
|
<g id="edge11" class="edge">
|
|
174
175
|
<title>Ollama->A5</title>
|
|
175
|
-
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M483.
|
|
176
|
-
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="
|
|
176
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M483.56,-115.12C528.85,-115.8 585.22,-116.64 625.41,-117.23"/>
|
|
177
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="625.25,-120.03 633.29,-117.35 625.33,-114.43 625.25,-120.03"/>
|
|
177
178
|
</g>
|
|
178
179
|
<!-- A6 -->
|
|
179
180
|
<g id="node13" class="node">
|
|
180
181
|
<title>A6</title>
|
|
181
|
-
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="
|
|
182
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
183
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
182
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M713,-68C713,-68 643,-68 643,-68 637,-68 631,-62 631,-56 631,-56 631,-44 631,-44 631,-38 637,-32 643,-32 643,-32 713,-32 713,-32 719,-32 725,-38 725,-44 725,-44 725,-56 725,-56 725,-62 719,-68 713,-68"/>
|
|
183
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-52.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Open WebUI host</text>
|
|
184
|
+
<text xml:space="preserve" text-anchor="middle" x="678" y="-40.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">/api/v1 + /ollama</text>
|
|
184
185
|
</g>
|
|
185
186
|
<!-- OpenWebUI->A6 -->
|
|
186
187
|
<g id="edge12" class="edge">
|
|
187
188
|
<title>OpenWebUI->A6</title>
|
|
188
|
-
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M462.
|
|
189
|
-
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="
|
|
189
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M462.66,-40.44C508.62,-42.49 574.02,-45.41 620.46,-47.48"/>
|
|
190
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="620.28,-50.27 628.4,-47.83 620.53,-44.68 620.28,-50.27"/>
|
|
190
191
|
</g>
|
|
191
192
|
<!-- Cfg -->
|
|
192
193
|
<g id="node14" class="node">
|
|
@@ -4,169 +4,169 @@
|
|
|
4
4
|
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
5
|
-->
|
|
6
6
|
<!-- Title: PWN_SAST Pages: 1 -->
|
|
7
|
-
<svg width="
|
|
8
|
-
viewBox="0.00 0.00
|
|
9
|
-
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2
|
|
7
|
+
<svg width="857pt" height="575pt"
|
|
8
|
+
viewBox="0.00 0.00 857.00 575.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 532.2)">
|
|
10
10
|
<title>PWN_SAST</title>
|
|
11
|
-
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-
|
|
12
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
13
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-532.2 814.08,-532.2 814.08,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="157.44" y="-467" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">PWN::SAST - Static Application Security Testing</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="240.69" y="-455.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">48 modules · multi-language · bin/pwn_sast · Reports::SAST</text>
|
|
14
14
|
<g id="clust1" class="cluster">
|
|
15
15
|
<title>cluster_engine</title>
|
|
16
|
-
<path fill="#022c22" stroke="#047857" d="
|
|
17
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
16
|
+
<path fill="#022c22" stroke="#047857" d="M193.62,-229C193.62,-229 306.38,-229 306.38,-229 312.38,-229 318.38,-235 318.38,-241 318.38,-241 318.38,-365 318.38,-365 318.38,-371 312.38,-377 306.38,-377 306.38,-377 193.62,-377 193.62,-377 187.62,-377 181.62,-371 181.62,-365 181.62,-365 181.62,-241 181.62,-241 181.62,-235 187.62,-229 193.62,-229"/>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="250" y="-354" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">SAST Engine</text>
|
|
18
18
|
</g>
|
|
19
19
|
<g id="clust2" class="cluster">
|
|
20
20
|
<title>cluster_rules</title>
|
|
21
|
-
<path fill="#422006" stroke="#a16207" d="
|
|
22
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
21
|
+
<path fill="#422006" stroke="#a16207" d="M400.38,-99C400.38,-99 582.12,-99 582.12,-99 588.12,-99 594.12,-105 594.12,-111 594.12,-111 594.12,-430 594.12,-430 594.12,-436 588.12,-442 582.12,-442 582.12,-442 400.38,-442 400.38,-442 394.38,-442 388.38,-436 388.38,-430 388.38,-430 388.38,-111 388.38,-111 388.38,-105 394.38,-99 400.38,-99"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="491.25" y="-419" font-family="sans-Serif" font-size="20.00" fill="#fde68a">Selected rule families</text>
|
|
23
23
|
</g>
|
|
24
24
|
<g id="clust3" class="cluster">
|
|
25
25
|
<title>cluster_out</title>
|
|
26
|
-
<path fill="#2e1065" stroke="#6d28d9" d="
|
|
27
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
26
|
+
<path fill="#2e1065" stroke="#6d28d9" d="M20,-8C20,-8 750.88,-8 750.88,-8 756.88,-8 762.88,-14 762.88,-20 762.88,-20 762.88,-79 762.88,-79 762.88,-85 756.88,-91 750.88,-91 750.88,-91 20,-91 20,-91 14,-91 8,-85 8,-79 8,-79 8,-20 8,-20 8,-14 14,-8 20,-8"/>
|
|
27
|
+
<text xml:space="preserve" text-anchor="middle" x="385.44" y="-68" font-family="sans-Serif" font-size="20.00" fill="#ddd6fe">Output</text>
|
|
28
28
|
</g>
|
|
29
29
|
<!-- Src -->
|
|
30
30
|
<g id="node1" class="node">
|
|
31
31
|
<title>Src</title>
|
|
32
|
-
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="
|
|
33
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
34
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
32
|
+
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M91.62,-305C91.62,-305 27.62,-305 27.62,-305 21.62,-305 15.62,-299 15.62,-293 15.62,-293 15.62,-281 15.62,-281 15.62,-275 21.62,-269 27.62,-269 27.62,-269 91.62,-269 91.62,-269 97.62,-269 103.62,-275 103.62,-281 103.62,-281 103.62,-293 103.62,-293 103.62,-299 97.62,-305 91.62,-305"/>
|
|
33
|
+
<text xml:space="preserve" text-anchor="middle" x="59.62" y="-289.88" font-family="sans-Serif" font-size="10.00" fill="#0f172a">📁  Source Tree</text>
|
|
34
|
+
<text xml:space="preserve" text-anchor="middle" x="59.62" y="-277.12" font-family="sans-Serif" font-size="10.00" fill="#0f172a">git clone / repo</text>
|
|
35
35
|
</g>
|
|
36
36
|
<!-- Factory -->
|
|
37
37
|
<g id="node2" class="node">
|
|
38
38
|
<title>Factory</title>
|
|
39
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="
|
|
40
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
41
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
39
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M283,-273C283,-273 216,-273 216,-273 210,-273 204,-267 204,-261 204,-261 204,-249 204,-249 204,-243 210,-237 216,-237 216,-237 283,-237 283,-237 289,-237 295,-243 295,-249 295,-249 295,-261 295,-261 295,-267 289,-273 283,-273"/>
|
|
40
|
+
<text xml:space="preserve" text-anchor="middle" x="249.5" y="-257.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn_sast</text>
|
|
41
|
+
<text xml:space="preserve" text-anchor="middle" x="249.5" y="-245.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">rule orchestration</text>
|
|
42
42
|
</g>
|
|
43
43
|
<!-- Src->Factory -->
|
|
44
44
|
<g id="edge1" class="edge">
|
|
45
45
|
<title>Src->Factory</title>
|
|
46
|
-
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="
|
|
47
|
-
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="
|
|
46
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M104.2,-279.58C130.87,-275.04 165.22,-269.19 193.72,-264.33"/>
|
|
47
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="194.17,-267.09 201.59,-262.99 193.23,-261.57 194.17,-267.09"/>
|
|
48
48
|
</g>
|
|
49
49
|
<!-- TCE -->
|
|
50
50
|
<g id="node3" class="node">
|
|
51
51
|
<title>TCE</title>
|
|
52
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="
|
|
53
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
54
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
52
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M281.5,-338C281.5,-338 217.5,-338 217.5,-338 211.5,-338 205.5,-332 205.5,-326 205.5,-326 205.5,-314 205.5,-314 205.5,-308 211.5,-302 217.5,-302 217.5,-302 281.5,-302 281.5,-302 287.5,-302 293.5,-308 293.5,-314 293.5,-314 293.5,-326 293.5,-326 293.5,-332 287.5,-338 281.5,-338"/>
|
|
53
|
+
<text xml:space="preserve" text-anchor="middle" x="249.5" y="-322.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">TestCaseEngine</text>
|
|
54
|
+
<text xml:space="preserve" text-anchor="middle" x="249.5" y="-310.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">execute filters</text>
|
|
55
55
|
</g>
|
|
56
56
|
<!-- Src->TCE -->
|
|
57
57
|
<g id="edge2" class="edge">
|
|
58
58
|
<title>Src->TCE</title>
|
|
59
|
-
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="
|
|
60
|
-
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="
|
|
59
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M104.2,-294.65C131.47,-299.44 166.78,-305.65 195.64,-310.72"/>
|
|
60
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="194.86,-313.42 203.22,-312.05 195.83,-307.91 194.86,-313.42"/>
|
|
61
61
|
</g>
|
|
62
62
|
<!-- Cmd -->
|
|
63
63
|
<g id="node4" class="node">
|
|
64
64
|
<title>Cmd</title>
|
|
65
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
66
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
67
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
65
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M545.25,-143C545.25,-143 436.25,-143 436.25,-143 430.25,-143 424.25,-137 424.25,-131 424.25,-131 424.25,-119 424.25,-119 424.25,-113 430.25,-107 436.25,-107 436.25,-107 545.25,-107 545.25,-107 551.25,-107 557.25,-113 557.25,-119 557.25,-119 557.25,-131 557.25,-131 557.25,-137 551.25,-143 545.25,-143"/>
|
|
66
|
+
<text xml:space="preserve" text-anchor="middle" x="490.75" y="-127.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">cmd_execution_*</text>
|
|
67
|
+
<text xml:space="preserve" text-anchor="middle" x="490.75" y="-115.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">java · py · ruby · go · scala</text>
|
|
68
68
|
</g>
|
|
69
69
|
<!-- Factory->Cmd -->
|
|
70
70
|
<g id="edge3" class="edge">
|
|
71
71
|
<title>Factory->Cmd</title>
|
|
72
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="
|
|
73
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="
|
|
72
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M295.29,-242.24C303.12,-239.51 311.08,-236.41 318.38,-233 369.17,-209.22 423.19,-173.15 456.7,-149.34"/>
|
|
73
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="458.29,-151.64 463.16,-144.71 455.03,-147.09 458.29,-151.64"/>
|
|
74
74
|
</g>
|
|
75
75
|
<!-- Web -->
|
|
76
76
|
<g id="node5" class="node">
|
|
77
77
|
<title>Web</title>
|
|
78
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
79
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
80
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
78
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M556.12,-208C556.12,-208 425.38,-208 425.38,-208 419.38,-208 413.38,-202 413.38,-196 413.38,-196 413.38,-184 413.38,-184 413.38,-178 419.38,-172 425.38,-172 425.38,-172 556.12,-172 556.12,-172 562.12,-172 568.12,-178 568.12,-184 568.12,-184 568.12,-196 568.12,-196 568.12,-202 562.12,-208 556.12,-208"/>
|
|
79
|
+
<text xml:space="preserve" text-anchor="middle" x="490.75" y="-192.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">csrf · redirect · redos</text>
|
|
80
|
+
<text xml:space="preserve" text-anchor="middle" x="490.75" y="-180.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">inner/outer_html · location_hash</text>
|
|
81
81
|
</g>
|
|
82
82
|
<!-- Factory->Web -->
|
|
83
83
|
<g id="edge4" class="edge">
|
|
84
84
|
<title>Factory->Web</title>
|
|
85
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="
|
|
86
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="
|
|
85
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M295.5,-242.77C328.33,-233.85 373.65,-221.54 412.26,-211.05"/>
|
|
86
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="412.52,-213.88 419.51,-209.08 411.05,-208.48 412.52,-213.88"/>
|
|
87
87
|
</g>
|
|
88
88
|
<!-- Cryp -->
|
|
89
89
|
<g id="node6" class="node">
|
|
90
90
|
<title>Cryp</title>
|
|
91
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
92
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
93
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
91
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M549,-273C549,-273 432.5,-273 432.5,-273 426.5,-273 420.5,-267 420.5,-261 420.5,-261 420.5,-249 420.5,-249 420.5,-243 426.5,-237 432.5,-237 432.5,-237 549,-237 549,-237 555,-237 561,-243 561,-249 561,-249 561,-261 561,-261 561,-267 555,-273 549,-273"/>
|
|
92
|
+
<text xml:space="preserve" text-anchor="middle" x="490.75" y="-257.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">md5 · ssl · keystore</text>
|
|
93
|
+
<text xml:space="preserve" text-anchor="middle" x="490.75" y="-245.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">padding_oracle · private_key</text>
|
|
94
94
|
</g>
|
|
95
95
|
<!-- Factory->Cryp -->
|
|
96
96
|
<g id="edge5" class="edge">
|
|
97
97
|
<title>Factory->Cryp</title>
|
|
98
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="
|
|
99
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="
|
|
98
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M295.5,-255C327.82,-255 372.24,-255 410.45,-255"/>
|
|
99
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="410.05,-257.8 418.05,-255 410.05,-252.2 410.05,-257.8"/>
|
|
100
100
|
</g>
|
|
101
101
|
<!-- Data -->
|
|
102
102
|
<g id="node7" class="node">
|
|
103
103
|
<title>Data</title>
|
|
104
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
105
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
106
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
104
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M540.38,-338C540.38,-338 441.12,-338 441.12,-338 435.12,-338 429.12,-332 429.12,-326 429.12,-326 429.12,-314 429.12,-314 429.12,-308 435.12,-302 441.12,-302 441.12,-302 540.38,-302 540.38,-302 546.38,-302 552.38,-308 552.38,-314 552.38,-314 552.38,-326 552.38,-326 552.38,-332 546.38,-338 540.38,-338"/>
|
|
105
|
+
<text xml:space="preserve" text-anchor="middle" x="490.75" y="-322.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">sql · eval · deserial_java</text>
|
|
106
|
+
<text xml:space="preserve" text-anchor="middle" x="490.75" y="-310.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">log4j · php_type_juggling</text>
|
|
107
107
|
</g>
|
|
108
|
-
<!--
|
|
108
|
+
<!-- Factory->Data -->
|
|
109
109
|
<g id="edge6" class="edge">
|
|
110
|
-
<title>
|
|
111
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="
|
|
112
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="
|
|
110
|
+
<title>Factory->Data</title>
|
|
111
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M295.54,-270.15C322.34,-278.89 357.1,-289.75 388.38,-298 398.31,-300.62 408.85,-303.17 419.23,-305.54"/>
|
|
112
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="418.36,-308.21 426.78,-307.24 419.59,-302.75 418.36,-308.21"/>
|
|
113
113
|
</g>
|
|
114
114
|
<!-- Mem -->
|
|
115
115
|
<g id="node8" class="node">
|
|
116
116
|
<title>Mem</title>
|
|
117
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
118
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
119
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
117
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M520.5,-403C520.5,-403 461,-403 461,-403 455,-403 449,-397 449,-391 449,-391 449,-379 449,-379 449,-373 455,-367 461,-367 461,-367 520.5,-367 520.5,-367 526.5,-367 532.5,-373 532.5,-379 532.5,-379 532.5,-391 532.5,-391 532.5,-397 526.5,-403 520.5,-403"/>
|
|
118
|
+
<text xml:space="preserve" text-anchor="middle" x="490.75" y="-387.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">banned_c_calls</text>
|
|
119
|
+
<text xml:space="preserve" text-anchor="middle" x="490.75" y="-375.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">use_after_free</text>
|
|
120
120
|
</g>
|
|
121
|
-
<!--
|
|
121
|
+
<!-- Factory->Mem -->
|
|
122
122
|
<g id="edge7" class="edge">
|
|
123
|
-
<title>
|
|
124
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="
|
|
125
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="
|
|
123
|
+
<title>Factory->Mem</title>
|
|
124
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M268.29,-273.38C292.93,-297.73 339.94,-340.25 388.38,-363 404.05,-370.36 422.24,-375.29 438.86,-378.59"/>
|
|
125
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="438.12,-381.3 446.49,-379.99 439.13,-375.79 438.12,-381.3"/>
|
|
126
126
|
</g>
|
|
127
127
|
<!-- Report -->
|
|
128
128
|
<g id="node9" class="node">
|
|
129
129
|
<title>Report</title>
|
|
130
|
-
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="
|
|
131
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
132
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
130
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M742.88,-52C742.88,-52 684.12,-52 684.12,-52 678.12,-52 672.12,-46 672.12,-40 672.12,-40 672.12,-28 672.12,-28 672.12,-22 678.12,-16 684.12,-16 684.12,-16 742.88,-16 742.88,-16 748.88,-16 754.88,-22 754.88,-28 754.88,-28 754.88,-40 754.88,-40 754.88,-46 748.88,-52 742.88,-52"/>
|
|
131
|
+
<text xml:space="preserve" text-anchor="middle" x="713.5" y="-36.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Reports::SAST</text>
|
|
132
|
+
<text xml:space="preserve" text-anchor="middle" x="713.5" y="-24.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">HTML + JSON</text>
|
|
133
133
|
</g>
|
|
134
134
|
<!-- Cmd->Report -->
|
|
135
135
|
<g id="edge8" class="edge">
|
|
136
136
|
<title>Cmd->Report</title>
|
|
137
|
-
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="
|
|
138
|
-
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="
|
|
137
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M557.64,-114.06C569.97,-111.11 582.6,-107.47 594.12,-103 624.15,-91.36 655.52,-72.74 678.42,-57.77"/>
|
|
138
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="679.7,-60.28 684.82,-53.53 676.6,-55.62 679.7,-60.28"/>
|
|
139
139
|
</g>
|
|
140
140
|
<!-- Web->Report -->
|
|
141
141
|
<g id="edge9" class="edge">
|
|
142
142
|
<title>Web->Report</title>
|
|
143
|
-
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="
|
|
144
|
-
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="
|
|
143
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M568.7,-179.11C577.59,-176.23 586.28,-172.59 594.12,-168 639.43,-141.49 676.53,-91.53 696.5,-60.67"/>
|
|
144
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="698.7,-62.43 700.62,-54.17 693.97,-59.43 698.7,-62.43"/>
|
|
145
145
|
</g>
|
|
146
146
|
<!-- Cryp->Report -->
|
|
147
147
|
<g id="edge10" class="edge">
|
|
148
148
|
<title>Cryp->Report</title>
|
|
149
|
-
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="
|
|
150
|
-
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="
|
|
149
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M561.65,-248.05C573.2,-244.71 584.53,-239.89 594.12,-233 654.25,-189.81 689.13,-105.78 703.97,-62.02"/>
|
|
150
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="706.62,-62.91 706.46,-54.43 701.3,-61.16 706.62,-62.91"/>
|
|
151
151
|
</g>
|
|
152
|
-
<!--
|
|
153
|
-
<g id="node10" class="node">
|
|
154
|
-
<title>DD</title>
|
|
155
|
-
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M704,-247C704,-247 640.75,-247 640.75,-247 634.75,-247 628.75,-241 628.75,-235 628.75,-235 628.75,-223 628.75,-223 628.75,-217 634.75,-211 640.75,-211 640.75,-211 704,-211 704,-211 710,-211 716,-217 716,-223 716,-223 716,-235 716,-235 716,-241 710,-247 704,-247"/>
|
|
156
|
-
<text xml:space="preserve" text-anchor="middle" x="672.38" y="-231.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">DefectDojo</text>
|
|
157
|
-
<text xml:space="preserve" text-anchor="middle" x="672.38" y="-219.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">import / reimport</text>
|
|
158
|
-
</g>
|
|
159
|
-
<!-- Data->DD -->
|
|
152
|
+
<!-- Data->Report -->
|
|
160
153
|
<g id="edge11" class="edge">
|
|
161
|
-
<title>Data->
|
|
162
|
-
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="
|
|
163
|
-
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="
|
|
154
|
+
<title>Data->Report</title>
|
|
155
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M553.02,-316.38C567.69,-313.08 582.47,-307.44 594.12,-298 669.87,-236.69 698.79,-116.7 708.36,-62.17"/>
|
|
156
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="711.1,-62.77 709.65,-54.42 705.58,-61.85 711.1,-62.77"/>
|
|
164
157
|
</g>
|
|
165
|
-
<!-- Mem->
|
|
158
|
+
<!-- Mem->Report -->
|
|
166
159
|
<g id="edge12" class="edge">
|
|
167
|
-
<title>Mem->
|
|
168
|
-
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="
|
|
169
|
-
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="
|
|
160
|
+
<title>Mem->Report</title>
|
|
161
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M533.06,-385.2C553.59,-383.23 577.5,-377.54 594.12,-363 685.89,-282.75 706.53,-125.95 711.16,-62.08"/>
|
|
162
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="713.94,-62.44 711.67,-54.27 708.36,-62.07 713.94,-62.44"/>
|
|
163
|
+
</g>
|
|
164
|
+
<!-- DD -->
|
|
165
|
+
<g id="node10" class="node">
|
|
166
|
+
<title>DD</title>
|
|
167
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M91.25,-52C91.25,-52 28,-52 28,-52 22,-52 16,-46 16,-40 16,-40 16,-28 16,-28 16,-22 22,-16 28,-16 28,-16 91.25,-16 91.25,-16 97.25,-16 103.25,-22 103.25,-28 103.25,-28 103.25,-40 103.25,-40 103.25,-46 97.25,-52 91.25,-52"/>
|
|
168
|
+
<text xml:space="preserve" text-anchor="middle" x="59.62" y="-36.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">DefectDojo</text>
|
|
169
|
+
<text xml:space="preserve" text-anchor="middle" x="59.62" y="-24.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">import / reimport</text>
|
|
170
170
|
</g>
|
|
171
171
|
</g>
|
|
172
172
|
</svg>
|