Présentation : Alexandre GAZET, Yoann GUILLOT
Les malwares sont bien souvent obfusqués à l’aide de « packers » ou de machines virtuelles embarquées, ou les deux !
Dans la solution proposée, le code du binaire incriminé est analysé, puis simplifié (optimisé), c’est le binding (traduire le code en pseudo-langage). Ainsi de nombreuses opérations inutiles (pour cacher le comportement illicite) sont effacées.
Ensuite, le pseudo-code est exécuté par le produit, qui va créer pour chaque opération demandée, le code assembleur à la volée et le compiler en ia32.
Le code ia32 ainsi généré peut maintenant être analysé, quelque soit la protection initiale, voire même décompilé pour obtenir un code de plus haut niveau.
Futur de ces recherches : Décompilation automatique, être plus éloigné de l’architecture cible, donner du code plus haut niveau.
Cependant ce n’est pas le plus facile, surtout pour les instructions processeur qui n’ont pas d’équivalent dans les langages plus haut niveau (comme le C). Un gros travail reste à faire pour rendre la solution totalement exploitable.