Ah l'hiver!Avec cette saison vient le temps de rester
tranquillement chez soi mais aussi celui de cracker les derniers
partagiciels =>shareware! sorti.Aujourd'hui nous allons nous attaquer
a une protection dite generaliste,j'ai nomme la protec de Software
by Design.En effet,celle ci possede un schema de protection tres
interessante pour notre apprentissage du cracking.
Bien assez parlé !Au boulot!
/*************************************************\
|programme cible: |
|Dllshow disponible sur le site de son |
|auteur:"http://www.gregorybraun.com" |
\*************************************************/
_______________________________________________________________________
oUTILS:
SoftIce (Mon prefere)->un Debugger ou plutot Le debugger!
Windasm pour le Deadlisting
un stylo ->pour noter le code
un cahier ou un papier->il faut bien le noter quelquepart!
Un cerveau ->ca vous l'avez si vous etes en trai de lire ce tut
_______________________________________________________________________
__________________
]===eXPLICATIONS===[:
---------------------
Ceux qui lisent attentivement mes cours auront remarqué que j'ai parle de deadlisting.
Je vais vous expliquer ce que c'est.
Voila en cracking Il existe de nombreuses d'arriver a ses fins mais tout
on au moins un lien avec ses deux approches:
-Le deadlisting
-La livepproach
====================
Dead listing
====================
en deadlisting le cracker fonctionne ainsi:
-il execute le progz et essaie d'en tirer le max de string datas
references(voir tutorial n°2)
-Il desassemble le programme
-Il cherche le ou les string datas repertories
-il imprime les portions de codes interessantes et
crack ca tranquillement.
Generalement,on cherchera un je ou jne apres un cmp
======================
Live approach
======================
La le cracker fonctionne ainsi
-Il demarre le programme.
-il regarde si il y a un moyen de s'enregistrer.
-Avec SoftIce,il pose un point d'arret sur les apis windows.
-Il essaie de trouver la comparaison bon code mauvais code
Nous allons nous nous servir de la live approach pour cracker Dllshow.Bon
si vous avez lu la rubrique Outils vous avez SoftIce.On va d'abord l'installer
()()()()()()()()()()()()
Installation de Softice
()()()()()()()()()()()()
Rien de bien compliqué.Vous avez un setup normal.Au cas Ou vous n'aurez pas de
code,je vous en donne un tout beau,tout frais.
SOftice CODE:1900-0000dd-9b
bon laissez Softice modifiez votre autoexec.bat ou faite le vous meme.Le resultat
sera le meme de toutes façons.Au moment ou il vous demande si vous voulez
redemarrez Windows DITES NON!Puis allez Tranquillement dans le repertoire ou
vous avez installe SofIce.La vous avez un fichier Winice.dat.Editez le.VOus
devriez avoir ça pour cracker correctement
NMI=ON
SIWVIDRANGE=ON
LOWERCASE=OFF
MOUSE=ON <-Vous avez la souris dans windasm
NOLEDS=OFF <-verrouillage numerique
NOPAGE=OFF
PENTIUM=ON <-vous avez un pentium
THREADP=ON
VERBOSE=ON
PHYSMB=64 <-Memoire ram
SYM=1024
HST=256
DRAWSIZE=2048
TRA=92
INIT="wr;CODE ON ;WR ;LINES 50 ;WC 25 ;WD 10 ; SET FONT 2;fAULTS OFF;wf;x "<-options
de Softice
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="^S 0 L FFFFFFFF 8B,CA,F3,A6,74,01,9F,92,8D,5E,08;"
AF4="^S 0 L FFFFFFFF 56,57,8B,7C,24,10,8B,74,24,0C,8B,4C,24,14;"
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;"
MACRO Deax="e eax"
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
EXP=c:\windows\system\msvbvm50.dll
EXP=c:\windows\system\msvbvm60.dll
EXP=c:\outils\winace\ace.dll
EXP=c:\outils\winace\acetools.dl
exp=c:\windows\system\msvcrt.dll
exp=c:\windows\system\msvcrt40.dll
exp=c:\windows\system\msvrct20.dll
NOLEDS=Off
WDMEXPORTS=OFF
MONITOR=0
; WINICE.DAT
; (SIW95\WINICE.DAT)
; for use with SoftICE Version 3.2 (Windows 95)
; 14 July 1997
; *************************************************************************
; 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
Bon alors on cracke OUi ou NON!!
(Choeur:Oui!!
Bon on y va
Executez le programme.Vous avez un nagscreen de 3s ou vous pouvez lire
Unregistered 30 days trial version.Puis allez dans le menu Help,puis register.
Ah voila enfin notre cible;
Etudions la vite
-3 Champs(user name,organization,registration)
-seule les caracteres numeriques sont acceptés dans le champ registration
Ah nickel!
Bon alors pour crackez cette cible on va faire comme ça
-ctrl-D pour demarrez SoftIce
-On va tapez ça:bpx getdlgitemtexta`
-puis F5
-On remplis les champs
pour moi ce sera
User name:aCiD E+HYL!C
Organization:C0nspyraCy
registration:11223344
-on appuie sur entrée et la BREAK dans softIce
-On arrive la
USERS32!Getdlgitemtexta
015F:BFF51743 mov cl,A1
015F:BFF51745 push ebp
Etc...
-On fait 3 fois F5 (pour arriver au 3eme champs)
-on arrive la:(j'ai mis quelques commentaires)
:0040D6E5 8D442430 lea eax, dword ptr [esp+30]<-Met l'adresse effective de votre compagnie
:0040D6E9 6800010000 push 00000100
:0040D6EE 50 push eax
* Possible Ref to Menu: MenuID_03E8, Item: "Properties"
|
* Possible Reference to Dialog: DialogID_0DAC, CONTROL_ID:0067, ""
|
* Possible Reference to String Resource ID=00103: "Show information about the currently selected process"
|
:0040D6EF 6A67 push 00000067
:0040D6F1 55 push ebp
:0040D6F2 E879820000 call 00415970
:0040D6F7 8D4C2440 lea ecx, dword ptr [esp+40]<-Charge l'adresse de
votre nom
:0040D6FB 51 push ecx
:0040D6FC E8E5980000 call 00416FE6 <=call ou se fait la fabrication
de votre bon serial
:0040D701 56 push esi
:0040D702 8BD8 mov ebx, eax
:0040D704 E8F7810000 call 00415900<=ou celui la
:0040D709 83C438 add esp, 00000038
:0040D70C 3D92A71901 cmp eax, 0119A792<=tiens une comparaison entre
eax et 18458514
:0040D711 7518 jne 0040D72B<=saute si pas egal a 0
* Reference To: KERNEL32.lstrcpyA, Ord:0302h<=api qui copie un string dans le
buffer
|
:0040D713 8B1D28E14100 mov ebx, dword ptr [0041E128]
* Possible StringData Ref from Data Obj ->"Gregory Braun"
|
:0040D719 68001F4200 push 00421F00
:0040D71E 56 push esi
:0040D71F FFD3 call ebx
* Possible StringData Ref from Data Obj ->"Software Design"
|
:0040D721 68F01E4200 push 00421EF0
:0040D726 57 push edi
:0040D727 FFD3 call ebx
:0040D729 EB07 jmp 0040D732
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D711(C)
|
:0040D72B 3D3CCE5F0D cmp eax, 0D5FCE3C <=tiens un comparaison entre et 224382524
:0040D730 750C jne 0040D73E<=saute si pas egal a 0
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D729(U)
|
:0040D732 57 push edi
:0040D733 56 push esi
:0040D734 E8677C0000 call 004153A0
:0040D739 83C408 add esp, 00000008
:0040D73C 8BD8 mov ebx, eax
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040D730(C)
|
:0040D73E 57 push edi
:0040D73F 56 push esi
:0040D740 E85B7C0000 call 004153A0<=et si c'etait celui la
:0040D745 83C408 add esp, 00000008
:0040D748 3BD8 cmp ebx, eax <=compare ebx et eax
Bon on a bien avancé!En effet ces comparaisons sont la pour quelquechose
de precis.Et Oui!
Le programme va ici comparer Votre MAUVAIS CODE avec LE BON CODE!!!
Vous ne me croyez pas et beh on va voir :à)
(parentheses =>Sous softice pour voir ce qu'un nombre donne en decimal
tapez (on appelle X la chose cherché)
? X
arrivé ici :0040D748 3BD8 cmp ebx, eax <=compare ebx et eax
tapez ? eax
vous aurez ça:
'votre code en hexa' 'votre code en decimal' 'sa representation en ASCII'
Si par contre vous voulez voir ce que le registre contient reéllement faites ca
d X
vous aurez quelque chose qui s'affichera dans la fenetre data fin de la parenthese=)
Pour moi je trouverais ça
00AB4130 0011223344 "½A0"
Je vous le donne en mille que contient ebx =====>"!!!LE BON CODE!!!"
pour moi ce sera
00dfbea4a9 3753813161 "le code en ascii"
*********************
c0NCLUSI0N:
*********************
Ah C'est magnifique de rentrer le bon code vous trouvez pas ?La prochaine fois
on attaquera Winzip x.x et ca sera pas de la tarte.
==============================GReeTZ===================================
Frog's print(il m'a tout appris),et tous les gens qui touchent de pres ou de
loin a la scene française,La French Underground
=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=)=
=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=(=
!!¡¡Cracking is @n aRT,il n'est pas reserve a tout le¡¡!!
!!¡¡monde¡¡!!
le 10/11/2000
MInoTHauR