WinRar 3.30 Beta 1

Disponible sur : http://www.rarlab.com/

Programme qui n'est pas nécessaire de décrire !

PROTECTIONS:                                                                                                       OUTILS:
Nagscreen gênant à l'ouverture, Fonctions Désactivées, Informations dans About.        StudPe 1.8.0, PE-Explorer 1.94, OllyDbg 1.09d, Windasm 10.
et "evaluation copy" dans la fenêtre principale.

Intro:
Voici encore un petit tuto sur une manière d'utilisation de PE-Explorer 1.94 qui une fois passé à la moulinette oublie qu'il doit s'arrêter après 30 jours et nous donne l'oportunité de mettre dans notre boîte à outils un élément de plus non négligeable . Divers outils seront également utilisés pour démontrer la connexité entre eux et nous aider dans nos différentes tâches de l'étude et modifications du fichier original pour en arriver à la création d'un programme utilisable complétement par tout à chacun.

Le Soft et ses protections:
Une bonne étude commence toujours par focaliser son attention sur les divers problèmes à régler ...
Lors du démarrage
un Nag apparraît pour nous rappeller ceci:

Comment le virer !

et dans la fenêtre principale un "Evaluation copy" du plus mauvais goût.

Comment détruire cette phrase !

Il faudra penser aussi à s'occuper du menu Help/ About et ce design peu digne d'une bonne étude de logiciel:

Comment modifier ce Nag !

 

Nous avons aussi des fonctions désactivées:

1°) Placer les erreurs dans un fichier journal n'est pas disponible et un message d'erreur nous l'indique:

virer cette protection.

2°) Vérifier l'authenticité des fichiers décompressés

virer cette protection

3°) Supprimer le disque de destination avant l'archivage.

Virer la dernière protection

Nous avons donc trouvé apparament les différents problèmes à régler et nous allons encore de plus le passer à un analyser pour voir si il n'y a rien de particulier !

Rien de particulier, le programme a été écrit avec le compilateur Borland C++ tout simplement.

Le crack:

Avec ces infos, nous remarquons imédiatement que l'on peut utiliser PE-Explorer pour décompiler le programme et analyser les différentes procédures qui le compose.
Les Modifications et leurs contrôle se feront dans OllyDbg qui nous servira une fois comme éditeur Hexa et pour les tests.

 

Virer le Nag d'ouverture:

Nous allons d'abord virer le Nag d'ouverture à l'aide de l'éditeur de resources de Pe-Explorer:
On ouvre le programme dans notre nouvel outil....

on ouvre le répertoire Dialog pour découvrir ceci ---> on ouvre REMINDER et nous découvrons ceci:

Nous allons simplement le détruire à l'aide de l'éditeur ...

et voilà ! On enregistre le programme et si vous essayez ...plus de nag du début !

Détruire la phrase dans la fenêtre principale:

On désassemble le programme dans PE-Explorer et on réfléchit ....Quand on utilise le programme "WinRar" s'affiche tout le temps mais aussi le répertoire ou l'on se trouve et aussi notre méchante phrase "Evaluation Copy", on peut en déduire qu'il s'agit d'une variable avec une constante, il suffit de se souvenir qu'un variable se représente avec le signe % ..
Donc dans les string's de Pe-Explorer on cherche quelque chose qui ressemble à cela ...

En restant sur cette ligne, dans le menu Search on clique sur référence qui nous donne une adresse hexa...449A1Fh.

On s'y rend et on découvre le code affiché ci-dessus. A la ligne 449A1F nous voyons notre WinRar qui est Pushé. Et ensuite plus bas des sauts conditionnels...
Un JNZ à la ligne 449A38, un jl à la ligne 449A42 et jl à la ligne 449A47 !

Eh bien étudions ce qui ce passe en désassemblant dans OllyDbg et en placant des breaks aux adresses des sauts pour avoir ceci:

Nous voyons à la ligne 449A1F que l'on pousse le répertoire et le texte WinRar, ensuite, plus bas les jump's avec des comparaisons. Ici le programme à breaké sur le 1er saut sur la ligne 449A38 et on voit que le saut ne ce fait pas (la ligne qui indique le saut est grisée) et le CMP Byte ... ne serait-ce pas l'endroit ou il vérifie enregistré ou non ?
De toute façon, on continue a avancer pas à pas avec F8 et on trouve ceci:

Nous voyons que comme nous avons pas exécuter le premier saut il va compter les jours restants avant la fin de la période d'évaluation et ensuite afficher notre terrible phrase.
Donc il faut que l'on saute a chaque fois a la ligne 449A38 ! On va remplacer le JNZ par un JMP tout court et pourquoi pas le faire directement dans Olly ?

On pose un break sur le CMP BYTE PTR à la ligne 449A31 et on enlève celui du JNZ en dessous. On lance le soft et ...

Si on relance le programme après la modification (c'est à dire que l'on saute les 2 sauts suivants) on trouve ceci:

Il suffit d'enregistrer notre modification et d'enregistrer notre nouvel exécutable !

Modifier le Nag du menu About:

Comme précédement comme pour virer le Nag du début, on ouvre WinRar dans PE-Explorer et on cherche dans les ressources ...

en cliquant sur l'éditeur de ressources on peut voir en "direct" les modifications faites dans la fenêtre du menu About:

 

A la fin de vos modifications vous pourriez avoir ceci:

Attaquons les fonctions désactivitées ....

Pourquoi pas utiliser notre bon vieux windasm pour désassembler WinRar et voir ses entrailles...et trouver notre phrase "Available in registered version"

Nous allons rechercher TOUTES les instances ou se retrouve cette phrase et placer des breaks dans OllyDbg. Et on en trouve 60 ! On lance le programme via Olly et on essaie d'activer la fonction qui permet de créer un fichier avec les erreurs soit:

et on break dans Olly à cette adresse:

On voit que cette routine est appelée par 4 calls on va s'y rendre et placer des breaks également dans les lignes de code qui les précèdent.
On se rend à l'adresse 44BE8F et en remontant...on pose un break sur la ligne 44BE8B.
On se rend à l'adresse 44E0C7 et en remontant ... on pose un break sur la ligne 44E0C3
On se rend à l'adresse 464485 et en remontant ... on pose un break sur la ligne 464481
On se rend à l'adresse 46E153 et en remontant ... on pose un break sur la ligne 46E14F

On relance le programme et ca break sur le saut à la ligne de notre dernier break 46E14F ! Si on va changer la valeur du flag Z afin de provoquer le saut et que l'on relance le soft on se rend compte que la fonction est activée et opérationnelle !

On modifie le JE en JMP avec la commande d'Edition de Olly:

On sauvegarde dans un nouvel exécutable et on teste...ca marche ! Une de faite. A la suivante...

Et on break ici:

Même procédure que tout a l'heure on remonte aux différents sauts qui appelle cette routine via les adresses 44BE8F, 44E0C7, 464485, 46E153.

On relance le programme apres avoir posé nos breaks et ca re-break ici:

On va a nouveau modifier la valeur du flag Z et on teste...

et ca fonctionne donc on edite et on sauvegarde un nouvel exécutable. Reste une fonction ...

Dernière fonction désactivée:

on essaie ceci

et ca break la

La aussi on modifie comme les autres sauts et on sauvegarde notre dernier exécutable. Le soft est totalement opérationnel a ce stade !!

Il vous reste à faire le patch, bon courage et à bientôt pour d'autres aventures ....

 

REMERCIEMENTS à Eloo, Mimas, Lise Grim, Anthrax, The_Analyst et ceux que j'oublie de FFF ainsi que ceux que je n'ai pas eu l'honneur de connaître pour leur aide fort précieuse.

eXXe