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
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.
Imagen
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. 
Apologies, but I strayed into a game.
I look at this again... I run a hash checker against crackme EXE and it shows two hashes, bas64 and MD5.
A routine was found that compares the two hashes (calculation of good vs. bad hash). I change the code to move the original hash to RDX instead of a bad hash:
mov RDX, RCX
Instead of moving bad hash to RDX.
[Enlace externo eliminado para invitados]
In  debugging, I get to the "Not tampered" section of code ", but Delphi EXE throws an exception instead of starting DLG "Not Handled".
[Enlace externo eliminado para invitados]
should be working, in my opinion, so I'm confused at this
point.🤗

[Enlace externo eliminado para invitados]

 
No actualicé la página antes de responder, así que no vi tu enlace de carga. Prefiero resolverlo que ver la solución. Si elige responder a mi mensaje anterior, ¡genial! Si no, seguiré por mi cuenta. Gracias
Stingered escribió: 27 Abr 2023, 21:29 Apologies, but I strayed into a game.
I look at this again... I run a hash checker against crackme EXE and it shows two hashes, bas64 and MD5.
A routine was found that compares the two hashes (calculation of good vs. bad hash). I change the code to move the original hash to RDX instead of a bad hash:
mov RDX, RCX
Instead of moving bad hash to RDX.
[Enlace externo eliminado para invitados]
In  debugging, I get to the "Not tampered" section of code ", but Delphi EXE throws an exception instead of starting DLG "Not Handled".
[Enlace externo eliminado para invitados]
should be working, in my opinion, so I'm confused at this
point.🤗

[Enlace externo eliminado para invitados]

 
Lo he revisado y no está crackeado, dañaste la aplicación, se muestra un error
Responder

Volver a “Cracking/Reversing”