|
|
 |
ESTUDIO COLECTIVO DE
DESPROTECCIONES
Última
Actualizacion: 26/01/2001
|
 | |
Programa |
NEED FOR SPEED 3 |
W95 / W98 / NT |
Descripción |
EXCELENTE Juego de
Coches. Sobre todo si dispones de aceleradora 3D. Si te
encantan este tipo de juegos, te recomiendo que te lo
compres. No te arrepentiras. |
Tipo
|
Juego de Coches |
Tipo de
Tutorial |
[X]Original,
[]Adaptación, []Aplicación, []Traducción |
Url
|
http://www.nfs3.com/ |
Protección |
Cd-Check. Obliga a
poner el Cd para jugar. |
Dificultad |
1) Principiante,
2) Amateur, 3) Aficionado, 4) Profesional, 5) Especialista
|
Herramientas |
WDasm32 v8.9, Ultraedit
o similar |
Objetivo |
Jugar sin
CD. |
Cracker |
Mr.WhiTe [WkT!]
|
Grupo |
Whiskey Kon Tekila |
Fecha |
7 de Junio de 1999
|
INTRODUCCION |
Hace tiempo que tengo este
EXCELENTE juego y hoy me ha dado por jugar con él pero de otra
manera. ;o) El programa obliga a tener que poner el CdRom para
jugar. Así que vamos a eliminar el Cd-Check.
|
AL ATAQUE |
Una vez instalado el juego en su
version completa, lo primero es ver cómo reacciona cuando
intentamos jugar sin el CD.
Ummm, una bonita nag que
nos informa "Para jugar al NEED FOR SPEED 3 Necesita tener el
CD del juego en la unidad de CD-ROM ". Vaya, esto promete :o)
Utilizaremos nuestro queridisimo "death listing" o listado
muerto y bucearemos en el código una vez desensamblado con el
Wdasm 8.9. :o)
Bien... vamos al boton de string
references y buscamos la dichosa frasecita. :o( sniff, no
sale!! era demasiado facil ¿no? (en realidad lo es, ya lo
veras) ¿y ahora que hacemos? no podemos localizar la
asquerosa nag !! ¿Que tal si buscamos en las "Imported
Functions"? :o) Enseguida localizamos la tipica funcion que se
utiliza en estos casos: "GetDriveTypeA". Estupendo, hacemos
doble click en GetDriveTypeA y el W32Dasm nos lleva al
siguiente trozo de codigo: * Referenced by a CALL at Addresses:
|:004B635B , :004B63BC
|
:004F9410 51 push ecx
:004F9411 52 push edx
:004F9412 56 push esi
:004F9413 57 push edi
:004F9414 83EC04 sub esp, 00000004
:004F9417 89C2 mov edx, eax
* Possible StringData Ref from Data Obj ->"A:\"
|
:004F9419 BE30D95400 mov esi, 0054D930
:004F941E 89E7 mov edi, esp
:004F9420 57 push edi
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004F9437(C)
|
:004F9421 8A06 mov al, byte ptr [esi]
:004F9423 8807 mov byte ptr [edi], al
:004F9425 3C00 cmp al, 00
:004F9427 7410 je 004F9439
:004F9429 8A4601 mov al, byte ptr [esi+01]
:004F942C 83C602 add esi, 00000002
:004F942F 884701 mov byte ptr [edi+01], al
:004F9432 83C702 add edi, 00000002
:004F9435 3C00 cmp al, 00
:004F9437 75E8 jne 004F9421
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004F9427(C)
|
:004F9439 5F pop edi
:004F943A 001424 add byte ptr [esp], dl
:004F943D 89E0 mov eax, esp
:004F943F 50 push eax
* Reference To: KERNEL32.GetDriveTypeA, Ord:0025h
|
:004F9440 2EFF1518455300 Call dword ptr cs:[00534518] <-- Aparecemos aqui
:004F9447 83F805 cmp eax, 00000005
:004F944A 7515 jne 004F9461
:004F944C B801000000 mov eax, 00000001
:004F9451 83C404 add esp, 00000004
:004F9454 5F pop edi
:004F9455 5E pop esi
:004F9456 5A pop edx
:004F9457 59 pop ecx
:004F9458 8D8000000000 lea eax, dword ptr [eax+00000000]
:004F945E 8BD2 mov edx, edx
:004F9460 C3
Si miramos un poco mas arriba veremos que ese
trozo de codigo es llamado desde * Referenced by a CALL at
Addresses: |:004B635B , :004B63BC Vamos a ver que hay
en :004B635B * Possible StringData Ref from Data Obj ->"install.win" <-- ¿Que coño tendra este archivo?
|
:004B633B BA30FE5300 mov edx, 0053FE30
:004B6340 8D85C4FEFFFF lea eax, dword ptr [ebp+FFFFFEC4]
:004B6346 A5 movsd
:004B6347 A5 movsd
:004B6348 66A5 movsw
:004B634A A4 movsb
:004B634B E840300400 call 004F9390
:004B6350 8D85C4FEFFFF lea eax, dword ptr [ebp+FFFFFEC4]
:004B6356 E895300400 call 004F93F0
:004B635B E8B0300400 call 004F9410 <-- Llamada al Codigo Anterior
:004B6360 85C0 test eax, eax
:004B6362 7430 je 004B6394 <-- Ummm, Salto condicional ? :o)
:004B6364 B906000000 mov ecx, 00000006
:004B6369 8D7DDC lea edi, dword ptr [ebp-24]
:004B636C BE94564B00 mov esi, 004B5694
:004B6371 6A30 push 00000030
:004B6373 A1503A7A00 mov eax, dword ptr [007A3A50]
:004B6378 F3 repz
:004B6379 A5 movsd
* Possible StringData Ref from Data Obj ->"Need For Speed 3"
|
:004B637A 683CFE5300 push 0053FE3C
:004B637F 8B5485DC mov edx, dword ptr [ebp+4*eax-24]
:004B6383 52 push edx
:004B6384 6A00 push 00000000
* Reference To: USER32.MessageBoxA, Ord:001Fh <-- Mal rollito SEGURO :o(
|
:004B6386 2EFF1564475300 Call dword ptr cs:[00534764]
:004B638D 31C0 xor eax, eax
:004B638F E870990200 call 004DFD04
Te has fijado en ese salto condicional en
:004B6362 ?? Mosqueante ¿no? :o) y mas abajo una asquerosa
MessageBox !! saltemos a ver donde nos lleva. Bye bye
MessageBox ;o)
Aparecemos aqui:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004B6362(C)
|
:004B6394 E807FFFFFF call 004B62A0
:004B6399 85C0 test eax, eax
:004B639B 755A jne 004B63F7 <-- Otro saltito
:004B639D 31D2 xor edx, edx <-- Esto ya no huele muy bien
:004B639F EB19 jmp 004B63BA
Vamos a seguir el salto de :004B639B jne 004B63F7
Vaya, justo encima hay un MessageBoxA !!! esto tiene buena
pinta. Y que pasa con el otro salto? :004B639F jmp
004B63BA
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004B639F(U)
|
:004B63BA 89D0 mov eax, edx
:004B63BC E84F300400 call 004F9410 <-- Otra vez?
:004B63C1 85C0 test eax, eax
:004B63C3 75DC jne 004B63A1
:004B63C5 EBED jmp 004B63B4
Por aqui mal rollo, volvemos al principio y el
esquema es similar al anterior. Si siguiesemos por aqui
tendriamos que parchear :004B63C3 jne 004B63A1 para evitar ese
sospechoso MessageBoxA que aparece un poco mas abajo, y con
eso tampoco nos aseguramos que sea el buen camino. Pero por
algo hay que apostar ¿no?
Vamos a optar por el primer
salto :o) Cambiaremos: :004B639B 755A jne
004B63F7 Por :004B639B EB5A jmp 004B63F7
Y el otro
cambio que teniamos que hacer: :004B6362 7430 je
004B6394 Por :004B6362 EB30 jmp 004B6394
Para
parchearlo necesitamos saber el offset, asi que en el W32Dasm
nos situamos en la linea en cuestion y lo miramos en la parte
de abajo de la pantalla. Solo necesitamos un editor
hexadecimal para probar nuestros cambios. Sacamos el cd del
NEED FOR SPEED 3 y probamos el juego. Perfecto, parece que
funciona . AAAAAARGG !!! nag!! nag!! ¿ein? "Openhandlea -
OPEN FAILED ON .\GameData\Audio\Pc\show5.map" o algo asin :o[
Pensemos, nos indica la ruta de un archivo. Miramos en
nuestro HD y vemos QUE NO EXISTE ESA CARPETA. ummmmm, que
mosqueooooo. La copiamos? si pero espera..... recuerdas esa
referencia al archivo : * Possible StringData Ref from
Data Obj ->"install.win" Es hora de ver que rayos tiene.
Lo abrimos, sorpresa sorpresa!!!! (tranquilo que no te aparece
la foca esa de antena3) veras algo asi:
spanish
local
.\GameData\
.\GameData\Tracks\
.\GameData\Tracks\Tutor\
.\GameData\CarModel\
.\GameData\Render\pc\
.\GameData\DashHud\
I:\GameData\Audio\pc\ <--- La letra de mi CDROM
.\GameData\Audio\SFX\
.\GameData\Audio\Speech\English\
.\GameData\Audio\Speech\German\
.\GameData\Audio\Speech\French\
.\GameData\Audio\Speech\Spanish\
.\GameData\Audio\Speech\Italian\
.\FeData\art\
.\FeData\text\
.\FeData\text\
.\FeData\save\
.\FeData\stats\
.\FeData\config\
I:\FeData\audio\ <--- umm FeData, este no lo copie al HD
.\FeData\Art\Slides\
.\FeData\Art\Track\
.\FeData\Art\Showcase\
I:\FeData\movies\
.\FeData\stats\prh\
Esta claro, si cambiamos el contenido de el
archivo "install.win" quitando la letra del cdrom "I:" y
ponemos "." nos buscara los archivos necesarios en nuestro HD.
:o) Pues caña. Probamos..... ummmmm ¡¡ PERFECTO!!! Ya
puestos vamos a jugar una partidilla jejeje. Seleccionamos
persecucion con "El Niño" (Tecleas ELNINO en la pantalla
inicial y te sale) y A QUEMAR RUEDAS !!!!
Realmente me
esperaba una proteccion mas currada en este EXCELENTE juego.
(Repito por si no ha quedado claro que me encanta)
Los chicos de Electronic Arts deberian
leerse algunos textos de Ingenieria Inversa y aplicarse el
cuento.
Por cierto, ¿te he dicho ya que este
juego se sale y que es una buena opcion de compra? :o) |
[ 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
| | | |
|
|