15/03/2003 - 11h31 ================================================================================================ Introduction soft ice + Winamp skin Maker 1.2 cracking - nivo 0 lunatic (_lunatic_@caramail.com) ================================================================================================ ============================= Au programme... ============================= -|- A. Introduction a soft ice win9X -|- B. Notion d'assembleur -|- C. Winamp skin maker -|- D. End -|- E. Greetings ================================================================================================ -|- A. Introduction a soft ice ================================================================================================ Bon, voila, on y est.. je savais ke j'allais devoir faire un tut d'introduction sur Soft-Ice, LE debugger de chez "numega"... va falloir ke je m'applique... Personnelement, j'ai longtemps cracké avec W32dasm ...car soft-ice(ou SICE), me rebutait..c'est vrai qu'a premiere vu ca a l'air assez tordu.. oubliez vos prejugés sur ce merveille SOFT...et mettez y vous le plus tot possible.... Avec SICE, la seule chose qui vous limite vraiment c'est votre cerveau.. En effet soft ice permet de poser en mémoire, un point d'arret dit "break point" sur une API (apiwindows représente la fonction Windows que vous voulez 'etudier')... trés pratique pour nous :-) Je vais essayé de vous donner ICI les commandes les plus courament utilisees ..mais avant sa ..on va d'abors configurer ce soft. Bon je vous laisse lancer le setup tout seul...voila un serial pour la version 4.05 pour win9x au cas ou : 5109-0122DF-FF ...laissez SICE modifier votre autoexec.bat ...cependant ne redemarrez pas tout de suite.... car l'essentiel de la configuration de Soft-ice se passe dans le fichier Winice.dat... Donc éditez votre fichier winice.dat avec Notepad par exemple, et voici les choses a modifier: PHYSMB=192 <--- mettez ici votre nombre de RAM Pour une meilleur lisibilité, a la ligne ou vous voyez ceci INIT, mettez: INIT="lines 60;ww;wl;wr;wd 24;wc 24;code on;x;" A chacun de trouver ce qu'il prefere... Ensuite à la ligne ou vous voyez "AF4" mettez ceci: AF4="^s 0 l ffffffff 56,57,8b,7c,24,10,8b,74,24,0c,8b,4c,24,14,33,c0,f3,66,a7;" Cette bidouille est utilisee dans Visual Basic (pour trouver des serials :) Bon maintenant, on commence la partie qui est la plus utile car si on ne modifie pas ça ! Niet le cracking :) ; ** Examples of export symbols that can be included for Windows 95 ** ; Change the path to the appropriate drive and directory ;EXP=c:\windows\system\kernel32.dll ;EXP=c:\windows\system\user32.dll ;EXP=c:\windows\system\gdi32.dll ;EXP=c:\windows\system\comdlg32.dll ;EXP=c:\windows\system\shell32.dll ;EXP=c:\windows\system\advapi32.dll ;EXP=c:\windows\system\shell232.dll ;EXP=c:\windows\system\comctl32.dll ;EXP=c:\windows\system\crtdll.dll ;EXP=c:\windows\system\version.dll ;EXP=c:\windows\system\netlib32.dll ;EXP=c:\windows\system\msshrui.dll ;EXP=c:\windows\system\msnet32.dll ;EXP=c:\windows\system\mspwl32.dll ;EXP=c:\windows\system\mpr.dll Une fois ke vous avez trouve sa...vous aller degager les point virgules ";" sinon on ne pourra rien cracker car les Break sur les API Windows seront impossibles .... Donc modifiez ça en: ; ** Examples of export symbols that can be included for Windows 95 ** ; Change the path to the appropriate drive and directory EXP=c:\windows\system\kernel32.dll EXP=c:\windows\system\user32.dll EXP=c:\windows\system\gdi32.dll EXP=c:\windows\system\comdlg32.dll EXP=c:\windows\system\shell32.dll EXP=c:\windows\system\advapi32.dll EXP=c:\windows\system\Msvbvm50.dll EXP=c:\windows\system\Msvbvm60.dll EXP=c:\windows\system\shell232.dll EXP=c:\windows\system\comctl32.dll EXP=c:\windows\system\crtdll.dll EXP=c:\windows\system\version.dll EXP=c:\windows\system\netlib32.dll EXP=c:\windows\system\msshrui.dll EXP=c:\windows\system\msnet32.dll EXP=c:\windows\system\mspwl32.dll EXP=c:\windows\system\mpr.dll Vous avez sûrement remarqué que j'ai ajouté 2 fichiers dll dans la liste ci-dessus par rapport à avant: EXP=c:\windows\system\Msvbvm50.dll EXP=c:\windows\system\Msvbvm60.dll Rajoutez-les !! On en a besoin si on veut cracker les programmes en Visual Basic :-) je me suis toujours servi du WINICE.DAT configuré par analyst...je vous le conseil... -------[ Winice.dat ]--------------------------------------------------------------> PENTIUM=ON NMI=ON ECHOKEYS=OFF NOLEDS=OFF NOPAGE=OFF SIWVIDRANGE=ON THREADP=ON LOWERCASE=OFF WDMEXPORTS=OFF MONITOR=0 PHYSMB=192 SYM=1024 HST=256 TRA=8 MACROS=32 DRAWSIZE=2048 INIT="lines 60;ww;wl;wr;wd 24;wc 24;code on;x;" F1="h;" F2="^wr;" F3="^src;" F4="^rs;" F5="^x;" F6="^ec;" F7="^here;" F8="^t;" F9="^bpx;" F10="^p;" F11="^G @SS:ESP;" F12="^p ret;" SF3="^format;" CF8="^XT;" CF9="TRACE OFF;" CF10="^XP;" CF11="SHOW B;" CF12="TRACE B;" AF1="^wr;" AF2="^wd;" AF3="^wc;" AF4="^s 0 l ffffffff 56,57,8b,7c,24,10,8b,74,24,0c,8b,4c,24,14,33,c0, f3,66,a7;" AF5="CLS;" AF8="^XT R;" AF11="^dd dataaddr->0;" AF12="^dd dataaddr->4;" CF1="altscr off; lines 60; wc 32; wd 8;" CF2="^wr;^wd;^wc;" ; WINICE.DAT ; (SIW95\WINICE.DAT) ; for use with SoftICE Versions greater than 3.0 (Windows 95) ; ; ***************************************************** ; If your have MORE than 32MB of physical memory installed, change ; the PHYSMB line to the correct # of Megabytes. ; If you have LESS than 32MB you can save a bit of memory by ; specifying the correct # of Megabytes ; Example: PHYSMB=32 ; ***************************************************** ; ** Examples of sym files that can be included if you have the SDK ** ; Change the path to the appropriate drive and directory ;LOAD=c:\windows\system\user.exe ;LOAD=c:\windows\system\gdi.exe ;LOAD=c:\windows\system\krnl386.exe ;LOAD=c:\windows\system\mmsystem.dll ;LOAD=c:\windows\system\win386.exe ; ***** Examples of export symbols that can be included ***** ; Change the path to the appropriate drive and directory ;EXP=c:\windows\system\vga.drv ;EXP=c:\windows\system\vga.3gr ;EXP=c:\windows\system\sound.drv ;EXP=c:\windows\system\mouse.drv ;EXP=c:\windows\system\netware.drv ;EXP=c:\windows\system\system.drv ;EXP=c:\windows\system\keyboard.drv ;EXP=c:\windows\system\toolhelp.dll ;EXP=c:\windows\system\shell.dll ;EXP=c:\windows\system\commdlg.dll ;EXP=c:\windows\system\olesvr.dll ;EXP=c:\windows\system\olecli.dll ;EXP=c:\windows\system\mmsystem.dll ;EXP=c:\windows\system\winoldap.mod ;EXP=c:\windows\progman.exe ;EXP=c:\windows\drwatson.exe ; ** Examples of export symbols that can be included for Windows 95 ** ; Change the path to the appropriate drive and directory EXP=c:\windows\system\kernel32.dll EXP=c:\windows\system\user32.dll EXP=c:\windows\system\gdi32.dll EXP=c:\windows\system\comdlg32.dll EXP=c:\windows\system\shell32.dll EXP=c:\windows\system\advapi32.dll EXP=c:\windows\system\Msvbvm50.dll EXP=c:\windows\system\Msvbvm60.dll EXP=c:\windows\system\shell232.dll EXP=c:\windows\system\comctl32.dll EXP=c:\windows\system\crtdll.dll EXP=c:\windows\system\version.dll EXP=c:\windows\system\netlib32.dll EXP=c:\windows\system\msshrui.dll EXP=c:\windows\system\msnet32.dll EXP=c:\windows\system\mspwl32.dll EXP=c:\windows\system\mpr.dll -------[ Winice.dat ]--------------------------------------------------------------> Une fois votre pc redemarré, vous serez pret pour l'aventure. Pour lancer Sice, suffit de faire "CTRL + D" ...essayez.. vous verrez soft ice apparaitre... Pour en resortir ...refaites "CTRL + D". Jusque là rien de trop dur ? Maintenant en ce qui concerne les points d'arrêt dit "Breakpoints". On les utilise sur les fonctions de Windows (API)... ca peut vous parraitre un peu flou... mais ne vous inquietez pas... vous comprendrez au fure et a mesure des cracks que vous ferrez. Pour poser un breakpoint, sous Soft-ice tapez: BPX API_windows (apiwindows représente la fonction Windows que vous voulez 'etudier') Apres avoir mis un bpx sur une API Windows vous pouvez par exemple voir la liste des bpx déjà posés! Liste des bpx: BL Editer un bpx: BE numéro_du_bpx Effacer un bpx: BC numéro_du_bpx Effacer tous les bpx: BC * Désactiver un bpx: BD numéro_du_bpx Désactiver tout: BD * Activer un BPX: BE numero_du_bpx Activer tous les BPX: BE * Il y a les: BPINT (breakpoint sur les interruptions comme INT3..) ex: BPINT 3 Il existe aussi les BPM et autres BPR, on reparlera des BPR pour les keygens.... Pour plus d'infos sur l'installation et l'utilisation de Soft ice je vous conseil ce lien : http://c4nfaq.cjb.net/, il est en anglais mais vraiment tres pratique. ================================================================================================ -|- B. Notion d'assembleur ================================================================================================ Pas la peine d'épiloguer ici. Je vais simplement vous donnez quelques notions de code. JE Jump if Equal 74 JNE Jump if Not Equal 75 JMP Jump EB JG Jump if Greater 0F8F JNG Jump if Not Great 0F8E JGE Jump if Greater or Equal 0F8D JNGE Jump if Not Greater and not Equal 0F8C NOP No Operation 90 CMP Compare ce tableau represente quelques une des instructions assembleur, ainsi que leurs equivalent en hexadecimal. Je vous conseils bien evidement de lire le MARABOUT sur l'assembleur.. car on est pas là pour faire un cour sur l'asm. ================================================================================================ -|- C. Winamp Skin Maker 1.2 ================================================================================================ Bon, apres avoir fait l'introduction a Soft Ice, on va mettre en pratique notre nouveau jouet.... Dans ce premier tutorial de crack sous soft ice, (le premier d'une longue serie j'espere), on va s'implement s'occuper de trouver le Serial Number afin de registrer comme il faut le logiciel.... Ca va nous changer de la methode cowboy de W32dasm... Ce crack n'est pas difficile...on peut meme dire k'il est tres facile... (j'ai pas trouvé + facile), excelent donc, pour debuter sous SICE... allez fini la parlote...let's go cracking... Une fois ke l'on a fait l'install du soft, on le lance pour voir ce que ca donne... A premiere vu ça a l'air sympa.. sa permet de faire des skins pour notre player favoris.. enfin la je ne vous apprend rien... uu que c'est le nom du soft. Bref, on va donc essayé de se REGISTRER, on va dans ABOUT, REGISTER... une fenetre avec deux champs apparait..."name" et "reg #"... on met un nom, moi je mets "lunatic" et un numero bidon, la je met 10902144 (mon Numero ICQ), je clik sur OK et il me met : "WRONG REGISTRATION NUMBER" ! (enfin pas pour longtemps...) Le bon reflexe est de poser un "breakpoint" au moment ou le soft lit notre nom et le numero de serie. On lance donc SICE,(CTRL+D) et on pose le breakpoint suivant : "bpx getglditemtexta" Pourquoi mettre 'getdlgitemtexta' ? le 'a' à la fin signifie que nous sommes sur une application 32bits, 'getdlgitemtext', represente l'api utilisé par le programmeur du logiciel pour faire apparaitre la fenetre nous annonçant que notre numéro de serie n'est pas valide. Si vous avez deja programmez vous devez connaitre cette api. Apres avoir poser le breakpoint on retourne sur le soft en faisant F5. On clik sur OK, et la miracle soft ice apparait. Bonne nouvelle, le break point fonctionne, on s'est donc pas trop planté. On arrive tout d'abors dans une portion de code, mais ici on ne va pas s'en occuper. On appuie sur F12 pour sortir du call. On trace par F10 et on arrive ici : 017F:00406D83 8D442438 lea eax, dword ptr [esp+38] 017F:00406D87 6A29 push 00000029 017F:00406D89 50 push eax 017F:00406D8A 68FD030000 push 000003FD 017F:00406D8F 56 push esi 017F:00406D90 FFD7 call edi 017F:00406D92 8D44240C lea eax, dword ptr [esp+0C] 017F:00406D96 50 push eax 017F:00406D97 E894100000 call 00407E30 017F:00406D9C 83C404 add esp, 00000004 017F:00406D9F 8BD8 mov ebx, eax 017F:00406DA1 8D442438 lea eax, dword ptr [esp+38] 017F:00406DA5 50 push eax 017F:00406DA6 E8550F0000 call 00407D00 017F:00406DAB 83C404 add esp, 00000004 017F:00406DAE 8BF8 mov edi, eax 017F:00406DB0 85FF test edi, edi 017F:00406DB2 7537 jnz 00406DEB On suit donc le JUMP par F10 et on arrive la : 017F:00406DEB 3BFB cmp edi, ebx 017F:00406DED 7535 jnz 00406E24 017F:00406DEF 8D44240C lea eax, dword ptr [esp+0C] On s'appercoit donc, que le BON serial se trouve dans EBX, car le soft compare EBX a EDI.. vous vous dites...wai..mais comment on peut en etre sure...??? Il suffit de faire : ?edi => et la sice nous dit "00A65A80" c'est de l'hexa...il nous donne d'ailleur la valeur en decimal juste a cote.."0010902144", "au miracle !!" mon serial Bidon...on fait donc la meme chose pour ebx. ?ebx => on obtient "003A83D3", soit 0003834835 notre VRAI serial ! La on est tout JoYcE car on vient de faire notre premier crack avec Soft Ice... ================================================================================================ -|- D. End ================================================================================================ Voila, franchement c'est le plus simple des soft ke j'ai trouve a cracker sour Sice. Mais je le trouve excelent pour debuter. Il vous donne une vision globale de l'aspect du cracking. Vous aurez donc remarkez que Sice nous permet de gagner pas mal de temps, plus besoin de se casser la tete dans les STRING DATA REFERENCE, il suffit de bien placer son BPX et le tour est joué. Dans un prochain tutorial nous aborderons un aspect + technique du cracking, 'l'unpacking', d'ici là je me serais peut etre soulé la d'jeule une bonne quinzaine de fois pour oublier les tas de conneries que j'ai pu vous dire. ciao _lunatic_ ================================================================================================ -|- E. Greetings ================================================================================================ #old-school . nectarine. !