


                     -+-| DisidentS Hack Journal #3 |-+-









  _________________________________________________________________________
 |                                                                         |
 |  -- Titulo_____: Enfrentando a la realidad                              |
 |  -- Autor______: SparK.                                                 |
 |  -- E-Mail_____: <spark@sparkrisp.com>                                  |
 |  -- Team_______: DisidentS Argentina - http://www.disidents.int-ltd.com |
 |  -- KB_________: 10.1                                                   |
 |  -- Tema_______: Cracking                                               |   
 |_________________________________________________________________________|




Dumping SparK memory ...... OK
Creating presentation...... OK
Indexing................... OK
Loading modules...sparkillo Ok





.==========================================================================.
|===========~ INDICE ~======================================================
|===========================================================================
|=~ 001 - Introduccion                                                     |
|=~ 002 - Eligiendo a la bestia                                            |
|=~ 003 - Relojeando la bestia                                             |
|=~ 004 - Forzando la situacin                                            |
|=~ 005 - Alternativa                                                      |
|=~ 006 - Como modificar el c0d3                                           |
|=~ 007 - Conclusin                                                       |
|=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=.
======================================================~ INDICE ~============
============================================================================






.==========================================================================.
|===========~ 001 - Introduccin ~==========================================
|===========================================================================

En algn   momento  debemos  como  quien  dice,  pisar la tierra dejarnos de
teoras,  ejemplos, pensamientos ideolgicos y enfrentar el mundo, enfrentar
los bits que corren, que fluyen por la red, por   tu  pc, por  tu  mente....
Quizs en estos  momentos estn pensando, que trae este loco? , pued bueno,
como lo dije  antes, vamos a enfrentar un par  de  programas  ejemplos,  que
tomare de la  red al azar, y miraremos como son  adentro, luego  diremos que
podemos hacer  dentro de ellos  para  estar  registrados, para  que  no  nos
impidan nada, para aprender a programar algo ms poderoso y a  la vez sutil,
queno permita salirse con las suyas a esos "malditos crackers" ;o)





.==========================================================================.
|===========~ 002 - Eligiendo a la bestia ~=================================
|===========================================================================

Ok, encontre un  ejemplo muy "atractivo" en todos los aspectos,  tenemos  el
siguiente:

Una coleccin de Screensavers erticos.

Los  podemos  obtener  de:  http://www.x-screensaver. com ,  en  la  seccin
downloads. Yo me he bajado "Ladies of Desire",  es  muy  lindo,  tiene  unas
perras muy atractivas jejeje.A las mujeres  que  estn  leyendo  esto,  solo
miren el cdigo. xD





.==========================================================================.
|===========~ 003 - Relojeando la bestia ~==================================
|===========================================================================

ok, una vez instalado ejecutemoslo, ahora miremoslo, tiene  muchas imgenes,
miremos mas abajo, tiene imgenes pero en unode los rincones de  cada una de
ellas tiene un candado..... mmmmm haber, hagmosle doble click en  alguna de
esas, y?? pum!nos encontramos con un cartel que nos dice esto:


			"This   image  is  only available  in the registered
version of the screen saver."



ok,  miremos  ahora  el  boton  register,  y  nos pide un password, pongamos
cualquiera ya que no lo sabemos.... y nos pone esto:


						"Invalid password."


  Bien, lo que podemos hacer aqu es..... ver como calcula el password y que
chequea  finalmente para  mostrar  o  no  el  mensaje.  Una  forma  de estar
registrados  poniendo cualquier password y sin importarnos que calculo hace,
es "forzando" a la variable
chequeada a que de el resultado correcto, como se hace esto?

Miremos el code:

Empezar con el IDA a trabajar, es muy fcil y sencillo, si no tocan  muchos
botones, sino, debern buscar ayuda. xD
abrimos el programa, y luego dejamos que el mgico  IDA  analice  la  bestia,
listo??? ok, miremos un boton que tiene un "-"
ese nos muestra las strings que  tiene el   programa,  lo  que  haremos ser
buscar la cadena "Invalid password." para ver que pasa justo antes.... click
en el  boton "-", y se nos abrira una ventana,antes de  hacer  esto  debemos
esperar  que terminen de correr las direcciones en hexadecimal en la esquina
izquierda, eso significaque debemos  esperar  a  que  termine  de analizarel
c0de. Cuando hayamos hecho click en "-",  busquemos  el  menu  Search,  y la
opcin Search,  ahora  tipeemos invalid password, y nos encontraremos con el
texto, ahora IDA nos mostrar esto:


_data:0046547C  aInvalidPassword_ db 'Invalid  password.',0 ;DATA XREF:
sub_0_40AC10+A1o


hagamos doble click en esta parte de esa lnea: sub_0_40AC10+A1o
Esto nos llevar a la parte del code desde donde se llama a esta string para
mostrar el cartel ;)


_text:0040ACAD loc_0_40ACAD:                  ; CODE XREF: sub_0_40AC10+69j
_text:0040ACAD                 push    0
_text:0040ACAF                 push    0
_text:0040ACB1                 push    offset aInvalidPassword_ ;   "Invalid
 password."
_text:0040ACB6                 call    sub_0_44CC81

Aqu estamos carga los strings, parametros para la ventana (push 0) y  luego
 llama a una api, posiblemente al MessageBoxA con
la instruccion call    sub_0_44CC81.
Ahora,  hagamos  clic  en  esta  parte  sub_0_40AC10+69j y  nos  llevar a:


		_text:0040AC79                 jz      short loc_0_40ACAD


ok, ese salto decide si estamos registrados o no, que les parece???, miremos
la instruccin que est antes que esta:

		_text:0040AC77                 test    bl, bl

que chequea?

chequea si bl es 0, haciendo una resta de bl - bl, si  lo  es,  el  pass  es
invalido, sino el pass el verdadero ;)







.==========================================================================.
|===========~ 004 - Forzando la situacin ~=================================
|===========================================================================

Ahora que hemos estudiado la vctima  debemos  hacer  un  "forzamiento de la
situacin" , justamente, como deciamos antes para estar  registrados  y  que
nos deje ver esas bellezas en nuestra pantalla.

si vamos una lnea antes que el test bl, bl , tenemos esto:

			_text:0040AC72                 call    sub_0_44812F

esto  seguro  es  la rutina  de chequeo y calculo de la  clave,  pero no nos
meteremos ah, solo atacaremos al dulce e indefensotest bl, bl,  cambiandolo
por una instruccin que haga lo mismo, pero que  no  testee  nada,  entonces
podemos hacer un:

					MOV 	BL, BL

tan simple como eso, mover bl a bl, y listo, trabajo hecho :)






.==========================================================================.
|===========~ 005 - Alternativa ~===========================================
|===========================================================================

Podemos cambiar otra instruccin, que puede ser mejor o peor, pero eso se ve
ejecutando el programa una vez, modificado.

				_text:0040AC79      jz    short loc_0_40ACAD

cambiarlo po un

					JMP   short loc_0_40ACAD





.==========================================================================.
|===========~ 006 - Como modificar el c0d3 ~================================
|===========================================================================

Yo lo hago con el  "Hacker's View"  (HIEW),  se  puede  bajar  de muchisimos
lugares, si no conocen ninguno, just wwww.google.comy listo lo tienen en sus
manos, es un programa para DOS, pero es muy potente, anda en XP tambin  as
que no se desesperen, lo mejor de todo es que es freeware.

Ejecuten el HIEW, y busquemos el file, que tendra una extensin  SCR  porque
es un screensaver, y busquemoslo en el  directorio  c:\windows,  porque  los
screensavers se suelen instalar all.
Ahora presionar  F5,  y  luego  poner  el  offset  de  algunas  de  esas dos
instrucciones comentadas antes.

el Offset  es, la posicin del byte dentro del file, en el IDA se encuentra,
emepzando del rincn izquierdo al derecho, es lacuarta cifra.

Demostrar como hacerlo con la primera instruccin:

el test bl,bl se encuentra en el offset AC77, ahora en el HIEW hagamos F5  y
pongamos AC77,  luego nos  llevara al test, pero no entenderemos nada porque
estara en ASCII, presionemos F4 dos veces, y veremos en Hexa el  c0d3, ahora
dos F4 mas y berremoslas instrucciones  desensambladas,  y veremos  nuestro
dulce y tierno test bl,bl , ahora presionemos F3, y luego sobre la linea  de
la instrccion  presionemos  ENTER,  y  luego  presionemos  MOV BL,BL ; ahora
presionemos F9, y luego ESC, y probemos el programa. . . . y?  LISTO ! ! ! !
CRack3d! ;)





.==========================================================================.
|===========~ 007 - Conclusin ~============================================
|===========================================================================

Decid hacer este artculo porque me parece muy prctico como enfrentar algo
Tan   sencillo   como  estos  programitas ,  si  quieren bajense  los  demas
screensavers, y miren el code, les aseguro sin haberlos visto, que no  deben
variar mucho, porque presientoque fueron sacados en serie como los  juguetes
chinos. xD


Hasta otra y... Let's Crack!

								       SparK
								  13/02/2002











