Dans l’article précédent [1], nous avons vu, d’un point de vue théorique, qu’il était possible de retrouver le code d’origine d’un programme simple protégé par un système d’obfuscation sans jamais analyser ce dernier.En effet, à l’aide d’un émulateur qui nous permet une approche dynamique, nous avions porté une attaque en deux temps :Tout d’abord, nous avions réalisé une analyse différentielle statistique élémentaire sur l’ensemble de la trajectoire [L1] pour dégager des instructions « intéressantes » appelées « program points » [L4].Ensuite, à partir de ces program points obtenus, nous avions réalisé une analyse locale en générant des slices [L5] par backward slicing. En supprimant les instructions de transfert, nous avions obtenu sur le binaire proposé par Craig Smith au recon2008 l’algorithme de vérification du « Serial » en quelques minutes.Dans cet article, nous allons prolonger une partie de ce travail en regardant ce qui se passe sur des protections plus robustes.
1. Introduction
Les deux cibles sur lesquelles je vais m’appuyer ici pour étayer mes propos usent de systèmes de défense d’une qualité que l’on peut qualifier de « professionnelle », c'est-à-dire qu’ils sont d’un niveau suffisant pour être utilisés dans des protections commercialisées.
À la différence du cas d’école proposé par Craig Smith, les deux programmes que nous allons étudier sont partiellement résistants à notre attaque. Plus précisément, ils offrent tous les deux suffisamment de matière pour dérouter la phase 2 de notre offensive : l’analyse locale par slicing. Vous vous demandez déjà, à juste titre, ce qu’il en est de la phase 1 (l’analyse statistique). Nous verrons que ces cibles, aussi résistantes soient-elles, cèdent facilement face à ce genre d’attaque.
2. Slices « complexes »
Dans toutes les attaques menées ici, les slices générés sont toujours des émanations exécutables de la trajectoire étudiée....
- 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