
Détection et restauration des captures PNG de Windows Snipping Tool vulnérables à CVE-2023-28303
Détection et restauration des captures PNG de l'Outil Capture Windows vulnérables à CVE-2023-28303
SnipRecover CLI est un utilitaire en ligne de commande minimaliste, sans dépendances, conçu pour :
IEND.Par défaut, les images restaurées utilisent RGBA et une résolution de 1920×1080, et si aucun chemin de sortie n'est spécifié, l'outil écrit dans restored-<original_name>.png.
Selon la spécification PNG (ISO/IEC 15948), toutes les données d'image (segments IDAT) doivent apparaître avant le segment final IEND. L'Outil Capture Windows ajoute par erreur des données IDAT supplémentaires après IEND, violant ainsi la norme et exposant le contenu complet de l'image qui a été « recadré ».
Structure PNG standard :
89 50 4E 47 0D 0A 1A 0AIHDR : en‑tête d'image (largeur, hauteur, type de couleur, etc.)IDAT : données de pixels compresséesIEND : marqueur de fin de fichierUn PNG recadré par l'Outil Capture contient des octets supplémentaires au‑delà de IEND. SnipRecover CLI détecte cette anomalie et reconstruit le flux de compression pour récupérer l'image originale.
Prérequis :
Étapes :
git clone https://github.com/m31r0n/SnipRecover-CLI.git
cd SnipRecover-CLI
chmod +x sniprecover
Aucune bibliothèque externe n'est nécessaire – seuls les modules standards struct, zlib et io de Python.
# Afficher l'aide
python3 sniprecover --help
# 1. Détecter le(s) PNG vulnérable(s)
python3 sniprecover detect /chemin/vers/images/
# 2. Restaurer une capture recadrée
python3 sniprecover restore capture.png --output restored-capture.png
Remarque : Si vous omettez
--width,--heightou--alpha, les valeurs par défaut 1920×1080 et RGBA sont appliquées. Si vous omettez--output, les images restaurées sont enregistrées sousrestored-<original_name>.png.
SnipRecover-CLI/
├── sniprecover # Main CLI executable (make sure it's executable)
└── README.md # Documentation and theory
MIT © 2025 – Développé par m31r0n
| Option | Description | Défaut |
|---|
--width <int> | Largeur de l'image originale | 1920 |
--height <int> | Hauteur de l'image originale | 1080 |
--alpha | Inclure le canal alpha (RGBA) | activé |
--output <file> | Chemin pour enregistrer le PNG restauré | restored-<original_name>.png |