Karpoff Spanish Tutor

Programa:

Visual Labels v. 3.2f


 

PROTECCION: Serial
Descripcion: Para crear etiquetas
Dificultad: Principiante
DOWNLOAD: www.rkssoftware.com
Herramientas: Softice, W32dasm
CRACKER: Dek_Oin   FECHA: 10/10/2000

 

 introduccion

saludos a todos como les va?. tan solo una hora después de terminar el manual anterior, escribo este. está relacionado también con el sice ya que encontraremos un número de registro válido para este programa. les dije que se olvidaran de cambiar simples saltitos fáciles de encontrar, pero no les dije que se olvidaran de el w32dasm, nos ayudará mucho.

 

 al atake

otra protección horrible. la verdad es que da lástima. pero bueno, sirve para practicar un poco verdad?. conoceremos (si no pensaron nunca sobre esto), la relación entre el w32dasm y el sice, que realmente facilita mucho las cosas a la hora de encontrar números de serie válidos. este programa sirve para crear etiquetas, a mi personalmente no me gusta mucho, pero no puedo opinar si lo único que hago con estos programas es bajarlos, crackearlos, tutorial, guardar el instalador por si surge cualquier duda y luego borrar los programas. les puede parecer un poco "monótono" pero así se aprende rápido, ya verán.


    vamos a la toma de contacto con el programa. lo ejecutamos, hmmm, una nag:

cracki1.gif (11925 bytes)

que asco!!!!, no hay nada peor que una nag cada vez que iniciamos un programa!!!!, las odio!!!. y todavía miren el precio de este programa!!!, 20 dólares, que caro. vamos a ver que podemos hacer para eliminarlas. hagan clic en "enter serial number" y rellenen la información. yo lo haré como se muestra en la imagen:

cracki2.gif (4376 bytes)

bien, ponemos ok y como era de esperar:

cracki3.gif (7956 bytes)

pero que nag más estpupida!!!!, nunca vi una que nos diera tanta información sobre el serial. "make sure that the serial number starts with rks-" como pueden ser tan estúpidos?. de todas maneras no importa. desensamblemos con el w32dasm y busquemos en las strings references algo como "invalid registration code" o algo que tenga la palabra invalid. 

cracki4.gif (2308 bytes)

aquí está lo que buscábamos. hacemos doble clic muchas veces para ver cuantas referencias hay sobre el y hay muchas, no las conté pero cualquiera de lo mismo. miren lo que verán el la primera:

 

:004928a5 8b88d0010000             mov ecx, dword ptr [eax+000001d0]
:004928ab 8b55f8                    mov edx, dword ptr [ebp-08]
:004928ae 8b45fc                    mov eax, dword ptr [ebp-04]
:004928b1 e826edffff                call 004915dc
:004928b6 84c0                      test al, al
:004928b8 7412                      je 004928cc<--------------dirección llamada de todos lados
:004928ba 8b45f4                    mov eax, dword ptr [ebp-0c]
:004928bd c7802801000001000000     mov dword ptr [ebx+00000128], 00000001
:004928c7 e91b010000                jmp 004929e7

* referenced by a (u)nconditional or (c)onditional jump at address:
|:
004928b8(c)<--------------------------error llamado desde un salto en la dirección 004928b8
|
:004928cc 55                        push ebp
:004928cd e826fdffff                call 004925f8
:004928d2 59                        pop ecx
:004928d3 84c0                      test al, al
:004928d5 741f                      je 004928f6
:004928d7 6a00                      push 00000000

* reference to: user32.messagebeep, ord:0000h
|
:004928d9 e8422bf7ff                call 00405420
:004928de 66b93000                  mov cx, 0030

* possible stringdata ref from code obj ->"product registration"
|
:004928e2 ba302a4900                mov edx, 00492a30

* possible stringdata ref from code obj ->"invalid serial number or name."
|
:004928e7 b8502a4900                mov eax, 00492a50
:004928ec e873fcffff                call 00492564
:004928f1 e9f1000000                jmp 004929e7

fácil por ahora. vean el salto de la dirección 004928cc. esto es lo que tenían en común todas las referencias que habían sobre el mensaje de error, que todas se dirigían a este salto. si salta nos muestra el mensaje de error. que podríamos hacer, parchearlo con el editor hexadecimal?, no!!!. si lo parcheamos, lo único que estaríamos haciendo es que el programa muestre siempre la ventanita de "gracias por registrarse", al iniciarlo de nuevo, el programa no estará registrado. vamos a conseguir un número de serie válido con el sice. ¿si vamos a usar el sice, para que desensamblamos e hicimos todo esto?. ahora tenemos una gran ventaja, ya sabemos donde se realiza la comprobación del serial, y en el sice todo será más fácil. es más, no haremos casi nada, la mayor parte la hicimos en el w32dasm.

        lo que haremos será poner un bpx en la dirección de memoria del salto. la anotamos. haremos uso de una importantísima parte del sice. el symbol loader. el symbol loader sirve para cargar el programa desde sice en modo de depuración. así podrás trazar el programa paso a paso desde la primera instrucción. es importante en depuración de programas y para descompresión o desencriptación manual de éstos.

        abrimos el symbol loader, ponemos file/open module y seleccionamos el ejecutable del visual labels (vi.exe). luego pulsamos en cracki5.gif (979 bytes) y se mostrará un mensaje de un error. pónganle si y saltaran directo al sice.

        luego ponemos el bpx en la dirección de memoria (bpx 004928b8 en mi caso) y pulsamos f5. verán que el programa está ejecutándose. ponemos nuestros datos (los míos son nombre: dek_oin serial: 55555) y luego pulsamos ok. en el sice!!!. apareceremos aquí:

:00492897 8b80b0010000              mov eax, dword ptr [eax+000001b0]
:0049289d e87227f8ff                call 00415014
<----llamada a la rutina de comprobación
:004928a2 8b45f4                    mov eax, dword ptr [ebp-0c]
:004928a5 8b88d0010000              mov ecx, dword ptr [eax+000001d0]
:004928ab 8b55f8                    mov edx, dword ptr [ebp-08]
<-------edx contiene nuestros datos
:004928ae 8b45fc                    mov eax, dword ptr [ebp-04]
:004928b1 e826edffff                call 004915dc

:004928b6 84c0                       test al, al                                 
:004928b8 7412                      jz 004928cc
<----------------------aquí aparecemos
:004928ba 8b45f4                    mov eax, dword ptr [ebp-0c]
:004928bd c7802801000001000000      mov dword ptr [ebx+00000128], 00000001
:004928c7 e91b010000                jmp 004929e7
:004928cc 55                        push ebp
:004928cd e826fdffff                call 004925f8

creo que la cosa está clara. estamos en el mismo lugar que habíamos visto en el w32dasm. así que tenemos que ir viendo el contenido de los registros. d eax, nada interesante, d ebx, nada, d ecx, nada, d edx, si!!!!, ahí están nuestros datos. lo que me llamó la atención es que se generan 2 números de serie válidos para cada nombre. y los dos funcionan bien. ¿qué raro no?. pienso que los programadores de rks tendrían que empeñarse más en sus protecciones y lo peor, no deberían decirnos que el serial empieza con rks y que luego tiene un - !!!!. 

 

despedida

aquí culmina mi séptimo manual que no es poco. me despido pero no sin antes dar las gracias al grupo k-for, por invitarme a ser miembro y por su apoyo. gracias a profesor x por su fabulosa compilación y por toda su ayuda. gracias también a karpoff, por su gran apoyo y sus consejos, y a txeli, por su apoyo moral y por pasarme algunos programas interesantes. y finalmente gracias a ustedes por leer mi manual.

y este fue el principio,

a s t a l a v i s t a


página oficial del grupo k-for: http://pagina.de/kfor
mi dirección de e-mail: dek_oin@hotmail.com

 

 

karpoff spanish tutor: pagina dedicada a la divulgacion de informacion en castellano, sobre ingenieria inversa y programacion. email "colabora con tus proyectos"
www.000webhost.com