Software Deobfuscation Techniques


Instructeur:  Tim Blazytko
Dates:  15 au 18 juin 2026
Lieu:  Delta Hotel President Kennedy
Capacité:  20


La rétro-ingénierie moderne repose de plus en plus sur l'automatisation, les outils personnalisés et les flux de travail assistés par agents. Mais ces approches atteignent rapidement leurs limites lorsque les binaires résistent activement à l'analyse par obfuscation du flux de contrôle, virtualisation, Boolean-arithmetic mixte et autres transformations. Cette formation enseigne les flux de travail pratiques de désobfuscation nécessaires pour contourner ces protections et rendre les flux de travail de rétro-ingénierie automatisés efficaces sur des cibles du monde réel.

Les participants apprennent d'abord comment les techniques d'obfuscation modernes compliquent la rétro-ingénierie, puis développent progressivement les techniques de désobfuscation nécessaires pour les attaquer lors de sessions pratiques. En chemin, ils approfondissent leur compréhension de l'analyse de programmes et apprennent quand et comment appliquer différentes techniques en pratique.

D'abord, nous examinons les techniques importantes d'obfuscation de code et discutons comment les attaquer. Ensuite, nous analysons un schéma d'obfuscation basé sur machine virtuelle (VM-based), apprenons les techniques de renforcement de VM et comment les aborder.

Dans la deuxième partie, nous couvrons l'analyse de programme basée sur SMT. En détail, les étudiants apprennent à résoudre des problèmes d'analyse de programme avec des solveurs SMT, comment prouver les caractéristiques du code, comment désobfusquer le Boolean-Arithmetic mixte et comment briser la cryptographie faible.

Avant d'utiliser l'exécution symbolique pour automatiser de grandes parties de la désobfuscation de code, nous introduisons d'abord les langages intermédiaires et les optimisations de compilateur pour simplifier les schémas d'obfuscation de qualité industrielle. Ensuite, nous utilisons l'exécution symbolique pour automatiser l'analyse de programme basée sur SMT et briser les prédicats opaques. Enfin, nous apprenons à écrire des désassembleurs pour les obfuscateurs basés sur virtualisation et comment reconstruire le code original.

La dernière partie couvre la synthèse de programme, une approche pour simplifier le code basée sur son comportement sémantique. Après avoir collecté des paires entrée-sortie du code binaire, nous apprenons non seulement à simplifier de grands arbres d'expressions, mais aussi comment vérifier la correction des simplifications. Ensuite, nous utilisons la synthèse de programme pour désobfusquer le Boolean-Arithmetic mixte et apprendre la sémantique des gestionnaires d'instructions VM.


Enseignement


Notez que la formation se concentre sur les sessions pratiques. Bien que certaines parties de cours fournissent une compréhension de quand utiliser quelle méthode, diverses sessions pratiques enseignent comment les utiliser pour construire des outils personnalisés pour des problèmes ponctuels. Le formateur soutient activement les étudiants pour résoudre avec succès les tâches données. Après qu'une tâche est terminée, nous discutons différentes solutions en classe. De plus, les étudiants reçoivent des solutions de référence détaillées qui peuvent être utilisées pendant et après le cours.

Bien que les sessions pratiques utilisent l'assemblage x86, tous les outils et techniques peuvent également être appliqués à d'autres architectures telles que MIPS, PPC ou ARM.


Objectifs d'apprentissage



Plan du cours


La formation s'oriente selon le plan suivant:



Exigences


Matériel/Logiciel:


Prérequis:



BIO


Tim Blazytko Tim Blazytko est un chercheur en sécurité binaire et expert en rétro-ingénierie bien connu, titulaire d'un doctorat en analyse de programmes. Il se concentre sur le conseil indépendant et le travail pratique en rétro-ingénierie et protection logicielle. Il contribue régulièrement à la communauté de rétro-ingénierie par le biais de formations, de présentations lors de conférences internationales, d'articles de recherche et d'outils open source. De plus, il accompagne ses clients dans l'analyse binaire avancée, les enquêtes sur les logiciels malveillants et les audits de sécurité. Tim occupe également le poste de Chief Scientist chez Emproof.



Pour s'inscrire

Cliquez ici pour vous inscrire.


Hex-Rays Magnet Forensics Trail of Bits