Files
2026-07-04 17:07:24 -04:00

63 lines
3.1 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"/>
<rect class="hdr" x="0" y="0" width="1200" height="100" rx="0"/>
<text class="title" x="600" y="52" text-anchor="middle">Hacking the Binary</text>
<text class="dim" x="600" y="88" text-anchor="middle">Patching LCD Text: "Reverse" --> "Exploit"</text>
<!-- Offset calculation -->
<rect class="pnl" x="30" y="110" width="1140" height="100" rx="8"/>
<text class="sub" x="50" y="145">File Offset Formula</text>
<text class="grn" x="50" y="180">file_offset = address - 0x10000000</text>
<text class="dim" x="620" y="180">Binary loaded at 0x10000000</text>
<!-- Hack 1: String patch -->
<rect class="pnl" x="30" y="225" width="1140" height="280" rx="8"/>
<text class="sub" x="50" y="260">Hack: Change LCD String</text>
<text class="dim" x="50" y="290">Address 0x10003EE8 --> File offset 0x3EE8</text>
<text class="txt" x="50" y="325">Original:</text>
<rect x="210" y="335" width="400" height="42" rx="4" fill="#0a0a0f" stroke="#ff0040" stroke-width="1"/>
<text class="red" x="230" y="362">52 65 76 65 72 73 65 00</text>
<text class="dim" x="630" y="362">"Reverse"</text>
<text class="txt" x="50" y="400">Patched:</text>
<rect x="210" y="410" width="400" height="42" rx="4" fill="#0a0a0f" stroke="#00ff41" stroke-width="1"/>
<text class="grn" x="230" y="437">45 78 70 6C 6F 69 74 00</text>
<text class="dim" x="630" y="437">"Exploit"</text>
<text class="dim" x="50" y="480">Same length (7 chars) -- null terminator stays</text>
<!-- Flash Steps -->
<rect class="pnl" x="30" y="530" width="1140" height="155" rx="8"/>
<text class="sub" x="50" y="562">Flash the Hacked Binary</text>
<rect x="50" y="575" width="1100" height="40" rx="4" fill="#0a0a0f" stroke="#1a1a2e"/>
<text class="cyn" x="70" y="601">python uf2conv.py build\patched.bin</text>
<text class="txt" x="70" y="635">1.</text>
<text class="dim" x="100" y="635">Save patched .bin file</text>
<text class="txt" x="70" y="660">2.</text>
<text class="dim" x="100" y="660">Convert to .uf2 format</text>
<text class="txt" x="530" y="635">3.</text>
<text class="dim" x="560" y="635">Hold BOOTSEL, plug in Pico</text>
<text class="txt" x="530" y="660">4.</text>
<text class="dim" x="560" y="660">Drag hacked.uf2 to drive</text>
<!-- Result -->
<rect class="pnl" x="30" y="700" width="1140" height="70" rx="8"/>
<text class="grn" x="50" y="738">LCD now shows: "Exploit"</text>
<text class="dim" x="460" y="738">instead of "Reverse"</text>
<text class="red" x="750" y="738">No source code needed!</text>
</svg>