Les "Packers" sont des "utilitaires" dont le métier consiste à compresser un programme exécutable (.exe, .dll, .ocx etc. ...) et à le crypter simultanément. Au moment de son exécution, un programme ainsi passé entre les mains d'un packer monte en mémoire, compressé et encrypté, puis s'auto-expanse pour, enfin, s'exécuter. Le problème vient du fait que les antivirus et les anti-trojans analysent un programme lorsqu'il demande à monter en mémoire, avant qu'il ne s'exécute or, avant qu'il ne s'exécute, un programme compressé et encrypté avec un packer est quasiment impossible à reconnaître, même s'il embarque un parasite.
Les packers sont donc constitués de 2 parties :
- La routine de compression / cryptage, extérieure au programme compressé.
- La routine de décompression / décryptage embarquée dans le programme compressé.
On les utilise de 2 manières :
- Légitime - Ils permettent d'empêcher le désassemblage (reconstruction du code source à partir du code exécutable) et/ou la modification (patch) d'un programme. En ce sens ils durcissent et sécurisent un programme exécutable et protègent les intérêts de leur auteur.
- Agressive - Ils permettent d'empêcher les antivirus et les anti-trojans de découvrir les signatures des parasites et rendent le code plus petit sans l'altérer. Les parasites traités par un packer sont beaucoup plus furtifs.