Esta vez es una pequeña explicacion de como resolvi el crackme hecho por Itehm en delphi, curioso e interesante y pues cualquier duda o critica o comentario no duden en hacerlo...
Primero abrimos con el RDG Packer Detector para ver el lenguaje de programacion y vemos un delphi...

Ejecutamos y vemos que podemos ingresar varios numeros y ningun boton de comparar ni nada a lo que suponemos en algun timer o change debe estar la comparacion...

Aprovecharemos y utilizaremos una gran herramienta para desensamblar programas en delphi como el DEDE y poder observar con mas detalle direcciones de eventos y que pueden contener cada uno...

Observamos que cada boton es el de un numero y podemos observar su direccion donde inicia el evento...

En el OllyDBG vamos a observar la rutina del evento change del edit donde son tomados los numeros, a grandes rasgos no nos entraremos a mirarla bien pues el que quiera puede tracearla o estudiarla con mas detalle aunque a decir verdad no hay mucho que mirar, solo se ve que compara 2 veces la longitud del serial una es 10 pero como acepta 9 no nos sirve y otra de 7 que es la que nos sirve a nosotros...

Al pasar la comparacion de la longitud podemos ver que compara una variable con la constante 0xBB543 "curioso" y nos envia afuera de la rutina...

Otra vez con el DEDE y observando los eventos click de cada boton podemos observar que cada uno a aparte de poner el numero en el edit hace una funcion especial y "secreta"... por ejemplo el 1 suma a la variable anteriormente mencionada el valor de 0x1B6B8

El numero 5 suma el valor de 0x9FBF1

Y el numero 7 suma el valor de 0x29A

Que al ser sumados...
0x1B6B8 + 0x9FBF1 + 0x29A = 0xBB543
es decir cumplimos con la condicion, pero tambien observando los numeros pares no suman a la variable si no que concatenan una string y que despues va a ser comparada...
Numero 6

Numero 8

Numero 0

Ya con esto podemos concluir que los 6 primeros digitos del serial ingresado deben contener los numeros "1 - 5 - 7 - 6 - 8 - 0", teniendo en cuenta que los impares en cualquier orden y en cualquier posicion de ingreso, y los pares en cualquier posicion de ingreso pero manteniendo el orden para que la string pueda concatenarse de manera optima asi, 6 - 8 - 0... y despues de ingresar estos seis digitos solo nos queda cumplir la condicion de los 7 digitos entonces damos click en cualquier otro numero y obtendremos como resultado satisfactorio el mensaje de good...

Descarga Crackme
No puedes ver links
Registrate o LoginY con esto llegamos al fin, un saludo a todos
CronuX