|
Ke
hay gente, el tema ke vamos a tratar a continuacion es sobre como podemos
empezar a crackear programas, el ejemplo ke pondre esta vez lo obtuve
de la pagina de DAIMON pero ahora estará con mis palabras, acontinuacion
aprenderomos si es ke no saben
como pueden destruir la puerta de entrada de un programa, si, ke por lo
regular te piden un login y un password, tu le das el login correcto,
el password correcto, presionas registrar y listo el programa es tuyo,
klaro esto despues de ke lo hayas comprado :)
pero ke tal si tomas el programa, le pones un login y un password ke tu
kieras le das registrar y Hooo santas computadoras endemoniadas batman,
te sale un mesaje ke dice: "Su producto ha sido registrado"
el programa es tuyo, ke tal he, ¡interesante no?
solo es cuestion de tomar el programa, despedazarlo hasta la raiz y atacar
de la mejor forma ke ha existido siempre en la historia, "Desde adentro".
Esto
es mas sencillo de lo ke parece, claro, solo rekiere de algo de concentracion
y un
poko de inteligencia, para poder empezar en una guerra primero ke nada
necesitamos las armas verdad?, bueno pues para el ejemplo ke pondre a
continuacion solo necesitaremos dos armas simples pero kon un gran poder
ke son
un desensamblador y un editor hexadecimal, ¿ke es esto y para ke
me sirve?, los veremos mas adelante. En esta ocacion utilizaremos el desensamblador
"w32dasm" y el editor hexadecimal "Hacker View" si
no tienes estos programas
puedes encontrarlos en la seccion de programas, tema Seguridad, solo entra
y bajatelos ok.
Bueno,
ahora ya tenemos las herramientas, pero ¿ke vamos a hacer con ellas?,
se supone ke las bamos a utilizar para crackear programas verdad, pero
esto es imposible,
recuerden ke todo lo ke hay aki es con fines educativos, y solo es para
saber hacer las cosas, no para hacerlas, por lo kual no me hago responsable
de kualkier kosa ke hagan con lo ke aki
aprenderán, y como crackear programas es contra la ley, no podremos
hacerlo.
Pero
no se desnime jeje, les tengo una sorpresa, hay kien primero ke nosotros
se topo kon este problema, y lo soluciono satisfactoriamente,
¿como?, bien, lo ke pasa es ke como lo de crackear programas es
ilegal, pues estos amigos krearon sus propios programas hechos especialmente
para eso,
para ser crackeados, con los kuales se puede praktikar y praktikar, hasta
ke seas todo un experto en la materia, estos programas se llaman "crackmes"
y puedes encontrar varios de ellos en la web, despues de aprender como
crackearlos, cada uno de ellos se convertira en un reto para ti.
Bueno
despues de tanto rollo pongamonos en accion, empieza lo interesante ;)
Primero ke nada, el crackme ke utilizaremos esta vez será el Zebra
(puedes encontrarlo en la misma seccion ke las otras herramientas).
Bueno
abran bien los ojos mis amigos, tratare de ser lo mas explicito posible,
ok?
Nota:
Espero ke en este momento ya tengan los tres programas ke les dije, descomprimidos,
y en una carpeta cada uno, aunke seria mejor ke el crackme lo pongan en
la misma carpeta ke el editor hexadesimal.
Para
ke se den cuenta de como funciona esto, primero ke nada abramos el Zebra,
ke es una simulacion de algun programa real, ke necesita clave para el
registro.
Lo primero ke nos muestra es una pekeña ventana donde nos pide
el login el password, y tiene tres botones ok, como seria en un programa
real si no tenemos los datos correctos, no funcionaría, y en este
caso,
nos manda un mesaje como este "Sorry... the serial isn´t correct"
ke kiere decir ke la cagamos y ke no podremos usar el programa (eso es
lo ke el kree jeje ;) ).
Paso
uno: Abran el w32dasm (el desensamblador).
Ya ke esta abierto, en el menu de arriba den clic en Disassembler/ Open
file to Disassemble/ y seleccionan el Zebra (y da clic en abrir).
Pude
ser ke mires puros simbolos y signos raros, eso es porke no tienes seleccionado
el tipo de letra, solo tienes ke kambiarlo, en el mismo menu
Disassembler/font/selectfont y selecciona una (por decir Arial).
Ahora
si, ya tienes ante tus hojos todo el codigo desensamblado del Zebra.
¿y en ke konciste este?
El lenguaje ensamblador contiene Saltos condicionales, incondicionales,
comparaciones entre registros y mas, pero ¿ke es esto?
Este lenguaje maneja varios comandos entre ellos podria nombrar:
jmp
address Este comando sería por sus iniciales en ingles Jump, ke
significa Salto y es un salto incondicional.
jne addreess Este significa "Jump not equal", ke seria, "Salta
si no es igual", este ya es un salto condicional debido a ke pone
condiciones para saltar.
je address Este significa "Jump equal", Ke sería, "Salta
si es igual", tambien es condicional.
cmp reg, reg Este es solo una comparacion.
test reg, reg Este es un comando de ke prueba.
mov a, b Este significa mover.
Lo
ke mas vamos a usar son los tres primeros ok?.
Ok,
si regresamos un pokito, podremos recordar ke al abrir el zebra y darle
registrar nos mandaba un mensaje ke decía "Sorry... the serial
isn´t correct"
esto dibido a ke no tenemos el login y password korrectos. Bueno para
lo siguiente tienen ke tener algo de logica de programacion (pensar como
programadores).
Para
realizar esta ventana de password primero se tiene ke poner una condicion
ke diga, si el password es igual a EQUIX, entrar al programa, si no, mandar
mensaje de "Sorry... the serial isn´t correct" (ke es
nuestro caso)
Pero
kien contaba con ke tenemos un desensamblador?, bien, ahora como tenemos
un texto clave (Sorry... the serial isn´t correct), solo tenemos
ke buscarlo en el condigo del Zebra, Nos vamos al menu de arriba, Search/findtext,
y ahi escribimos esto: "sorry... the serial" (sin las comillas)
y le damos buscar, inmediatamente no encuentra el texto dentro del codigo
(ahora podemos cerrar la ventana de buscar), bien, he dicho ke encuentra
el texto dentro del codigo
pero en realidad nosotros no podemos verlo, si ves el menu en la parte
de arriba, en donde dice Refs, das clic despues en String data references,
podremos ver los textos ke utiliza este programa, dentro de los cuales
esta "Sorry... the serial isn´t correct"
si damos doble clic en el no lleva exactamente al mismo lugar ke con la
buskeda. (ya me esta dando sueñooo, perdon eske son las 3 de la
mañana :O )
:004012FB
6801324000 push 00403201
Este
es un numero hexadecimal, el cual esta en el lugar del string (string=
a cualkier texto se le llama string en programacion) "Sorry... the
serial isn´t correct".
Como
podemos observar arribita de el, dise con letras verdes "Possible
String Data Ref"
Con eso nos indica ke puede ser ke esos numeros hexadecimales se refieran
a un texto.
Bueno
pues alegrence ke ya encontramos la ventana donde nos dice "Sorry...
the serial isn´t correct", kiere decir ke estamos cerca del
salto condicional (donde compara si esta bien el password).
Ahora lo ke tenemos ke hacer, es empezar a subir, con la flecha del teclado
ke aputa arriba, dando dos veces a la flecha kedamos exactamente
en el titulo de la ventanita de "Sorry... the serial isn´t
correct", ke decia "mmmmm :P"
:004012f6 68f6314000 push 004031f8
seguimos
subiendo, mas arriba encontraremos el numero haxadecimal de la ventana
ke dice "Congratulations, you have cracked" ke es el texto ke
no saldrá si logramos crackear el programa.
:004012E5 6830324000 push 00443230
Esto
kiere decir ke estamo mas cerca del salto condicional, por eso seguiremos
subiendo.
Todos los saltos comienzan con la letra "J" y al momento de
estar en uno de ellos la barra se pone de color verde fluorecente.
Exactamente Diez espacios hacia arriba llegamos al salto condicional,
Al fin, empezaremos la accion de nuevo, como pueden ver la barra cambia
de color
estando posicionados en el salto condicional ke en este caso es un je
(jump equal, ke si el password ke damos es igual?, ke si esta bien?, en
caso de ke eso
sucediera, el salto entraria al programa, o en este caso al mensaje de
"you have cracked", pero como el password no es igual o correcto
pues nos manda al mensaje de "Sorry... the serial isn´t correct")
para poder ver esto solo tenemos ke dar a la flecha del teclado hacia
la derecha(estando posicionados en el salto condicional, con la barra
de color verde fluorecente).
Nos lleva directo al mensaje de "Sorry... the serial isn´t
correct". Pero ¿ke pasaria si cambiaramos el salto condicional
JE por un JNE (jump not equal) ke este le diria a la makina, "si
el password NO ES IGUAL(no es correcto) entra al programa" Sencillo
no?
Bueno
ahora toca el turon de hacer el cambio de salto JE a salto JNE.
Primero nos posicionamos en el salto condicional (donde la barra se pone
de color verde), miramos en la barra de estado del desensamblador(es la
ke esta amero abajo) y vemos ke dice: @offset 000006DCh, anota ese numero
en algun lado porke eso es todo lo ke andabamos buscando con el desensamblador.
ya ke tienen el numero pueden cerrar el desensamblador.
Le
ha llegado la hora al editor hexadecimal, ahora a llegado el momento de
hacer el crack.
Bien,
pues como primer paso será, Abrir el Hiew (editor exadecimal),
ya ke lo abrimos bucamos ahi el Zebra (zebrone.exe), si pulsamos F1 ponemos
ver la ayda del editor (pero ahsta ahor no le necesitmaos).
Ya ke estamos posicionados en el zebra presionamos la tecla Enter.
Y ke pedo kon todos esos signos?, esos signos es texto.
ok ahor lo ke vamos a hacer es lo siguiente, vamos pulsar F4 y seleccionaremos
la opcion Decode, con esto podremos ver los comandos en lugar del texto.
Bueno ya estamos en los comandos, ahora, recuerdan ke apuntamos un offset
000006DCh bueno, este offset es la direccion en ke se encuentra el salto.
Ahora pulsamos F5 escribimos la direccion del salto 000006DCh, pero sin
la ultima "h", kedaria de esta manera 000006DC, lo apuntamos
y pulsamo enter.
JAJAJA Amigos pero alegrense, ke no ven ke estmos exactamente en el salto?,
donde nos marka un 74, y mas al frente en el mismo renglon podemos ver
el salto ke en este kaso es un "je" el cual keremos kambiar
por un "jne.
Bien para cambiar un salto es muy sencillo, solo se le agrega un valor
mas, por ejemplo si tenemos 74 le sumamos uno nos da 74+1=75 el valor
ke tenemos ke asignarle es el 75, ¿pero como haremos esto?
Pues ya ke podemos ver el salto pulsamos F3, ahora podemos editar el numero,
asi es ke escribimos sobre el 74 un numero 75, ke bien, observen como
cambia inmediatamente el nombre del salto de "je" a "jne",
ya kasi esta crackeado.
Ahora solo pulsamos F9 para grabar la accion, y F10 para salir.
Abrimos el Zebra, escribimos el password ke keramos, damos registrar,
y ¡FELICIDADES!, este programa no ha podido contra nosotros, ahora
el programa es tuyo men.
Como pueden ver ahora en vez de la fastidiosa ventanita ke dice ke esta
mal el password, nos muestra una ke dice "Congratulations, you have
cracked", ke kiere decir, "Felicidades, lo has crackeado"
Lo ke sucedio aqui es ke al momento de camibar el salto, ahora cada vez
ke pregunte el password si este es igual (correcto), no va a entrar, pero
si este no es igual(no es correcto), si va a entrar, ven?, lo ke pasa
es ke kambiamos la condicion.
Al
fin hemos crackeado nuestro primer programa, ke en este kaso fue un crackme
ya ke crackear algun programa comercial aunke muchos tengan la misma proteccion
ke este crackme ¡esta fuera de la ley!, pero sigan practicando,
hay muchos mas crackmes en la web ke pueden ser mas dificil, pero asu
vez mas emocionante, no creen?.
Bueno
espero ke ya tengan aprendido bien esto (y ke haya sido explicito, si
no le entendieron mejor desen un balazo), hasta aki los dejo, porke ya
me voy adormir, son casi las 4am, ke loco y todo por ke.. chiiingado..
no se ni porke, bueno nos vemos, no dejen de visitar esta seccion, ya
ke despues pondre mas ejemplos.
Nos
vemos
Atte:
«(.·°¯`·->Vå£Hå¢k
<-·´¯°·.)» ;)
|
|