Malware Unpacking
forensicsDéfinition
Le dépaquetage de malware (Malware Unpacking) est le processus consistant à extraire le code original d'un malware qui a été compressé, chiffré, ou obfusqué par un packer. C'est une étape préalable indispensable à l'analyse statique approfondie d'un malware packagé, car le code réel n'est visible qu'après décompression en mémoire. Le processus d'unpacking manuel dans un débogueur suit généralement cette séquence : charger le malware dans x64dbg ou OllyDbg, identifier le code de décompression du packer (stub), exécuter jusqu'au point où le code original est décompressé en mémoire, localiser l'OEP (Original Entry Point — le premier octets du code original), et dumper la mémoire du processus à ce stade pour obtenir l'exécutable décompressé. L'outil Scylla (pour x64dbg) ou OllyDump (pour OllyDbg) automatisent la dernière étape. Les techniques pour trouver l'OEP varient selon le packer. Pour UPX, l'OEP est généralement la première instruction après le saut 'JMP vers le code original' à la fin du stub. La technique du 'ESP trick' consiste à mettre un breakpoint sur l'accès mémoire à la valeur initiale de ESP après le PUSHAD/POPAD du stub — l'OEP est généralement atteint peu après le POPAD final. D'autres approches incluent l'analyse des CALL API (le premier appel à une API Windows légitime dans le code original est souvent proche de l'OEP). L'unpacking automatisé est de plus en plus disponible grâce aux services en ligne (unpacme.com, malshare.com) et aux outils locaux (Qiling framework pour l'émulation, unpacme Python bindings). Pour les packers courants (UPX, MPRESS, PECompact), ces outils réussissent l'unpacking sans intervention manuelle. Pour les packers custom ou les protections anti-debug, l'unpacking manuel reste nécessaire. Post-unpacking, le binaire extrait doit avoir son IAT reconstruite (les tables d'imports peuvent être corrompues par le processus d'extraction) avec des outils comme Scylla (reconstruction automatique de l'IAT en live) ou ImportREC.
Fonctionnement
Le packer exécute un stub de décompression qui : 1) Alloue de la mémoire (VirtualAlloc), 2) Décompresse/déchiffre le payload original dans cette mémoire, 3) Corrige les relocations, 4) Saute vers l'OEP. L'unpacking consiste à intercepter l'exécution à l'étape 4 et à dumper la mémoire. L'ESP trick (breakpoint sur écriture à l'adresse initiale de ESP) fonctionne pour la plupart des packers simples.
Application DFIR
Workflow unpacking : 1) Identifier le packer (DIE/PEiD), 2) Essayer l'unpacking automatique (unpacme.com, UPX -d), 3) Si échec : unpacking manuel dans x64dbg (ESP trick, stepover le stub, localiser le JMP à l'OEP), 4) Dump avec Scylla (IAT reconstruction), 5) Fix IAT, 6) Analyser le binaire unpacked statiquement (Ghidra/IDA). Utiliser des snapshots VM pour revenir à l'état initial.
Outils
Débogueurs : x64dbg + Scylla plugin, OllyDbg + OllyDump, WinDbg. Automatisé : unpacme.com, Qiling (émulation Python), PE-sieve --dump. Reconstruction IAT : Scylla (x64dbg plugin), ImportREC, Qiling + pefile. Identification packer : Detect-It-Easy, PEiD, ExeinfoPE. Environnement : FlareVM (tous ces outils préinstallés).
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h