Unpacking tips and tricks

Magazine
Marque
MISC
HS n°
Numéro
7
Mois de parution
mai 2013
Spécialité(s)


Résumé

Lors de l'analyse de programmes, qu'ils soient malveillants ou non, il est fréquent de se retrouver confronté à un packer. Cette protection, ajoutée après la compilation du programme, ralentit l'analyse du programme et peut rendre certains outils d'analyse inopérants. Elle doit donc être contournée, ou mieux : supprimée. Cet article présente les différentes techniques et astuces que nous utilisons pour parvenir à nos fins le plus rapidement possible.


1. Qu'est ce qu'un packer ?

Un packer est un programme qui va modifier un autre programme de manière à fusionner au maximum avec le programme original et ainsi rendre sa suppression la plus difficile possible.

Pour cela deux étapes sont nécessaires :

- Une étape effectuée une fois pour toute lors de la protection du programme (chiffrement/compression du programme, virtualisation du code, etc.),

- Une étape effectuée à chaque exécution du programme, par un loader ajouté par le packer au programme et exécuté avant le code original de l'exécutable.

Ce loader sera exécuté avant le programme et sera chargé de décompresser/déchiffrer le programme, se substituer au loader Windows (notamment pour le chargement des imports, la résolution des relocations), de détecter les outils d'analyse, etc.

Le schéma de la figure 1 donne une représentation simplifiée de ces deux étapes.

 

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous