Il existe des dizaines et peut-être même des centaines de packers différents, mais la plupart utilisent les mêmes techniques et, souvent, les mêmes faiblesses. Il serait impossible de toutes les décrire dans un article, aussi je vous propose une analyse détaillée de trois d'entre elles. Nous verrons comment la protection fonctionne, comment la contourner et comment la renforcer. Les thèmes abordés seront : l'utilisation des gestionnaires d'erreurs et des registres de debug, l'obfuscation et les couches de chiffrement et, enfin, la protection des imports.
1. Qu'est ce qu'un packer ?
Un packer est un logiciel qui permet l'exécution d'un logiciel tiers, souvent stocké sous une forme non exécutable sur votre disque dur. Les packers utilisent une grande variété de techniques, cela va de la simple compression (UPX, AsPack) à la virtualisation presque intégrale de l'exécutable cible (VMProtect), en passant par l'utilisation d'un driver (Themida, SVKP) et de techniques complexes (Armadillo, Execryptor). Du point de vue du fichier et du système, un packer possède partiellement le même comportement qu'un virus, c'est-à-dire qu'il vient se greffer sur un fichier exécutable existant et le modifie en profondeur. Les modifications apportées sont en général l'ajout d'une section qui contiendra le loader (code injecté par le packer qui se charge de la décompression et de la protection du programme cible, la modification du point d'entrée pour qu'il pointe vers le loader et la suppression de la table d'imports. À cela...
- 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