Outils d'utilisateurs

Outils du Site


ndh2k12_public:crackme:stay_alive

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

ndh2k12_public:crackme:stay_alive [2012/07/03 11:27]
Xartrick [Understand and crack the code]
ndh2k12_public:crackme:stay_alive [2017/04/09 15:33] (Version actuelle)
Ligne 5: Ligne 5:
 Dans ce challenge, on nous fourni une application Windows Phone (qui est un paquet Silverlight). Dans ce challenge, on nous fourni une application Windows Phone (qui est un paquet Silverlight).
 Un paquet Silverlight est une archive au format ZIP avec l’extension .XAP. Un paquet Silverlight est une archive au format ZIP avec l’extension .XAP.
-Décompressez cette archive devrait vous donnez une multitude de fichier, ainsi qu'un appelé ndh_stay-alive.dll.+Décompresser cette archive devrait vous donner une multitude de fichiers, ainsi qu'un appelé ndh_stay-alive.dll.
  
 ====First steps==== ====First steps====
  
-Ce fichier est une librairie programmé en .NET. Ouvrez le avec un désassembleur .NET, pour pouvoir lire le code. +Ce fichier est une bibliothèque programmée en .NET. Ouvrez-le avec un désassembleur .NET, pour pouvoir lire le code. 
-À partir du moment ou cette assembly n'est pas protégé, ce challenge va être trivial.+À partir du moment ou cet assembly n'est pas protégé, ce challenge va être trivial.
 J'ai utilisé SAE (Simple Assembly Explorer) pour extraire le code, je l'ai nettoyé et voici ce que je trouve: J'ai utilisé SAE (Simple Assembly Explorer) pour extraire le code, je l'ai nettoyé et voici ce que je trouve:
  
Ligne 148: Ligne 148:
 }</file> }</file>
  
-Nous allons le nettoyé un peu plus et supprimé tous le code inutile pour avoir une vue claire du code. +Nous allons le nettoyer un peu plus et supprimer tout le code inutile pour avoir une vue claire du code. 
-La fonction ndhPasswordLogin_Click est une fonction évenementielle, elle est appelé quand un utilisateur +La fonction ndhPasswordLogin_Click est une fonction évènementielle, elle est appelée quand un utilisateur 
-appui sur le bouton Login.+appuie sur le bouton Login.
  
-Cette fonction appelle une fonction de cryptage et compare ce résultat avec une chaîne chiffré par cette même fonction (on imagine bien). +Cette fonction appelle une fonction de cryptage et compare ce résultat avec une chaîne chiffrée par cette même fonction (on imagine bien). 
-Cette chaîne n'est pas donné directement, le programme utilise plusieurs fonctions pour la récupéré.+Cette chaîne n'est pas donnée directement, le programme utilise plusieurs fonctions pour la récupérer.
 Récupérons la... ! Récupérons la... !
  
Ligne 160: Ligne 160:
 <file C# source.cs>this.hashA223UU8DzZDZD = "+5jeyeCv5uejnwa2dd5L7LvIjM4nDFyhhLY+Nj5Rh3wgZFL8Mi3hltRicAalWPuLRQMk91oag4dfWfnj7nD3JB13grBCyFMf6pJwP8bfBQ5";</file> <file C# source.cs>this.hashA223UU8DzZDZD = "+5jeyeCv5uejnwa2dd5L7LvIjM4nDFyhhLY+Nj5Rh3wgZFL8Mi3hltRicAalWPuLRQMk91oag4dfWfnj7nD3JB13grBCyFMf6pJwP8bfBQ5";</file>
  
-Quand la fonction trustedHash() est appelé, le programme retourne cette valeur ainsi que 4 autres.+Quand la fonction trustedHash() est appelée, le programme retourne cette valeur ainsi que 4 autres.
  
 La variable text contient: La variable text contient:
Ligne 182: Ligne 182:
 <file C# source.cs>/8hd3Z1ds8a1StSQkXxNyjZd2mTQPpTR4zmyf9FzK4Y4XUfzw1hUP3qj+</file> <file C# source.cs>/8hd3Z1ds8a1StSQkXxNyjZd2mTQPpTR4zmyf9FzK4Y4XUfzw1hUP3qj+</file>
  
-La chaîne correct est ainsi une concaténation de c'est 5 valeurs dans l'ordre suivant:+La chaîne correcte est ainsi une concaténation de ces 5 valeurs dans l'ordre suivant:
  
-<file>hashA223UU8DzZDZD + trustedHashPart3() + trustedHashPart2() + trustedHashPart1() + text</font>+<file>hashA223UU8DzZDZD + trustedHashPart3() + trustedHashPart2() + trustedHashPart1() + text</file>
  
 La chaîne est donc: La chaîne est donc:
Ligne 361: Ligne 361:
 Result: Failed!</file> Result: Failed!</file>
  
-La fonction fonctionne à merveille, nous avons plus qu'à décrypté la variable qui contient le bon mot de passe pour avoir le flag !+La fonction fonctionne à merveille, nous n'avons plus qu'à décrypter la variable qui contient le bon mot de passe pour avoir le flag !
  
 <file>hzv-will-never-die</file> <file>hzv-will-never-die</file>
ndh2k12_public/crackme/stay_alive.1341307636.txt.gz · Dernière modification: 2017/04/09 15:33 (modification externe)