mirror of
https://github.com/mytechnotalent/Embedded-Hacking.git
synced 2026-07-17 09:27:30 +02:00
119 lines
5.5 KiB
XML
119 lines
5.5 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800">
|
|
<style>
|
|
.bg{fill:#0a0a0f}.pnl{fill:#12121a;stroke:#1a1a2e}.hdr{fill:#12121a}
|
|
.title{font:bold 42px 'Courier New',monospace;fill:#00ff41}
|
|
.sub{font:bold 28px 'Courier New',monospace;fill:#00d4ff}
|
|
.txt{font:24px 'Courier New',monospace;fill:#c0c0c0}
|
|
.dim{font:20px 'Courier New',monospace;fill:#888}
|
|
.grn{font:bold 24px 'Courier New',monospace;fill:#00ff41}
|
|
.red{font:bold 24px 'Courier New',monospace;fill:#ff0040}
|
|
.cyn{font:bold 24px 'Courier New',monospace;fill:#00d4ff}
|
|
.amb{font:bold 24px 'Courier New',monospace;fill:#ffaa00}
|
|
.badge{stroke:#00ff41;rx:14}
|
|
</style>
|
|
<rect class="bg" width="1200" height="800"/>
|
|
|
|
<!-- Title -->
|
|
<text x="600" y="52" text-anchor="middle" class="title">Full Patching Pipeline</text>
|
|
<text x="600" y="88" text-anchor="middle" class="dim">End-to-End Binary Hacking Workflow</text>
|
|
|
|
<!-- Step 1 -->
|
|
<rect x="40" y="115" width="365" height="160" rx="8" class="pnl"/>
|
|
<rect x="55" y="130" width="40" height="40" rx="20" fill="#0a0a0f" stroke="#00ff41" stroke-width="2"/>
|
|
<text x="75" y="158" text-anchor="middle" class="grn">1</text>
|
|
<text x="110" y="158" class="sub">Import .bin</text>
|
|
<text x="55" y="195" class="txt">Ghidra: Import</text>
|
|
<text x="55" y="225" class="cyn">ARM Cortex 32 LE</text>
|
|
<text x="55" y="252" class="dim">Base: 0x10000000</text>
|
|
|
|
<!-- Arrow 1-2 -->
|
|
<line x1="405" y1="195" x2="425" y2="195" stroke="#00ff41" stroke-width="2"/>
|
|
|
|
<!-- Step 2 -->
|
|
<rect x="425" y="115" width="345" height="160" rx="8" class="pnl"/>
|
|
<rect x="440" y="130" width="40" height="40" rx="20" fill="#0a0a0f" stroke="#00d4ff" stroke-width="2"/>
|
|
<text x="460" y="158" text-anchor="middle" class="cyn">2</text>
|
|
<text x="495" y="158" class="sub">Analyze</text>
|
|
<text x="440" y="195" class="txt">Auto-analyze</text>
|
|
<text x="440" y="225" class="txt">Rename functions</text>
|
|
<text x="440" y="252" class="dim">Fix signatures</text>
|
|
|
|
<!-- Arrow 2-3 -->
|
|
<line x1="770" y1="195" x2="790" y2="195" stroke="#00ff41" stroke-width="2"/>
|
|
|
|
<!-- Step 3 -->
|
|
<rect x="790" y="115" width="370" height="160" rx="8" class="pnl"/>
|
|
<rect x="805" y="130" width="40" height="40" rx="20" fill="#0a0a0f" stroke="#ffaa00" stroke-width="2"/>
|
|
<text x="825" y="158" text-anchor="middle" class="amb">3</text>
|
|
<text x="860" y="158" class="sub">Find Target</text>
|
|
<text x="805" y="195" class="txt">Listing window</text>
|
|
<text x="805" y="225" class="txt">Find movs rN,#val</text>
|
|
<text x="805" y="252" class="dim">Identify bytes to change</text>
|
|
|
|
<!-- Step 4 -->
|
|
<rect x="40" y="295" width="365" height="160" rx="8" class="pnl"/>
|
|
<rect x="55" y="310" width="40" height="40" rx="20" fill="#0a0a0f" stroke="#ff0040" stroke-width="2"/>
|
|
<text x="75" y="338" text-anchor="middle" class="red">4</text>
|
|
<text x="110" y="338" class="sub">Patch</text>
|
|
<text x="55" y="375" class="txt">Right-click:</text>
|
|
<text x="55" y="405" class="txt">Patch Instruction</text>
|
|
<text x="55" y="432" class="dim">Change operand value</text>
|
|
|
|
<!-- Arrow 4-5 -->
|
|
<line x1="405" y1="375" x2="425" y2="375" stroke="#00ff41" stroke-width="2"/>
|
|
|
|
<!-- Step 5 -->
|
|
<rect x="425" y="295" width="345" height="160" rx="8" class="pnl"/>
|
|
<rect x="440" y="310" width="40" height="40" rx="20" fill="#0a0a0f" stroke="#00ff41" stroke-width="2"/>
|
|
<text x="460" y="338" text-anchor="middle" class="grn">5</text>
|
|
<text x="495" y="338" class="sub">Export</text>
|
|
<text x="440" y="375" class="txt">File: Export</text>
|
|
<text x="440" y="405" class="amb">Format: Raw Bytes</text>
|
|
<text x="440" y="432" class="dim">Save as *-h.bin</text>
|
|
|
|
<!-- Arrow 5-6 -->
|
|
<line x1="770" y1="375" x2="790" y2="375" stroke="#00ff41" stroke-width="2"/>
|
|
|
|
<!-- Step 6 -->
|
|
<rect x="790" y="295" width="370" height="160" rx="8" class="pnl"/>
|
|
<rect x="805" y="310" width="40" height="40" rx="20" fill="#0a0a0f" stroke="#00d4ff" stroke-width="2"/>
|
|
<text x="825" y="338" text-anchor="middle" class="cyn">6</text>
|
|
<text x="860" y="338" class="sub">Convert UF2</text>
|
|
<text x="805" y="375" class="txt">uf2conv.py</text>
|
|
<text x="805" y="405" class="amb">--family 0xe48bff59</text>
|
|
<text x="805" y="432" class="dim">RP2350 family ID</text>
|
|
|
|
<!-- UF2 Command -->
|
|
<rect x="40" y="475" width="1120" height="90" rx="8" class="pnl"/>
|
|
<text x="60" y="505" class="sub">UF2 Command</text>
|
|
<rect x="60" y="518" width="1080" height="35" rx="4" fill="#0a0a0f" stroke="#00ff41" stroke-width="1"/>
|
|
<text x="80" y="542" class="grn">python uf2conv.py file.bin --base 0x10000000 -o hacked.uf2</text>
|
|
|
|
<!-- Flash & Verify -->
|
|
<rect x="40" y="585" width="540" height="195" rx="8" class="pnl"/>
|
|
<text x="310" y="623" text-anchor="middle" class="sub">Flash to Pico 2</text>
|
|
<text x="60" y="658" class="txt">1. Hold BOOTSEL + USB</text>
|
|
<text x="60" y="688" class="txt">2. Drop hacked.uf2</text>
|
|
<text x="60" y="718" class="txt">3. Pico reboots hacked</text>
|
|
<text x="60" y="748" class="dim">RPI-RP2 drive in BOOTSEL</text>
|
|
|
|
<!-- Key Memory Sections -->
|
|
<rect x="620" y="585" width="540" height="195" rx="8" class="pnl"/>
|
|
<text x="890" y="623" text-anchor="middle" class="sub">Key Sections</text>
|
|
|
|
<text x="640" y="658" class="grn">.text</text>
|
|
<text x="800" y="658" class="txt">Flash</text>
|
|
<text x="940" y="658" class="dim">Code</text>
|
|
|
|
<text x="640" y="688" class="cyn">.rodata</text>
|
|
<text x="800" y="688" class="txt">Flash</text>
|
|
<text x="940" y="688" class="dim">Constants</text>
|
|
|
|
<text x="640" y="718" class="amb">.data</text>
|
|
<text x="800" y="718" class="txt">RAM</text>
|
|
<text x="940" y="718" class="dim">Init globals</text>
|
|
|
|
<text x="640" y="748" class="red">.bss</text>
|
|
<text x="800" y="748" class="txt">RAM</text>
|
|
<text x="940" y="748" class="dim">Zeroed globals</text>
|
|
</svg> |