Introduction | Outils nécessaires | Manipulation | Crack express... |

    Barbados vous propose de cracker:

EASY RECOVERY PRO

spark.gif

 

   Introduction

 EasyRecover 5.03 de la société Ontrack est une solution de récupération de données sûre qui permet de récupérer vos données vous-même.  Il est destiné aux professionnels de l'informatique et des services informatiques.  Il peut servir lorsque le disque dur a été :

·       Infecté par un virus

·       Formaté, ou FDISK

·       Effacé accidentellement

·       Détruit par une panne ou une coupure d'alimentation

·       Endommagé par des applications logicielles ou par un mauvais fonctionnement du système

Il peut également traiter des lecteurs qui ne sont plus reconnus par le système d'exploitation.  EasyRecovery peut vous aider plus particulièrement si un ou plusieurs des éléments suivants sont corrompus ou manquants :

·       Master Boot Record (MBR)

·       Blocs de paramètres BIOS (BPB)

·       Tables de partition

·       Tables d'allocation de fichiers (FAT) (pour DOS/Win9x) ou

·       Tables de fichier maître (MFT) (pour WinNT/Windows 2000)

·       Répertoire racine

  La version de démonstration est limitée à la récupération de 5 fichiers par opération. De plus, dans le menu A propos d'Easy Recover..., le programme affiche: Edition Professionnelle Essai.

 

   Outils nécessaires

  Pour cracker ce logiciel nous aurons besoin de nos trois outils préférés: SoftIce, Windasm et HexworkShop. L'exécutable ERWIN.EXE n'est pas crypté ni compacté. Un désassemblage de celui-ci révèle pas mal d'occurences qui nous seront d'une grande utilité. Assurez-vous que SoftIce est correctement configuré pour qu'il affiche les fenêtres des datas (commande: DATA), des codes (commande: CODE ON) et des registres (commande: R).

 

   Manipulation:

  Connaissant les restrictions de la version DEMO. J'exécute le programme... Il m'affiche toute une liste de fichiers récupérables; j'en sélectionne plus de 5 et clique sur SUIVANT. Easy Recovery affiche bientôt une fenêtre m'informant que le nombre maximum de fichiers récupérés pour cette session est atteint: "Easy Recovery a atteint le maximum de cinq fichiers [...]". Je pars alors désassembler l'exécutable avec Windasm pour chercher l'occurence correspondante. Windasm la trouve rapidement.

  

  Je m'y concentre quelques minutes,... en vain! Ayant brûlé quelques cartouches, je me dit qu'il est temps de jouer sa carte Chance. Je cherche alors la chaîne suivante: "cmp eax, 00000005".

J'explique: le programme se limite à récupérer 5 fichiers par session. Il se base certainement sur la valeur d'une variable X initialisée à 0 et incrémentée d'1 unité après chaque récupération. La variable X est souvent le registre EAX, comme dans le cas d'Easy Recover. Ainsi, de façon logique: SI EAX>05 ALORS affichage du nag. Ma recherche m'amène dans cette portion de listing:

 

  Une vérification avec SoftIce en posant un breakpoint en 004195D5, par exemple, confirme qu'ajourd'hui est mon jour de chance! J'explicite le listing en partie dès la ligne 004195CD:

 

  Au (Y)e passage, après avoir récupéré (Y-1) fichier(s):

004195CD Easy Recover range la valeur (Y-1) contenue à l'adresse 0052759C dans EAX

004195D5 EAX est incrémenté de 1 (Y-1)+1=Y

004195DB Comparaison de EAX avec la valeur 05. Celle-ci est réalisé en soustrayant au contenu d' EAX la quantité:5.

004195DE Range EAX dans 0052759C Ynew=Y

004195E3 Saut si EAX-5<0 vers NAG!

  Retour en 004195CD (en gros!)

 

  Une solution est de bloquer l'incrémentation de EAX après l'avoir initialisé à 0. La manière la plus simple d'initialiser EAX à 0 est de placer l'instruction: MOV EAX, 00000000. Pour annuler l'incrémentation, on utilise un NOP, instruction neutre, qui ne réalise rien.

  Pour ce faire, je pose un BPX 004195CD sous SofIce et relance Erwin pour effectuer à nouveau l'opération de récupération. SoftIce reprend la main immédiatement. J'active le module assembleur pour modifier le listing, avec A, puis j'entre:

 mov EAX,00000000 :  initialise EAX à 0.

ESC pour sortir du module et BPX 004195D5. J'appuie sur F5 pour continuer l'exécution du programme. SoftIce break et j'entre à nouveau en programmation assembleur:

 nop :  instruction neutre. Annihilation de l'incrémentation par inc EAX.

  

  Les modifications sont correctes et le logiciel tourne correctement sans limitation! Maintenant, pour parfaire le crack, je vais chercher ce qui provoque l'apparition de la chaîne: Edition Professionnelle Essai dans le menu: A propos d'Easy Recover...

 

  Pas de saut conditionnel qui permet de se brancher sur Edition Professionnelle ou sur Edition Professionnelle Essai. En fait, le dernier message écrase le premier de sorte que Edition Professionnelle Essai s'affiche inévitablement. Le seul moyen d'obtenir la chaîne Edition Professionnelle et de forcer à l'afficher en modifiant la ligne 0041607B. L'instruction PUSH xxxxxxxx affiche le contenu de la boîte de dialogue. 004C3ACC contient: Edition Professionnelle Essai et 004C3AEC contient: Edition Professionnelle. Ainsi, je modifie la ligne 0041507B avec: PUSH 004C3AEC!

 

  Voici les modifications à apporter dans l'éditeur hexadécimal:

Je donne l'adresse Offset à donner dans HexworkShop et le code hexadécimal à modifier pour chaque ligne.

 Pour forcer l'affichage du message Edition Professionnelle: Offset: 0041607B : 68CC3A4C00 en 68EC3A4C00

 Pour enlever la limitation à 5 fichiers par session: Offset: 004195CD : A19C755200 en B800000000                                                                                   Offset: 004195D5 : 40 en 90

 

Voilà, maintenant c'est à vous de jouer!

 

   Crack express...

  Pour les plus pressés ou les plus expérimentés d'entre-vous, voici les modifications à apporter dans l'éditeur hexédécimal:

 

 Pour forcer l'affichage du message Edition Professionnelle: Offset: 0041607B : 68CC3A4C00 en 68EC3A4C00

 Pour enlever la limitation à 5 fichiers par session: Offset: 004195CD : A19C755200 en B800000000                                                                                   Offset: 004195D5 : 40 en 90

 

  MISE A JOUR (20/01/02)

La protection de la version 5.11 est identique à celle explicitée dans ce cours, seules les adresses changent.