ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Initiation au crack, cours 2 ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ par ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÀÄÄÄÄÄÄÄSaMSoNÄ[Mj13/Dsk]ÄÄÄÄÄÄÙ ³ ³ ³ ³ "Messieurs les mecs des ministŠres ³ ³ En meme temps que vos impots ³ ³ Vous pouvez faire monter vos bieres ³ ³ Y'en a marre !" ³ ³ Leo Ferre ³ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ 1. Introduction ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ 2. Des Breakpoints... ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ 3. Winimage 2.20: le serial ³ ³ 4. Les Credits de Mr. SaMSoN ³ ³ 5. Contactez moi! ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ 1. Introduction ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Dans le premier cours, nous avons fait une approche de Winice, en presen- tant rapidement les fonctions de bases. Nous avons egalement fait un crack simple de la boite de dialogue a l'entree de Winimage 2.50, en detaillant la marche a suivre de A a Z. Je vous avait promis de vous montrer comment trou- ver le serial qui correspond a votre nom... Malheureusement, j'ai pomme la version 2.50 (saint bordel de mon disque dur :)... Je vais donc faire cette lecon avec la version 2.20, largement repandue dans les CD-Rom (ou cederom:) fournis avec les revues... Malgre tout, le programme, en ce qui concerne la procedure d'enregistrement, est le meme pour les versions 2.20, 2.50 et 3.0 de Winimage. Seuls les offsets changent. Ainsi, le serial realis‚ avec Winimage 2.20 fonctionnera avec les versions ulterieures... Avant d'attaquer le serial de Winimage, je vous ferai d'abord une presen- tation generale du principe des breakoints sous Windows. NB: Vous pouvez egalement consulter des tutoriaux en Anglish, le plus se- rieux etant a mon sens celui de +ORC (cherchez "Fravia" avec un moteur de recherche sur le Web) ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ 2. Des Breakpoints... ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Pour pouvoir debugger des softs sous Windows, les Breakpoints sont essen- tiels. Il s'agit de "points d'arrets" dans le deroulement d'un programme. En effet, si vous lancez Winimage (ou tout autre soft Windaube) et que vous u- tilisez le Breakpoint de base Ctrl-D, Winice apparait mais vous n'etes cer- tainement pas dans le code source de Winimage, mais quelque par dans les procedures de Windows: l'inconvenient du multitache... On peut (et doit) donc poser des Breakpoints (BP) sur un offset precis du code source (BPX xxxx:xxxxxxxx ou bien F9 apres avoir mis le curseur sur l'offset vise) ou bien encore sur des procedures de Win95. En effet, les softs programm‚s pour Windows utilisent de nombreuses fonctions proposees par Windows. Ainsi on peut poser des BP sur les boites de dialogues (BPX DIALOGBOXPARAM) ou bien s–r les "messagebox" (BPX MESSAGEBOX) mais sur bien d'autres fonctions (BPX CREATEMENUITEM......) Il m'est impossible de les citer tous, a vous (et a moi) d'en decouvrir d'autres jours apres jours... On peut egalement en poser sur un offset memoire (BPMB xxxx:xxxxxxx) ou sur des interruptions (BPINT) ou sur ce qui sort par le port paralelle (BPIO) Vous le comprenez aisement, trouver le BP efficace n'est pas toujours chose facile. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ 3. Winimage 2.20: le serial ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ On lance donc Winimage, et la boite de dialogue d'enregistrement (opti- ons-|'enregistrement). On entre un nom et un serial bidon (pour moi: "Samson [Mj13] et 12121212 comme serial). La, on va utiliser un BP assez complexe. Il s'agit en effet d'arreter le soft apres avoir valide le nom et le serial avec OK mais avant d'avoir le message qui nous indique que le serial entre est incorrect. On fait donc "surgir" (attention, c'est violent :) Winice avec Ctrl-D... La, on va chercher le nom de la "task" pour Winimage. Il s'agit du nom uti- lise par Windows95 pour le deroulement de Winimage. On entre donc l'instruc- tion "task": TaskNameÄÄÄSS:PPÄÄÄÄÄÄStackTopÄÄStackBotÄÄStackLowÄTaskDBÄÄhQueueÄÄEvents Winimant 0000:0000 0066D000 00670000 1BBE 0A8F 0000 Winshade 0000:0000 0066E000 00670000 190E 2817 0000 Impwm 0000:0000 0069D000 006A0000 1A56 19CF 0000 Explorer 0000:0000 0066C000 00640000 1B86 1B37 0000 Any Key To Continue, Esc To Cancel On voit donc les differents taches qui tournent sur mon systeme. Celle qui nous interesse, c'est "Winimant". On note simplement le nom. On execute maintenant l'instruction "Hwnd Winimant", pour avoir le detail des boites de dialogues "en route" avec Winimage: WindowÄHandleÄÄÄHQueueÄÄSZÄÄQOwnerÄÄÄÄClass NameÄÄÄÄÄÄÄÄÄWindow-Procedure 02B8(1) 0A8F 32 WINIMANT #32770 (Dialog) 078F:00004757 02BC(2) 0A8F 32 WINIMANT Static 078F:000052FA 02C0(2) 0A8F 32 WINIMANT Edit 079F:00000BF4 02C4(2) 0A8F 32 WINIMANT Static 078F:000052FA 02C8(2) 0A8F 32 WINIMANT Edit 078F:00000BF4 Any Key To Continue, Esc To Cancel Cette instruction nous montre donc la composition de la boite de dialogue selectionnee: - la "fenetre maitresse" dont le Window Handle est suivi de (1) et ses composants, suivis de (2). - Le class name "Static" designe tout ce qui peut etre ecrit ("Nom:";"Serial:") - le class name "Edit" designe les zones de saisie, "Static" qui designe les zones de texte non-editables, etc... On note le Window Handle de l'une de ces zone de saisie, 02C0 par exemple. On a enfin tous les elements pour poser un BP correct: "BMSG 02C0 WM_Gettext" On relance donc le deroulement de Winice avec la touche F5, et l'on valide le nom et le serial entres en cliquant sur "OK". Rapidement, Winice apparait on va enfin pouvoir commencer a tracer dans Winimage. La, il faut faire du "trace over" avec la touche F10, comme un tar‚, jus- qu'a ce que la boite de dialogue nous indiquant "Donnees incorrectes" appa- raisse. Quant celle-ci est validee, on a le code suivant sous les yeux: xxxx:0040A500 CALL 0040D335 <ÄÄÄ Test du serial xxxx:0040A505 ADD ESP,08 xxxx:0040A508 XOR ECX,ECX xxxx:0040A50A MOV [00421024],EAX xxxx:0040A50F TEST EAX,EAX <ÄÄÄ Si EAX different de 0 xxxx:0040A511 JNZ 0040A53F ÄÄÄÄÄÄ¿ Alors Code Faux xxxx:0040A513 MOV EAX,00000001 ³ Sinon Bon xxxx:0040A518 PUSH 00002000 ³ xxxx:0040A51D PUSH 0000042D ³ xxxx:0040A522 MOV [00420C30] ³ xxxx:0040A527 PUSH 0000042B ³ xxxx:0040A52C MOV [00420B8C],EAX ³ xxxx:0040A531 MOV [00420B78],CL ³ xxxx:0040A537 MOV [00420E28],CL ³ xxxx:0040A53D JMP 0040A55A ³ Saut vers: "Code bon" xxxx:0040A53F XOR EAX,EAX <ÄÄÄÄÄÙ Debut de la procedure "Faux serial" xxxx:0040A541 PUSH 00002000 xxxx:0040A546 PUSH 0000042D xxxx:0040A54B MOV [00420C30],EAX xxxx:0040A550 PUSH 0000042A xxxx:0040A555 MOV [00420B8C],EAX xxxx:0040A55A PUSH ESI xxxx:0040A55B CALL 0040EB84 <ÄÄÄ Execute la boite "Donnees incorrectes" xxxx:0040A560 ADD ESP,10 xxxx:0040A563 PUSH 00 En tra‡ant comme un fou, on arrive sur le Call de l'offset 0040A55B. Quand on l'execute, la boite de dialogue "Donnees incorrectes" apparait. Il faut maintenant essayer d'analyser le code alentour. - On repere a l'offset 0040A53D un JMP inconditionnel. La procedure "Faux serial" commence donc a l'offset d'apres: 0040A53F. - On cherche donc un saut conditionnel qui renvoie vers cet offset. - On le repere pas tres loin: xxxx:0040A511 JNZ 0040A53F - Peu avant ce JNZ, on repere un xxxx:0040A500 CALL 0040D335; Il y a 95% de chances pour que ce soit ce CALL qui verifie si le serial est bon. On pose donc un BP sur ce call. Deux solutions pour ca: - placer le curseur sur l'offset vise et appuyer sur F9. (Je rappelle que la touche F6 permet de passer de la zone "Edit" de Winice a la zone "Code") - faire un "BPX 0040A500" Les deux ont un resultat equivalent. On remet Winimage en marche avec Winice (F5). On relance la boite de dialogue d'enregistrement. Comme tout a l'heure, on rentre des donnees bidons qu'on valide avec OK. La,Winice apparait a cau- se du BP place plus haut. On n'en a plus rien a foutre. [Petite paranthese: la commande BL vous donne la liste des Breakpoints. Vous pouvez en effacer (BL) en desactiver (bd xx) puis les reactiver (be xx)]. On continue avec F5, jusqu'a ce que Winice s'arrete sur l'offset 0040A500. On "rentre" dans le CALL avec F8. La, on entre vraiment dans la phase de recherche du serial... Je ne vais pas m'amuser a vous retranscrire toute la procedure. Je vais donc vous si- gnaler les offset interessants. Au fur et a mesure que l'on trace on essaye d'abord de reperer les ins- truction du type "PUSH WORD PTR [EBP+08]" et "LEA ECX,[EBP-14]" (bien enten- du, les valeurs ne sont citees qu'a titre d'exemple). Au debut de la procedure, on a l'instruction suivante: xxxx:0040D34B PUSH DWORD PTR [EBP+08] En haut de l'ecran Winice m'indique (ce sera different pour vous): SS:0066F664=00420E28 Donc, je fais un "D 00420E28" pour afficher le contenu de cet offset. Et winice m'affiche "Samson [Mj13]" le nom entre pour l'enregistrement. xxxx:0040D358 LEA ECX,[EBP-14] Je fais un "D EBP-14" cd qui nous donne le serial bidon xxxx:0040D35B LEA EAX,[EBP-28] Un "D EDP-28" ne nous donne pas grand chose. Mais, on a deja eu le nom, le serial bidon. Tout porte a croire que le bon serial sera "case" dans cet offset. On garde donc un oeil dessus. xxxx:0040D361 CALL 0040D2E7 Apres avoir execute ce CALL, l'offset [EBP-28] se modifie et nous donne "2D3A0D60". Cela ressemble a un serial. Mais nous ne somme qu'au debut de la procedure et il ne s'agit probablement que d'une etape interme- diaire. xxxx:0040D395 CALL 0041B8D8 Nouvelle modification de [EBP-28]: "413F26AB" xxxx:0040D3B7 CALL 0040D2E7 Nouvelle modification de [EBP-28]: "44402684" xxxx:0040D3E0 CALL 0040D2E7 Nouvelle modification de [EBP-28]: "3D3F26E1" Nous n'avons, ensuite pas d'autres modifications de cet offset... On relance donc la procedure d'enregistrement avec exactement le meme nom que precedemment et ce que l'on pense etre le serial (pour moi:3D3F26E1) Et... Ca marche! Donc, pour moi: Nom: Samson [Mj13] Serial: 3D3F26E1 Bon, c'est pas forcement evident a expliquer, alors je ne sais pas si j'ai toujours ete clair. Mais, en vous accrochant, ca devrait passer. Quand vous aurez fait ce crack, essayez-vous sur le serial de Winzip, la procedure est assez semblable. ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ 4. Les credits de Mr Samson ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Un grand salut a: Dsk (Snem, Spanik, Dark Angel...), contactez nous: www.mygale.org/11/snem F-Kaos (Cassio-P, Crifalo), Piracy.Fr Tous ceussent qui trainent sur #Warez-France: Ofx, Loginz, Mht, Capitaine, Godfroy, Hocus, Betty3D, etc... Unknown Mnemonic (bienvenue chez nous) [NDLR:voir son article sur les virus.] Vous qui trainez dans la salle d'info de la fac :) ET BIEN SUR LES MEMBRES DE MJ13 -= Et a tous ceux qui font bouger la scene francophone!!! =- ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ 5. Contactez moi! ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ E-mail: samsondsk@hotmail.com (plus d'e-mail massons@xiii.univ-angers.fr :) Ma page Web pour trouver mes cracks, des outils,le dernier Mj13... http://www.mygale.org/08/samson/ Sur Irc: Channel #Warez-France ou #Warez_France Nick: Samson ou {Samson} Je recherche egalement des pages Web qui luttent contre le fascisme en France pour une prochaine section de ma page et bien sur, si vous avez une page Web "underground" francophone, n'hesitez pas! ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ Samson [Mj13/Dsk] ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ