
Erkennung und Wiederherstellung von Windows Snipping Tool PNG-Aufnahmen, die anfällig für CVE-2023-28303 sind
Erkennung und Wiederherstellung von PNG-Aufnahmen der Windows Snipping Tool, die für CVE-2023-28303 anfällig sind
SnipRecover CLI ist ein minimales, abhängigkeitsfreies Kommandozeilen-Tool, das dazu dient:
PNG-Dateien zu erkennen, die durch die Windows Snipping Tool-Sicherheitslücke (CVE‑2023‑28303) verändert wurden.
Das ursprüngliche Bild wiederherzustellen, indem komprimierte Daten, die nach dem IEND-Chunk angehängt wurden, zurückgewonnen werden.
Standardmäßig verwenden wiederhergestellte Bilder RGBA und eine Auflösung von 1920×1080. Wenn kein Ausgabepfad angegeben ist, schreibt das Tool in restored-<original_name>.png.
Gemäß der PNG-Spezifikation (ISO/IEC 15948) müssen alle Bilddaten (IDAT-Chunks) vor dem abschließenden IEND-Chunk erscheinen. Das Windows Snipping Tool hängt fälschlicherweise zusätzliche IDAT-Daten an, was gegen den Standard verstößt und den vollständigen Bildinhalt offenlegt, der „beschnitten“ wurde.
IENDStandard-PNG-Struktur:
Signatur (8 Bytes): 89 50 4E 47 0D 0A 1A 0A
Chunks:
IHDR: Bildkopf (Breite, Höhe, Farbtyp usw.)
IDAT: komprimierte Pixeldaten
IEND: Dateiende-Marker
Ein mit dem Snipping Tool beschnittenes PNG enthält zusätzliche Bytes jenseits von IEND. SnipRecover CLI erkennt diese Anomalie und rekonstruiert den Kompressionsstrom, um das ursprüngliche Bild wiederherzustellen.
Voraussetzungen:
Schritte:
git clone https://github.com/m31r0n/SnipRecover-CLI.git
cd SnipRecover-CLI
chmod +x sniprecover
Es werden keine externen Bibliotheken benötigt – nur die Python-Standardmodule _struct_, _zlib_ und _io_.
# Hilfe anzeigen
python3 sniprecover --help
# 1. Anfällige PNG(s) erkennen
python3 sniprecover detect /path/to/images/
# 2. Eine beschnittene Aufnahme wiederherstellen
python3 sniprecover restore capture.png --output restored-capture.png
Hinweis: Wenn Sie
--width,--heightoder--alphaweglassen, werden die Standardwerte 1920×1080 und RGBA angewendet. Wenn Sie--outputweglassen, werden wiederhergestellte Bilder alsrestored-<original_name>.pnggespeichert.
| Option | Beschreibung | Standard |
|---|---|---|
--width <int> | Ursprüngliche Bildbreite | 1920 |
--height <int> | Ursprüngliche Bildhöhe | 1080 |
--alpha | Alphakanal einbeziehen (RGBA) | aktiviert |
--output <file> | Pfad zum Speichern des wiederhergestellten PNG | restored-<original_name>.png |
SnipRecover-CLI/
├── sniprecover # Haupt-CLI ausführbare Datei (stellen Sie sicher, dass sie ausführbar ist)
└── README.md # Dokumentation und Theorie
CVE‑2023‑28303: Windows Snipping Tool-Sicherheitslücke – Microsoft Security Response Center
PNG Specification (ISO/IEC 15948) – W3C
MIT © 2025 – Entwickelt von m31r0n