0Pricing
Ethical Hacking Academy · Leçon

Dépaquetage

Contourner l’obfuscation

Dépaquetage est une leçon Ethical Hacking Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ethical Hacking Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ethical Hacking Academy comprend 4 leçons au total.

Qu'est-ce que l'empaquetage ?

L'empaquetage compresse ou chiffre le véritable code d'un programme et l'enveloppe dans un petit fragment d'amorçage. Lors de l'exécution, ce fragment désempaquette le code original en mémoire et l'exécute.

Les auteurs de logiciels malveillants utilisent l'empaquetage pour contourner les signatures et compliquer l'analyse statique.

Pourquoi désempaqueter ?

Un binaire empaqueté contient peu de chaînes, peu d'importations et présente une entropie élevée. Le code pertinent reste caché jusqu'à l'exécution du fragment d'amorçage.

Le dés-empaquetage récupère le code original afin que vous puissiez l'analyser statiquement et extraire les véritables indicateurs de compromission.

Détecter un empaqueteur

Des outils comme Detect It Easy (DIE) et PEiD identifient les empaqueteurs connus grâce à leur signature. Une entropie élevée et une table d'importation minuscule sont également de forts indices.

Parmi les empaqueteurs courants figurent UPX, ASPack et Themida.

die sample.exe
# Packer: UPX(3.96)

Désempaqueter avec UPX

UPX est un empaqueteur courant et non malveillant, qui peut être inversé avec son propre outil. L'option -d décompresse le binaire pour lui rendre sa forme originale.

De nombreux échantillons réels utilisent UPX ou une version légèrement modifiée de UPX ; c'est donc une première tentative fréquente.

upx -d sample.exe

Désempaquetage manuel : l'idée

Les empaqueteurs personnalisés ne peuvent pas être défaits avec un outil. Vous laissez plutôt le fragment d'amorçage se désempaqueter lui-même en mémoire, puis vous capturez le résultat.

Le plan consiste à exécuter l'échantillon sous un débogueur, à l'arrêter juste après la fin du désempaquetage, puis à extraire le code désormais révélé.

Trouver l'OEP

L'Original Entry Point (OEP) est l'endroit où l'exécution se poursuit une fois le désempaquetage terminé. Atteindre l'OEP signifie que le véritable code se trouve maintenant en mémoire.

Pour le trouver, vous pouvez notamment rechercher un saut lointain sortant du fragment d'amorçage, ou définir un point d'arrêt sur une zone mémoire que le fragment écrit puis exécute.

Points d'arrêt pour le désempaquetage

Une astuce courante consiste à placer un point d'arrêt matériel sur la pile (le fragment restaure souvent les registres juste avant de sauter vers l'OEP), ou sur des appels d'API courants utilisés par le code désempaqueté.

Lorsque le point d'arrêt se déclenche à l'OEP, le code original est entièrement décodé.

Extraire le processus

À l'OEP, extrayez la mémoire du processus dans un nouveau fichier. Des outils comme Scylla (intégré à x64dbg) ou PE-sieve capturent l'image désempaquetée.

L'extraction contient désormais les véritables instructions, mais elle ne fonctionnera peut-être pas encore seule.

Reconstruire les importations

Après l'extraction, la table des adresses d'importation est souvent endommagée, car l'empaqueteur a résolu les importations lors de l'exécution. Scylla peut reconstruire l'IAT afin que le fichier extrait puisse être analysé.

Une fois les importations corrigées, vous pouvez charger l'extraction propre dans Ghidra ou IDA.

Autres obfuscations

Au-delà de l'empaquetage, les logiciels malveillants utilisent d'autres techniques d'obfuscation : chaînes chiffrées décodées lors de l'exécution, instructions inutiles, aplatissement du flux de contrôle et vérifications anti-débogage.

Ces techniques sont neutralisées au cas par cas, souvent en associant le traçage dynamique à une lecture statique patiente.

Vérifier l'échantillon désempaqueté

Après l'extraction et la reconstruction des importations, confirmez la réussite en relançant l'analyse statique : vous devriez maintenant voir beaucoup plus de chaînes et une table d'importation remplie.

Si l'entropie est revenue à la normale et que les API sont visibles, le dés-empaquetage a réussi et le véritable code est prêt à être analysé.

Vérification rapide

Rappelez-vous ce que représente l'OEP lors d'un désempaquetage manuel.

Récapitulatif

Vous comprenez maintenant le dés-empaquetage :

  • L'empaquetage dissimule le véritable code ; détectez-le grâce à DIE/PEiD, à une entropie élevée et à un faible nombre d'importations.
  • Les empaqueteurs connus comme UPX se désempaquetent avec un outil (upx -d).
  • Pour les empaqueteurs personnalisés, exécutez le programme sous un débogueur, trouvez l'OEP, effectuez une extraction avec Scylla et reconstruisez les importations.
  • Les autres obfuscations (chaînes chiffrées, anti-débogage) sont traitées au cas par cas.

Vous avez terminé le cours sur l'ingénierie inverse des logiciels malveillants.

Questions Fréquemment Posées

La leçon « Dépaquetage » est-elle gratuite ?

Oui — le texte complet de « Dépaquetage » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ethical Hacking Academy, passe à CoddyKit PRO. Le cours Ethical Hacking Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Dépaquetage » ?

Contourner l’obfuscation Tu pratiques Ethical Hacking Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Ethical Hacking Academy ?

Aucune expérience préalable n'est requise. Ethical Hacking Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Dépaquetage » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Ethical Hacking Academy ?

Oui. Chaque leçon Ethical Hacking Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Analyse statique
  2. Analyse dynamique
  3. Bases du désassemblage
  4. Dépaquetage
← Retour à Ethical Hacking Academy