mercredi 2 octobre 2013

un crackme

Certains crackmes simples peuvent se résoudre très rapidement.

J'en prends un sur crackmes.de (je change juste le nom). On constate:
$ ls -l crackme
-rw-r--r-- 1 mitsurugi mitsurugi 612 oct.   2 17:05 crackme


$ strings crackme
Password :
Great you did it !:)
         
QTBXCTU

$ ./crackme

Password : QTBXCTU
$


Ok, donc le mot de passe est obfusqué. Sans se poser de questions, on se dit que le mot de passe est peut-être simplement X-oré vu la taille du programme:
$ objdump -d crackme | grep xor
 80480b3:    31 db                    xor    %ebx,%ebx
 80480b7:    34 21                    xor    $0x21,%al

OK, 0x21 semble le bon candidat; une console ipython donne le résultat immédiatement:
$ ipython
In [1]: v = ''

In [2]: for p in 'QTBXCTU':
   ...:     v += chr((ord(p)^0x21))
   ...:    

In [3]: print v
pucybut
$ ./crackme



Password : pucybut
Great you did it !:)

Inutile d'essayer de reverser le reste.

Mitsurugi

Aucun commentaire:

Publier un commentaire