Exercice n°3
Prog : Brain Wave Generator---->PCMag n °27
(La protection est à la mesure du logiciel : NUL ! 30$)
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
).