Crack de Claris HomePage 2.0 Trial
Vous devriez trouver Claris HomePage 2.0 sur un cd livré avec le mag CDNet de Février 98, cet HTMLMaker est limité dans son utilisation à 30 jours ... entre parenthèse, je le trouve franchement pas terrible, mais bref ce n'est que mon opinion, fin de la parenthèse. Donc au bout de 30 jours on retrouve un zoli écran de ce style :
Bon, là, pas de mystère, l'utilisation de Wdasm est quasiment voué à l'échec, puisque cet écran se situe dans un module externe à Homepage.exe, on pourrait désassembler les DLL me diriez-vous mais il y' a une solution plus simple, et ceci grace à notre cher Soft-Ice, quelques explications ...
Alors il faut savoir que dans l'environnement Windows tout est référencé par un handle, que ce soit les menus, les boites de dialogues, les boutons, etc ... et à chacun de ces handles est attribué une fonction spécifique pour une action précise, vous me voyez venir là ?
Alors je répète en plus clair : dans la boite de dialogue en haut, windows la référence par un handle, cette fenètre qui est une classe, possède des objets, en particulier elle possède un objet dit BUTTON , cet objet button est identifié par un handle, cet handle renvoi un message en cas d'une action précise (click button droit, ou gauche, relachement boutton droit ou gauche) et ce message renvoi à une fonction précise, en particulier, si nous reprenons l'exemple plus haut, si on clique sur le boutton OK, et que l'on relache le boutton de la souris la fenètre s'efface et le programme s'execute normalement ... à la différence près que l'on ne peut plus sauvegarder nos pages html ...
Alors la question cruciale est comment faire pour récupérer cet handle, et surtout comment poser un point d'arrêt sur la fonction qui est executée lorsqu'on clique et que l'on relache la souris sur le boutton ok ?
Bein c'est tout simple.
En fait, grâce à Soft-Ice, j'explique la manoeuvre, suivez bien :
Lancez Soft-Ice en chargeant le programme Homepage.exe, vous devriez vous retrouver sur la console Soft-Ice, lancez le programme avec Ctrl-D ou X.
Attendez jusqu'a ce que vous tombiez sur la boite de dialogue comme quoi vous avez dépassé les 30 jours d'utilisations... une fois que vous y êtes, revenez sous Soft-Ice par Ctrl-D, vous y êtes ? très bien, maintenant rentrez la commande suivante : Hwnd Homepage ou Homepage correspond au programme lançé, petite parenthèse : Attention, il peut arriver que certains programmes n'ont pas le même nom d'execution, vous trouverez le nom référencé lorsque vous le lancer avec Soft-Ice juste en bas de la fenètre de code, ca donne un truc genre XXX.code ou .data +quelkechoz... fin de la parenthèse, alors que fait la commande Hwnd Homepage ? elle vous donne tous les handles en cours qui sont utilisés par Homepage, en pratique ca vous affiche un truc comme ca :
Window-handle | hqueue | SZ | QOwner | Class-Name | Window-procedure |
0938(1) | 18f7 | 32 | HOMEPAGE | #32770 (Dialog) | 1737:00004757 |
093C(2) |
18f7 | 32 | HOMEPAGE | Button | 1737:0000102e |
0940(2) |
18f7 | 32 | HOMEPAGE | Static | 1737:000052fa |
0944(2) |
18f7 | 32 | HOMEPAGE | Static | 1737:000052fa |
0988 | 18f7 | 32 | HOMEPAGE | SprintMDIWindow | 13f7:00000c6c |
Ca veut dire koi tout ca ? et bein on à une boite de dialog référencée par le handle 0938, cette boite contient 3 objets : 2 Static et 1 Button, kewl c'est ce qu'on recherche ... on veut voir où ca nous amène si on clique sur le button, alors on va placer un breakpoint sur le handle 093c lorsque le message de click de souris se met en place, pour cela on utilise le Bmsg (Breakpoint on Windows Message), pour voir les codes de message on utilise Wmsg et on se rend compte que le message WM_LBUTTONUP correspond au code 0202 => Bmsg 093c 0202 ou Bmsg 093c WM_LBUTTONUP comme vous le sentez, on relance le programme par Ctrl-D ou X et on clique sur le boutton Ok, et oh ! surprise on se retrouve sur Soft-Ice en plein dans le Kernel ou tout autre daube de ce genre, on trace (par F12, vous emmerdez pas à tout tracer jusqu'aux RET !)jusqu'au retour dans le programmme HomePage et joie, nous nous situons juste en dessous du Call appelant la boite de dialogue, s'agirait à voir comment ce call se fait appeler, alors on trace (par F10) et on regarde à chaque fois au-dessus du call, voir si y' a pas un saut conditionnel, et surprise, si vous vous êtes bien débrouillés, vous vous retrouverez à la sortie d'un call à l'adresse 0049c7ea comme ci-après :
Je sais je triche avec WDasm mais c'est pour vous montrer ;) un peu plus haut de ce call on voit le bout de code suivant :
Notez bien ce qui est en rouge : il compare un byte avec 00 s'il n'est pas égal il va en 0049c782, sinon il place 0 en eax et va directement en 0049c8c5 et en 0049c8c5 il retourne par un ret, s'il va en 0049c782 il va par la suite afficher la boite de dialogue par un call 00499a50 ainsi que le bridage du menu save et save as ... la solution vous parait simple ??? enfantine ...
Bein, on va pas se faire c***r, on remplace le bout de code jne 0049c782 par 2 nop comme ca on est sur de toujours empecher le bridage du programme ... c'est parti ! sachez que le code op du nop est 90, pas besoin de relancer Soft-Ice pour noter les chaines hexa, notez les à partir de Wdasm et modifiez les avec votre éditeur favori ...
Fini, on peut difficilement faire plus simple, pour du Claris quand même !!! les mecs sont censés faire des protections valables non ? A vous de jouer maintenant ... ;)
That's all folk !
Si vous avez des questions : cyberbobjr@yahoo.com