Hice un CrackMe en Delphi XE x64

No tiene anti-debug
No tiene virtualización de código
No está empaquetado
No está obfuscado ni encriptado
No tiene anti-dump

Simplemente intenta parchear el Mensaje a "Cracked" y luego evita que el anti-tamper detecte que has editado el ejecutable
Imagen
[Enlace externo eliminado para invitados]
Bl4ckV escribió: Ahí va compañero.
Imagen
[Enlace externo eliminado para invitados]
Según he analizado, lo único que has hecho es modificar el puntero del texto que apunta desde "Memory tampered" y cambiarlo al puntero de "Memory not tampered", en una aplicación real el único cambio que se conseguiría es que el texto se vea diferente, la aplicación seguiria sin estar crackeada, se ve claramente que así ha sido pues solo se han modificado 5 bytes

1 byte para el salto condicional y 4 bytes para cambiar el puntero del texto
Entiendo, tiene sentido.
Es la primera vez que hago reversing, seguiré investigando!
 
("\\\\.\\PhysicalDrive0")
Qué entiendes? Recibiste el mensaje de que el EXE no fue manipulado tan bien como el DLG descifrado. Hay algo más que haga este crackme que explique por qué no está crackeado? Porque no lo veo.

🤗
Lo que cambia es el puntero que apunta al texto que aparece en las MessageBox, no en si el funcionamiento de la aplicación.
("\\\\.\\PhysicalDrive0")
Stingered escribió: 13 Feb 2023, 00:06 Qué entiendes? Recibiste el mensaje de que el EXE no fue manipulado tan bien como el DLG descifrado. Hay algo más que haga este crackme que explique por qué no está crackeado? Porque no lo veo.

🤗
La aplicación para llegar a x punto comprueba que no se ha editado desde RAM, entonces muestra que todo está bien
de lo contrario irá a otra región de código donde dice que está tampered

Cambias el puntero de texto de la región de código donde dice que está tampered hacia el puntero de texto que dice que está todo bien

Aún sigues yendo a la región de código que indica que está tampered
Entonces, Cuántos métodos antimanipulación "simples" hay en este crackme? Parece que tiene una verificación de interrupción de software, como mínimo. Encontré "una" rutina que puedo omitir la verificación si la deshabilito, pero parece que no puedo cambiar la rutina para cargar un mensaje de buen chico. Alguna pista que quieras lanzar?
Stingered escribió: 23 Feb 2023, 00:09 Entonces, Cuántos métodos antimanipulación "simples" hay en este crackme? Parece que tiene una verificación de interrupción de software, como mínimo. Encontré "una" rutina que puedo omitir la verificación si la deshabilito, pero parece que no puedo cambiar la rutina para cargar un mensaje de buen chico. Alguna pista que quieras lanzar?
Hay un solo método, y no, no tiene verificación de valores INT 3 / CC, sino que verifica la integridad de los bytes usando un algoritmo de hashing, apartir de ahí llama a la función por su hash generado, si sabes mínimamente de reversing sabrás que los breakpoints de software editan la memoria del ejecutable mientras que los de Hardware no.

Esto podría servirte [Enlace externo eliminado para invitados]
Sí, lo sé. Los depuradores lo agregan cuando establece un BP en una instrucción de su elección. Los puntos de interrupción del software se establecen reemplazando la instrucción que se va a establecer como punto de interrupción con una instrucción de punto de interrupción (0xcc). Vi el hash mientras avanzaba y pude eludirlo por completo, pero no en donde recibo el mensaje de buen chico, todavía. Echaré un vistazo al video, pero al menos ahora puedo concentrarme en el código algo. 
Responder

Volver a “Cracking/Reversing”