ESTUDIO COLECTIVO DE DESPROTECCIONES
Última Actualizacion: 25/10/2001

Programa Quake 3 W95 / W98 / NT
Descripción  Juego en primera persona
Tipo CD-Check 
Tipo de Tutorial []Original, []Adaptación, []Aplicación, [X]Traducción
Url http://www.quake3.com
Protección  CD Check
Dificultad 1) Principiante, 2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista
Herramientas W32dasm v8.9
Objetivo No usar el CD
Cracker r!sc : Traducción por DeeSe - [DS]
Fecha 08 de Agosto de 2000

INTRODUCCION
 Aqui tenemos una traduccion del Tutorial de r!sc para crackear el quake 3 cdcheck. Espero que os vaya bien. Lo he  hecho lo mejor que he podido. Y creo que no hay ningun error. Si encuentras alguno, hazmelo saber. Venga. Lets Go  Cracking!
AL ATAQUE
blah blah blah. q3 cd check aburrido? ja, me hace reir (lo hace, en serio)

wdasm quake3.exe . . buscar en import \ getdrivetypea . . saluda al CD Check

:004400C0 81EC84000000            sub esp, 00000084
:004400C6 56                                 push esi

* Reference To: KERNEL32.GetDriveTypeA, Ord:0104h
                                  
:004400C7 8B3590104B00            mov esi, dword ptr [004B1090]
:004400CD C64424053A               mov [esp+05], 3A      ; ':'
:004400D2 C64424065C                mov [esp+06], 5C      ; '\'
:004400D7 C644240700                 mov [esp+07], 00      ;)
:004400DC C644240463                mov [esp+04], 63      ; en este punto, [esp+4] == 'c:\',0

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
:00440141(C)

:004400E1 8D442404                     lea eax, dword ptr [esp+04]
:004400E5 50                                  push eax                         ; push 'c:\',0
:004400E6 FFD6                             call esi                            ; llama a getdrivetypea
:004400E8 83F805                          cmp eax, 00000005       ; Es un CD ROm?
:004400EB 7548                              jne 00440135                ;  No, mira las demas else....

* Possible StringData Ref from Data Obj ->"quake3"
                                  
:004400ED 68A81A4C00               push 004C1AA8             ;  push 'quake3',0
:004400F2 8D4C2408                    lea ecx, dword ptr [esp+08]
:004400F6 51                                  push ecx                          ; push 'c:\',0 
                                                                                                ; o la letra que sea tu cd-rom
* Possible StringData Ref from Data Obj ->"%s%s"    ;se usa en el formato de cadenas. string/string
                                  
:004400F7 68088B4B00                 push 004B8B08
:004400FC 68F0895C00                push 005C89F0
:00440101 E899EE0500                 call 0049EF9F                  ; despues de esto, tenemos 'c:\quake3',0 ?

* Possible StringData Ref from Data Obj ->"quake3.exe"
                                  
:00440106 689C1A4C00                push 004C1A9C                    ; push 'quake3.exe',0
:0044010B 68F0895C00                 push 005C89F0
:00440110 8D542420                      lea edx, dword ptr [esp+20]   ; es nuestra cadena formateada ?

* Possible StringData Ref from Data Obj ->"%s\%s"   ; string '\' string
                                  
:00440114 68941A4C00                  push 004C1A94
:00440119 52                                   push edx
:0044011A E880EE0500                 call 0049EF9F     ; despues de esto, 'c:\quake3\quake3.exe',0 ?
:0044011F 8D442428                      lea eax, dword ptr [esp+28]

* Possible StringData Ref from Data Obj ->"r"       ; read \ readonly .. ..
                                  
:00440123 68901A4C00                  push 004C1A90
:00440128 50                                   push eax
:00440129 E877F90500                  call 0049FAA5          ; leer\cargar\hacer sth con el archivo
:0044012E 83C428                          add esp, 00000028   ; fija la pila con todas las cademas formateadas
:00440131 85C0                              test eax, eax               ; eax!=0 == buen chico
:00440133 7518                               jne 0044014D
 

quake3 es un poco puta . . y tiene 2 de estas verificaciones . . la siguiente verificacion es ejecutada primero,
pero es 100% igual a la otra . . si forzamos a que piense que quake3.exe esta cargado.
obtendremos un crash en 49FA00 o algo asi. asi que . vamos a abrir quake3.exe

primero apagamos . .  donde esta puesta la letra de la unidad 'c:\',0. y mira si es un cdrom, y coje el directorio actual.
y si es un Cd-Rom para el checkeo ..

'.\',0,0 . . :d

edita la primera parte del codigo para que se parezca a esta .. (y el otro codigo de cd check ,  @00440170)

:004400C7 8B3590104B00            mov esi, dword ptr [004B1090]
:004400CD C64424055C              mov [esp+05], 5C      ; '\'
:004400D2 C644240600                mov [esp+06], 00
:004400D7 C644240700                mov [esp+07], 00
:004400DC C64424042E               mov [esp+04], 2E      ; en este punto, [esp+4] == '.\',0,0

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
:00440141(C)

:004400E1 8D442404                    lea eax, dword ptr [esp+04]
:004400E5 50                                 push eax          ; push '.\',0,0
:004400E6 FFD6                            call esi          ; llama a getdrivetypea
:004400E8 83F805                         cmp eax, 00000005 ;no es un cd rom. pero no hay problema
:004400EB 7500                             jne 004401ED      ; mata el salto, efectivamente nopealo (NOP)

ahora hemos de joder el codigo de formato. no queremos el directorio '.\quake3' a que no?

solo mata la jodida llamada.

:004400ED 68A81A4C00              push 004C1AA8     ; push 'quake3',0
:004400F2 8D4C2408                   lea ecx, dword ptr [esp+08]
:004400F6 51                                 push ecx          ; push '.\',0,0
                                                    
* Possible StringData Ref from Data Obj ->"%s%s"    ; used in string formatting . string/string
                                  
:004400F7 68088B4B00              push 004B8B08
:004400FC 68F0895C00              push 005C89F0
:00440101 B899EE0500              mov eax, 0005EE99 ; camino cruel para matar la llamadal . es B8 ..
                                                    ; pero por lo menos no tenemos '.\quake3',0  ahora

ok, 90% fixed. Ahora la siguiente parte del formato de cadenas . . el formato es '%s\%s' y si se ejecuta
nosotros tenemos que acabarla con '.\\quake3.exe',0 . .  y una '\' extra que es malo . .
buscamos como texto '%s\%s',0 en quake3.exe . . hazlo 2 veces. pero una de estas esta muy cerca de 'quake3'
& 'quake3.exe'. Tenemos que adivinar cual es el correcto. .. 'zen cracking'

%s\%s...quake3.exe..quake3.. yaddayaddayadda .   cambialo a  '%s%s',0 . . i.e. quita la '\' .

excelente . ahora .. tenemos que joder este codigo ( y su espejo..)

* Possible StringData Ref from Data Obj ->"quake3.exe"
                                  
:00440106 689C1A4C00              push 004C1A9C                   ; push 'quake3.exe',0
:0044010B 68F0895C00               push 005C89F0
:00440110 8D542420                   lea edx, dword ptr [esp+20]   ; nuestra cadena formateada anteriormente?
                                                                                                    ; '.\',0  hehehe

* Possible StringData Ref from Data Obj ->"%s%s"   ; stringstring
                                  
:00440114 68941A4C00               push 004C1A94
:00440119 52                                push edx
:0044011A E880EE0500              call 0049EF9F     ; despues esto, '.\quake3.exe',0

boom! haha . estupido tutorial . pero quake3 funciona ahora sin el cd! (si has parcheado los 2 check . .. )

entonces que hemos aprendido?  q3 checkea si esta el propio exe en el cd rom .. .
'x:\quake3\quake3.exe',0

si matamos el cd check, peta. pero, le hechamos una mirada al disco duro buscando este 'importante' fichero . .
por lo que, tendremos que parchearlo para k busque '.\quake3.exe',0 que se puede encontrar muy facilmente,
por que si no esta instalado, en el directorio actual, como quieres jugar!?

r!sc .. http://csir.cjb.net

eVC/dVN rtl 2k !

 Traducido por DS                                                                                                     DeeSe - ©TeaM HeaT 16, 2000
 para mas informacion: deese2k@yahoo.es
 

[ Entrada | Documentos Genéricos | WkT! Web Site ]
[ Todo el ECD | x Tipo de Protección | x Fecha de Publicación | x Orden Alfabético ]
(c) Whiskey Kon Tekila [WkT!] - The Original Spanish Reversers.
Si necesitas contactar con
nosotros , lee esto antes e infórmate de cómo puedes ayudarnos