Outils pour utilisateurs

Outils du site


ctf:2017:alexctf:reverse_250

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
ctf:2017:alexctf:reverse_250 [2017/02/06 18:55]
diphome créée
ctf:2017:alexctf:reverse_250 [2017/03/11 13:32] (Version actuelle)
diphome
Ligne 6: Ligne 6:
 </​code>​ </​code>​
  
-On lance le challenge, dans l'ennoncé ​ça parle de python, pas trop surpris de voir : **unvm_me.pyc** comme fichier.+On lance le challenge, dans l'enoncé ​ça parle de python, pas trop surpris de voir : **unvm_me.pyc** comme fichier.
  
 L'​extension est .pyc, c'est du python compilé. Première chose, on essaye de le décompiler pour afficher L'​extension est .pyc, c'est du python compilé. Première chose, on essaye de le décompiler pour afficher
Ligne 13: Ligne 13:
 Une fois que le .pyc est décompilé on l'​ouvre avec notepad et on peut voir le code source en clair : Une fois que le .pyc est décompilé on l'​ouvre avec notepad et on peut voir le code source en clair :
  
-<file python ​decode.py>+<file python ​unvm_me.py>
 # Embedded file name: unvm_me.py # Embedded file name: unvm_me.py
 import md5 import md5
Ligne 60: Ligne 60:
 </​code>​ </​code>​
  
-Boucle for avec range à trois arguments+Boucle for avec range à trois arguments.
 On va itérer selon la taille de la chaine de caractères du flag par pas de 5. On va itérer selon la taille de la chaine de caractères du flag par pas de 5.
 On comprend mieux pourquoi il fallait un multiple de 5. On comprend mieux pourquoi il fallait un multiple de 5.
Ligne 71: Ligne 71:
  
 Définition d'une variable **s** Définition d'une variable **s**
-La variable **s** va être égale au 5 caractères en partant de la ou se trouve l'​itération **i** (on se rappelle qu'on itère en pas de 5.+La variable **s** va être égale au 5 caractères en partant de la où se trouve l'​itération **i** (on se rappelle qu'on itère en pas de 5).
  
 __Etape 3 :__ __Etape 3 :__
Ligne 79: Ligne 79:
 </​code>​ </​code>​
  
-La dernière condition. On voit qu'ici on va convertir une string en int de base 16. +La dernière condition. On voit qu'ici on va convertir une string ​de format hexadécimal ​en int, c'est pour ça qu'on utilise l'​argument ​16 qui correspond à la base hexa pour la conversion
-Cette string c'est le md5 (hex) des 5 caractères ​récupéré ​dans s juste avant.+Cette string ​qui va être convertie ​c'est le md5 au format hexadécimal ​des 5 caractères ​récupérés ​dans **s** juste avant.
  
-Enfin cette entier, doit être égal à celui correspondant dans la grosse liste du début avec des nombre ​de type long.+Enfin cet int, doit être égal à celui correspondant dans la grosse liste du début avec des nombres ​de type long.
  
 __En résumé :__ __En résumé :__
  
-Notre flag va être découpé en section de 5 caractères et pour chaque section le md5 convertit ​en int de base 16 doit être égal celui dans la liste correspondant (md5s).+Notre flag va être découpé en section de 5 caractères et pour chaque section le md5 de ces 5 caractères convertis ​en int de base 16 doit être égal à celui dans la liste correspondant (md5s).
  
-Chaque long dans la liste **md5s** correspond donc 5 caractères du flag.+Chaque long dans la liste **md5s** correspond donc à 5 caractères du flag.
  
 Exemple pour mieux comprendre : Exemple pour mieux comprendre :
Ligne 98: Ligne 98:
 </​code>​ </​code>​
  
-Il faut donc faire la route inverse, on se renseigne sur comment convertir un int de base 16 en string en python de préférence et on trouve une fonction ​sympas ​:+Il faut donc faire la route inverse, on se renseigne sur comment convertir un int en string en python de préférence et on trouve une fonction ​sympa :
  
 <​code>​ <​code>​
Ligne 144: Ligne 144:
 a perdu un 0 devant. a perdu un 0 devant.
  
-068cb5a1cf54c078bf0e7e89584c1a4e ​correspond au bon md5.+**0**68cb5a1cf54c078bf0e7e89584c1a4e ​correspond au bon md5.
  
 On balance ça sur un [[https://​hashkiller.co.uk/​md5-decrypter.aspx|site]] pour casser les md5 et on se retrouve avec : On balance ça sur un [[https://​hashkiller.co.uk/​md5-decrypter.aspx|site]] pour casser les md5 et on se retrouve avec :
 ALEXCTF{dv5d4s2vj8nk43s8d8l6m1n5l67ds9v41n52nv37j481h3d28n4b6v3k} ALEXCTF{dv5d4s2vj8nk43s8d8l6m1n5l67ds9v41n52nv37j481h3d28n4b6v3k}
  
ctf/2017/alexctf/reverse_250.1486407300.txt.gz · Dernière modification: 2017/02/06 18:55 par diphome