Sally (./27) :
la preuve qu'il est possible de contrer l'exploiteur de vulnérabilités par l'obfuscation
Ben déjà c'est pas moi qui en parle mais les auteurs de l'article ; et de fait, leur exploiteur de vulnérabilités est vulnérable à n'importe quelle obfuscation, même triviale ; évidemment on peut faire un exploiteur plus résistant, mais pour une obfuscation non triviale ça devient très compliqué de réussir à faire la correspondance entre les deux binaires : même pour du code très simple (électronique embarquée) c'est difficile de faire le lien entre code source et binaire compilé dès que le compilo fait des optimisations (et c'est précisément pour ça qu'on désactive toujours les optimisations pour les applications critiques), alors faire le lien entre deux traductions binaires complètement arbitraires d'un même code c'est même pas la peine d'y penser...
Ou alors peut-être qu'il dit qu'on peut écrire un truc qui génère un binaire obfusqué sans devoir pour cela obfusquer le code source ?
Ca ne tient pas, certes il peut y avoir des obfuscations asm qui changent les instructions pour avoir du code qui ne serait généré par aucun compilo mais ça doit pas être très compliqué de s'en débarrasser quand on veut déobfusquer, parce que ça n'ajoute aucune information. Les obfuscations les plus intéressantes sont celles générables par un compilo, et donc qui correspondent à un code source : ça ne sera pas un code source modulaire du tout et ce sera de plus bas niveau (il dépendra des offsets de tels membres de telle structure interne), mais c'est ce qu'on veut (si c'est modulaire ou de haut niveau on peut facilement patcher le code). Après bien entendu, ça peut être plus facile à implémenter ou un chouilla plus rapide à exécuter de faire un obfuscateur binaire, mais c'est pas fondamentalement différent d'un obfuscateur de code source.