elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Resolver Crackme CrueHead 2
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Resolver Crackme CrueHead 2  (Leído 9,954 veces)
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Resolver Crackme CrueHead 2
« en: 11 Abril 2012, 22:10 pm »

Este crackme no lo hace ricardo, para que pueda ver, solamente te pide que lo hagas, es con una password nomas y yo estuve a punto de darme por vencido porque no le encontraba logica al programa y mirando los strings que comparaba eleji el primero que era "!" y lo puse y pum.. entro, es decir la password seria solo "!" ? xDD

Luego puse otra contraseña para ir traceando y ver que hacia con ella y ahora la contraseña era "W".

La idea es que lo logre, pero no creo que lo haya hecho bien, no creo que la contraseña sea "!" o "W" , puede ser que no sea una password fija, pero que sea un caracter solo.. siento que solo descubri un bug del programa pero no la password que me pide Ricardo xD

A ver quien me puede dar una mano mirandolo, explicandome como lo crackearon, asi por arriba, no pido un tutorial, yo me las arreglo luego.


Crackme: http://www.gigasize.com/get/m33hlmll86b


Desde ya gracias!
En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Resolver Crackme CrueHead 2
« Respuesta #1 en: 12 Abril 2012, 18:56 pm »

Es complicadito de hecho yo no lo ví hasta que pregunte en crackslatinos, esto lo tengo muy abandonado desde verano pues lo miré para distraerme y lo dejé pero bueno, lo de que sólo metas un caracter y te lo acepte es un bug del crackme.
Para crackearlo pues la rutina del programa convierte tu password a mayúsculas hace una operación con una cadena perdida en memoria( si te lo digo pierde la gracia)y tu password en mayúsculas y compara con una serie de valores hexadecimales el resultado de la operación anterior , ojo esto es por encima.

De todas maneras para empezar a toquetear puedes mirar de donde viene la llamada al mensaje de No luck there mate! por allí estará la comparación y obviamente antes de esa comparación la rutina que hace todas esas operaciones. Ten mucha atención a los movimientos de bytes a memoria.Creo que era así , desde luego tengo aquí unos folios con lo que seguí para sacarlo yo despues que me orientaran.Si alguien más experto en esto tiene que corregirme algo por favor que lo haga.

¡Un saludo!Y perdona si no me he explicado bien :)
En línea

Regístrate en
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Resolver Crackme CrueHead 2
« Respuesta #2 en: 12 Abril 2012, 19:29 pm »

Si vemos el crackme está empaquetado, si no me equivoco con UPX.
Lo desempaquetamos.

Ya desempaquetado buscamos referencias de string, encontrarás la de que el serial es correcto, lo que debes dirigirte a ella y subir hasta el push ahí si miras abajo OllyDBG mostrará de donde es llamado ese procedimiento encargado de mostrar el mensaje, te darás cuenta que viene por consecuencia de un salto condicional si te vas a el, verás un poco más arriba dos call que utilizan parámetros de la pila, si entras verás que lo primero que hace es tomar la pass y pasarla a mayúscula, luego de pasarla a mayúscula realiza un cifrado XOR del password ingresado junto con la string:
Messing_in_bytes

Mientras va cifrando el resultado va sobre escribiendo el password introducido:

0040217E

luego de esto lo compara con:

00402150  1F 2C 37 36 3B 3D 28 19 3D 26 1A 31 2D 3B 37 3E

Por lo que si el password cifrado con la string Messing_in_bytes no es igual a los bytes ubicados en 00402150, nos mostrará un mensaje de error.

Por suerte el cifrado XOR es bidireccional lo cual puede ser invertido sin ningún problema, debemos plantearnos la siguiente pregunta: ¿Que serial necesito introducir para que cuando se cifre con la string me de como resultado el serial ubicado en 00402150?.

Si Serial introducido XOR String (Messing_in_bytes) = contenido address 00402150 (serial correcto)

al ser bidireccional

Serial correcto (X)= String (Messing_in_bytes) XOR contenido address 00402150
 
Lo cual nos dará la siguiente tabla:

Código:
	  M  e	s  s  i	 n  g  _  i  n	_  b  y  t  e  s
00402150  1F 2C 37 36 3B 3D 28 19 3D 26 1A 31 2D 3B 37 3E
          4D 65 73 73 69 6E 67 5F 69 6E 5F 62 79 74 65 73
XOR =     52 49 44 45 52 53 4F 46 54 48 45 53 54 4F 52 4D

HEX-ASCCI=R  I  D  E  R  S  O  F  T  H  E  S  T  O  R  M

RIDERSOFTHESTORM (válido en minúsculas)
« Última modificación: 12 Abril 2012, 19:39 pm por .:UND3R:. » En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Resolver Crackme CrueHead 2
« Respuesta #3 en: 12 Abril 2012, 19:43 pm »

Si, se donde esta la comparacion, por lo que puedo crackearlo sin problemas, la cosa es sacar cual es la password. Yo lo que hice fue poner un BP en la api GetIdemTextA algo asi y cuando ingreso el serial falso y le doy al boton, me para en la api esa, asi que toma el valor con esa api, luego miro en el Dump el buffer y veo que deja ahi mi serial falso, entonces yo le puse un BP memory on access a ese serial falso en el dump, para que pare cuando empieze a tocarlo y cuando paro, ahi empeze a tracear y mirar, pero algunas cosas no me parecian tan importantes y fui avanzando y termino en un call que dentro es cortito y pone a CL con el valor 3 hex y luego sale del call ese con el retn y compara si CL es 0 xD me re pierdo porque no entiendo la logica.

Se ve que para hacer mas seguros tus programas tenes que ser mal programador y hacer cosas insolitas, inesperadas para los estamos acostumbrados a programar de una forma xD


edit: Gracias UND3R, pero no veo que este empaquetado :S no entiendo bien eso.. se que aparece distinto el primer analisis que hace olly, pero yo le pongo Remove Analisis y queda como cualquier otro programa :S. A ver si haces algun tutorial sobre la IAT y esas cosas que me quisiste explicar hoy xD (por cierto, te fugaste) xD

edit2: Continuaste la explicacion... gracias!! yo habia visto esa string Messing... pero me perdi luego, ya me acuerdo que hace tiempo cuando empezaste con esto lo hiciste y me hablabas a mi por facebook a la vez y me habias escrito esa password para acordarte o algo asi xD
Por cierto.. tenes algun soft o algo para hacer los XOR, porque yo los hago manualmente.. paso en este caso todo junto 1F 2C 37 36 3B 3D 28 19 3D 26 1A 31 2D 3B 37 3Eh a binario y luego tambien el 4D 65 73 73 69 6E 67 5F 69 6E 5F 62 79 74 65 73h a binario y ahi manualmente hago el xor xD esta bien eso?
« Última modificación: 12 Abril 2012, 19:51 pm por $Edu$ » En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Resolver Crackme CrueHead 2
« Respuesta #4 en: 12 Abril 2012, 21:08 pm »

Bueno ya te lo dijo todo .:UND3R:. , me parece que no eh el xor lo realizas byte por byte pues si o sea:
1F xor 4D : es 52 que en ascii corresponde a "R"
y así sucesivamente , con la calculadora de windows en modo programador y trabajando en hexadecimal puedes sacarlo relativamente rápido.
es que si lo juntas todo te sale un numero un monton de grande y te quedas con un numero en hexadecimal nada más creo que me corrijan si no  jajajajaja
Un saludo!
En línea

Regístrate en
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Resolver Crackme CrueHead 2
« Respuesta #5 en: 12 Abril 2012, 21:28 pm »

Ah si si tenes razon, y creo que me hare una herramienta para poner todo el string directo y que haga operaciones logicas de estas.

Pero espero la respuesta de UND3R sobre si hara el tutorial de IAT y todo eso para desempaquetar o darse cuenta si esta empacado que no me doy cuenta :/
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Resolver Crackme CrueHead 2
« Respuesta #6 en: 12 Abril 2012, 22:55 pm »

Hola $edu, no creo que sea necesario un tutorial de unpack, en el tutorial de ricardo narvaja explica muy claramente que es IAT y todos los conceptos necesarios para poder comenzar con el unpack, Saludos.
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Resolver Crackme CrueHead 2
« Respuesta #7 en: 13 Abril 2012, 00:14 am »

Pero porque deja que hagamos un crackme si no he aprendido eso aun, voy por el capitulo 21 recien, te pedia porque pensaba que era algo que tendria que saber, pero bueno.. a seguir leyendo y algun dia aprendere. Gracias como siempre a todos!
En línea

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: Resolver Crackme CrueHead 2
« Respuesta #8 en: 13 Abril 2012, 04:43 am »

UPX es un packer muy buenito... puedes trabajar con el target perfectamente sin pararle bola al packer...

Seguramente lo hizo para darle una poca de dificultad pero vamos un UPX no es dificultad x).

Saludos,
Nox.
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: Resolver Crackme CrueHead 2
« Respuesta #9 en: 13 Abril 2012, 17:30 pm »

Ah con razon yo ni cuenta me di xD, lo que me pasa ahora es que acabo de analizarlo con RDG packet detector y me dice que no encuentra nada, lo mismo con otro crackme que hasta el olly me decia que si estaba comprimido o empaquetado, funciona a veces o que?


Sobre lo del XOR con las cadenas y eso me quedo una duda solamente.. si me ponen como tarea que haga un un XOR a una cadena "123" con 0Ah por ejemplo, no se puede entonces? porque yo haria:

"123" --> 31 32 33
Xor                   0A

-----------------------
33 -->  00110011
Xor
0A -->  00001010
-----------------------
            00111001

32 --> ....
........
....
............................

Y despues que tengo el segundo como hago? o no funciona de esta forma?

Gracias!
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Resolver CrackMe´s y hacer Cracks « 1 2 »
Ingeniería Inversa
DProduct 10 9,053 Último mensaje 22 Enero 2009, 18:02 pm
por Amerikano|Cls
ayuda necesito el Cruehead CrackMe
Ingeniería Inversa
6TUNX4T 1 3,561 Último mensaje 28 Mayo 2014, 09:34 am
por MCKSys Argentina
Problema con CrackMe cruehead 1.0
Ingeniería Inversa
Caster 2 2,945 Último mensaje 7 Marzo 2015, 02:05 am
por Caster
[duda] resolviendo CRACKME DE CRUEHEAD 2
Ingeniería Inversa
colcrt 2 3,018 Último mensaje 18 Agosto 2015, 04:22 am
por Fixxed
Ayuda necesito el crackme cruehead 1.0
Ingeniería Inversa
Refleck 2 6,946 Último mensaje 17 Mayo 2021, 13:18 pm
por Refleck
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines