Une discussion sur l'obfuscation
de code sur le forum de FRET m'a ramené à
une époque où je m'étais beaucoup
amusé avec ce thème.
J'ai donc eu envie de ressortir mes
vieux outils persos et de vous proposer 2 crackmes.
Mon but principal est avant tout de montrer une certaine
sorte d'obfuscation qui dépasse le simple collage
de Macros identifiables par signature.
La routine qui gère le passe est la même
pour les 2 crackmes. Et elle n'a vraiment pas été
une priorité pour moi. De ce fait, un simple
brut forcing donne rapidement des résultats valides.
Ceci dit, le passe principal vient d'une plaisanterie
et il est possible de le trouver sans aucun outil et
analyse... Alors ? ;)
1) YO-bfuscator_I
Pour ce crackme, le but est avant tout
de nettoyer le code et de le rendre le plus clair possible
en vue d'une analyse statique. Ce crackme est uniquement
basé sur l'obfuscation.
2) YO-bfuscator_II
Pour ce crackme, l'obfuscation est
aussi de mise. Mais cette fois-ci, une certaine architecture
a été mise en place afin d'empêcher
l'utilisation de debugger.
Comme YO-bfuscator_I, le but sera de nettoyer tout cela
en vue d'une analyse statique. Mais une analyse sur
le système anti-trace et anti-breakpoint serait
vraiment bienvenue.
Finalement, vous en faites un peu ce
que vous voulez. Je suis juste curieux de voir comment
certains d'entre vous aborderaient ces problèmes.
Amusez-vous bien :)
Lionel d'Hauenens - 20 février
2008
|