QUAKER

Exercice n°3

Prog : Brain Wave Generator---->PCMag n °27

(La protection est à la mesure du logiciel : NUL ! 30$)

Sous W32dasm désassemblez bwave.exe

Lancez Debug---->Load Process

Ouvrez String Data Réf

Nous allons essayé de prendre le problème à la base----->c'est à dire au chargement du prog en mémoire , celui-ci va aller vérifier (dans ce cas de figure : dans la base de registre Windoz69) si le numéro sérial est présent mais surtout valide .

Donc dans les String Data Réf , nous n'allons pas nous préoccupé des lignes "The registration code is not valid . . ." mais de "Registered to" et "Unregistered évaluation copy"

Nota : vous remarquerez que "Unregistered . . ." ne se trouve pas dans les String Data Réf mais dans les Dialog Réf (autres repères bien utiles).

Double click sur la phrase "Registered to"---->406D8D

Donc on recherche au dessus un saut conditionnel quelquonque.

En premier on trouve 406D72 JE 406E00--->pas bon puisqu'on saute par dessus la routine "Registered"

Le deuxième 406D69 JE 406A3B---->idem

Le troisième est le bon 406D64----->Faite l'essai----->Vous ne sautez pas-----> le prog vous emmène jusqu'à 406D78 JMP 406F6A (JMP=saut inconditionnel)----->Bye Bye . . .

Voilà donc vous patchez 406D64 JE 406D7D (406D7D=Registered) soit en JNE ou un nombre ,correspondant à l'emplacement mémoire, de NOP .(Notez le code Hexa de la nouvelle commande que W32asm vous indique.Si vous remplacez JE par JMP : 7417<-->EB17. )

Après vous essayez, toujours sous W32dasm, le prog sous toutes ses coutures (en effet quelques fois le fait de forcer une routine court-circuite d'autres routines nécessaires au fonctionnement du prog ; celui se traduit parfois par un beau "Splash" là c'est clair et net :on sait qu'il y a un gros problème mais d'autres fois il manque une fonction au prog qu'on ne voit pas toujours du premier coup---->d 'où la nécessité de l'essayer à Donf).

Quand vous êtes sur de votre prog, vous notez soigneusement le code Hexa (7417) de la ligne à modifier mais aussi (très important)les deux ou trois lignes qui suivent.

Maintenant sortez de W32dasm , nous allons maintenant utilisez un éditeur Hexadécimal :

HIEW584.

Clickez avec le bouton droit de la souris sur le raccourci "Professionnal Write"

Ouvrez "Propriétés"----->programme

Dans la ligne de commande : vous devez indiquez l'adresse complète de l'exécutable Hiew584.exe suivi (séparé par un espace) de l'adresse complète du prog à patcher .

ex: c:\hiew584\hiew584.exe c:\bwave.exe------>Appliquer

Attention Hiew584 ne "voit" pas les nom de plus de huit caractères et les espaces--->il vous répondra "File no found".Dans ces cas de figure , renommez le fichier ou changer le de place : le temps de la modif.

Voilà ,vous êtes normalement devant un indescriptible charabia---->Décimal---->enter---->vous passez sous Hexa---->enter----->vous passez sous ASM---->et ainsi de suite . .

Vous vous placez sous Hexa

Touche F7 (recherche) avec les touches haut ou bas vous basculez sous ASCII (recherche de texte) ou Hexa--->c'est l'Hexa qui nous intéresse.

C'est là que les notes prises deviennent nécessaires.

Vous rentrez en commençant par 7417 le maximum de caractères relevés précédement (741783F8010F84CC000000)ce qui correspond à trois lignes de codes Hexa mis bout à bout.

Enter---->Si vous n'avez pas fait d'erreur il doit trouver le premier octet : 74 : regardez bien vous verrez que les octets suivant correspondent .

Par sécurité---->avancer avec la flèche droite d'un octet------>recommencer la recherche avec la même suite d'octet ,ceci afin de vérifier si il n'y a pas de suite d'octet identique dans le prog , si Hiew584 vous répond File no found : c'est bon .Si ce n'est pas le cas, retourner sous W32dasm pour récupérer des lignes de code hexa supplémentaires afin d'affiner la recherche.

Deux solutions : soit vous remplacez directement sous Hexa , 74 par EB (mais il est plus difficile de voir si les emplacements mémoire sont respectés. Ou vous passez sous ASM (touche enter) .Touche F3 (Edit) un tiret doit se trouver sous le code à modifier (rappel : vérifiez le numérotage de la ligne suivante ) ----->rentrer le nouveau code ; ou toujours après la touche F3---->touche F2----->pour passer en edit Asm----->vous remplacez JE par JMPS.

Enter

Echap pour sortir de Edit

Touche F9 pour enregistrer (après cette touche , plus de retour en arrière possible)

Touche F10 pour sortir du prog .

Vous aurez remarqué sur la partie droite de l'écran une colonne avec , le plus souvent des caractères incompréhensibles mais aussi et c'est là que c'est intéressant , des termes lisibles et ces mots , on peut les bidouiller , personnaliser son prog par exemple (même principe que pour le code vous devez respecter la taille mémoire ).

Sommaire