Karpoff Spanish Tutor

Programa:

dIRC v1.2


 

PROTECCION: Empacado & Serial
Descripcion: Programa de chateo similar al popular mIRC
Dificultad: Intermedio
DOWNLOAD: http://www.dragonmount.net
Herramientas: SoftIce, ProcDump
CRACKER: Mr Burns   FECHA: 10/10/2000

 

 introduccion

os saludo de nuevo a todos de nuevo en este nuevo tutorial sobre cracking. esta vez he decidido hacer un tutorial de un nivel superior al anterior ya que este programa (el dirc v1.2 para los despistados ;-)) esta empacado con el famoso compresor aspack. espero que este tutorial os aclare un poco más la ideas sobre los programas empacados :-)

despues de tanto rollo creo que deberiamos ir a por él

 

 al atake

para empezar instalamos el programa con tranquilidad sabiendo que es shareware y que nos pedira una puta clave :-)

una vez instalado abrimos el programa y lo estudiamos un poco (joder!! que buena pinta tiene el condenado es chulo!!! habra que probarlo en vez del mirc) y miramos en el menu: help/purchase... y observamos que nos pide el nombre, compañía y número de serie. bueno pues vamos a introducir los datos:

nombre: mr_burns

company: mordred

serial: 1234567890

le damos al "ok" y.... ¿? pero si no pasa nada!!! volvemos al menu help/about dirc y nos pone algo asi como que no estamos registrados y que nos quedan 29 dias de disfrute del programa. "caguen..." pues a mi me ha molado mazo y me lo quiero quedar asi que lo voy a crackear!!


empezare metiendole mano con el win32dasm y... joe!! que se me ha colgado!! bueno no pasa nada lo voy a cargar en el loader sel sofice (sice) y... pues tp tira!!! pufff!! esto me hace sospechar que este programa esta empakado!!!


bueno para ello usare mi querido procdump. entro en el pe editor y abro el dirc.exe, entro en sections y observo dos cosas:

1º en .text (caracteristics) aparece c0000040. eso significa que el programa no es ejecutable!!! y que yo sepa deberia tenet e0000020 (ejecutable). bueno, pues eso, lo cambiamos.

2º aparece una cadena por ahi que pone aspack. eso a mi me suena a compresor!!


despues de esto lo que voy a hacer es descomprimir el programa con el aspack, la ultima version porque este programa es nuevo, y... no tira!!! eso quiere decir que no tenemos esa version. lo que significa que habra que hacerlo a mano (jejeje esto se pone interesante asi que me voy a por una copilla :-))

----------desempacar el fichero con el softice----------

corremos el loader del sice y vemos que ahora si! que tiras esas ruletitas :-) entramos y vemos que la direccion es un poco rara (5a1001) y observamos:

pushad

call 00xxxxxx

jmp 00xxxxxx

[...]

popad

esta es una tipica estructura de un fichero empacado y/ó encriptado. lo que nosotros estamos buscando es popad ya que despues de eso el programa ya esta desempacado. asi que adelante, a tipear f10 como cerdos hasta encontrarlo (lo que yo os aconsejo es que cuando veais un salto que os lleve hacia arriba introduzcais "g address siguiente al salto" para que no tengais que tragaros todos los bucles que hay). despues de muchos cuelgues del sice y de muchos f10 encontramos un popad en la dirección 5a14f3. lo que ahora haremos es s 5a14f3 l ffffff 61 (61 = popad en hexadecimal) y apretamos f5. si sales del sice y entras en el programa aleluya!!! la instruccion encontrada es la correcta, en caso contrario, deberas buscar otro popad y realizar la misma operacion :-(


bueno coninuamos y vemos que despues de varios tipeos de f10 aparece un ret en 5a1503 y que ese ret nos lleva a otra dirrecion la cual parece mas normal (4b0332 <-- anota esta dirección!!!) . bueno, vamos bien, ahora debemos volver a ese ret y tipear: a 5a1503 y jmp eip y despues f5. joe!! ha salido del sice y no ocurre nada!! lo que en realidad ha pasado es que el programa ha sido cargado y desempacado y corrido en memoria gracias a ese jmp eip que genera un bucle infinito que nos ayuda a desempacar el fichero :-)


lo que ahora hacemos es entrar de nuevo en el procdump y en la lista inicial vemos que aparece el path donde teneis instalado el dirc, bueno eso es que el programa esta cargado en memoria asi que vamos aguardarlo, para ello lo seleccionamos con el boton derecho y seleccionamos "dump (full)" poniendo como name "dirc_mr.exe" (por ejemplo)una vez guardado lo descargamos de la memoria con la opcion "kill". despues cargamos de nuevo con "pe editor" el programa "dirc_mr.exe" (el cual esta ya desempacado) y observamos "entry point" e "image size". lo que ahora debemos hacer es tomar la dirección a la que nos llevaba el ultimo ret: 4b0332 (recordad que os dije que la apuntarais) y el valor de "image size" y restarlo: 4b0332 - 400000 = 000b0332. esta ultima cifra debemos sutituirla por el "entry point" para que el programa desempacado pueda funcionar ya que si corrieramos el fichero sin hacer esto cada vez que lo corrieramos se quedaria cargado en memoria.

----------detectar el numero de serie----------

una vez desensamblado el fichero (siempre nos referiremos al desempacado dirc_mr.exe) corremos el fichero e introducimos los datos de nuevo:

nombre: mr_burns

company: mordred

serial: 1234567890

antes de apretar ok entramos en el sice (control + d) y situamos un bpx getwindowtexta, salimos, le damos al ok y ... boommm! saltamos al sice. una vez en el sice hemos de apretar f5 2 veces ya que el bpx es para detectar la lectura de texto en un textobox y en este caso habia tres (nombre, compañia y serial). despues de eso salimos de unos cuantos call hasta legar a 463905 donde veremos:

:00463900 e8d1330600 call 004c6cd6 <-- llamada a la que llegamos
:00463905 68e8030000 push 000003e8
:0046390a ff15a0c25000 call dword ptr [0050c2a0] <-- llamada de sleep (la verdad es que npi de para que lo hace!!!)
:00463910 8b8624010000 mov eax, dword ptr [esi+00000124] <-- mueve a eax el nombre
:00463916 8dbe24010000 lea edi, dword ptr [esi+00000124]
:0046391c 6860dd5400 push 0054dd60
:00463921 50 push eax <-- lo guarda
:00463922 e8f7bd0400 call 004af71e<-- comprueba la longitud (creo)
:00463927 83c408 add esp, 00000008
:0046392a 85c0 test eax, eax <-- testea el nombre
:0046392c 7418 je 00463946 <-- si es cero da error
:0046392e 8b861c010000 mov eax, dword ptr [esi+0000011c] <-- introduce en eax el serial invalido
:00463934 6860dd5400 push 0054dd60
:00463939 50 push eax <-- lo guarda
:0046393a e8dfbd0400 call 004af71e
:0046393f 83c408 add esp, 00000008
:00463942 85c0 test eax, eax <-- testea el serial invalido
:00463944 7509 jne 0046394f <-- si no es igual salta


* referenced by a (u)nconditional or (c)onditional jump at address:
|:00463944(c)
|
:0046394f 8b07 mov eax, dword ptr [edi] <-- mueve a eax el nombre
:00463951 50 push eax <-- lo guarda
:00463952 8d442418 lea eax, dword ptr [esp+18]
:00463956 50 push eax
:00463957 e834c4feff call 0044fd90 <-- llamada que genera el serial!
:0046395c 8b8e1c010000 mov ecx, dword ptr [esi+0000011c] <-- mueve a ecx el serial invalido
:00463962 8b00 mov eax, dword ptr [eax] <-- mueve a eax el serial verdadero!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
:00463964 8dae1c010000 lea ebp, dword ptr [esi+0000011c] <-- ya no digo mas porque no nos interesa :-)
:0046396a 51 push ecx
:0046396b 50 push eax


cuando lleguemos a la direccion 463962 introducimos d eax y... tachan!!! en la parte superior izquierda tenemos un numero con guiones que parece un serial!!!

bueno pues lo probamos y nos aparece una "inocente" ventanita diciendo "thank you for purchasing dirc!" y ala yas ta registrado el programilla para nuestro disfrute xddddd

despedidas y demas :-(

espero que os haya servido de gran ayuda este tutorial. la mayoria de los programas enpacados con el aspack se puedes "petar" de esta manera pero eso ya lo ireis averiguando vosotros a lo largo del tiempo ;-)


si encontrais algun problema en el tutorial fallo gordo etc por favor hacedmelo saber y sera corregido.


si por algun casual quereis hablar conmigo, podeis encontrarme en:

hispano: #crackers #ingenieria_inversa con el nick de "mr_burns"
efnet: #tntcrackers #wkt con el nick de "[mordred]"

hasta el siguiente tutorial!!!

 

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