
Artículo · Ingeniería Inversa
Parchando el software Softdat
Información
En este capítulo veremos las medidas de seguridad que presenta un crackmes o software, algunas veces nos solemos topar con algunos desarrolladores creativos, creando su propias medidas de seguridad para evitar depurar un software, sin embargo como siempre un buen análisis ayuda a que podamos vencer esta seguridad y asi poder encontrar la clave correcta.
|
Anti-crackme |
https://mega.nz/#!UAJUFLbC!W_VQp70CQg93d7mo4bdcXfjdJnY39pXeqmtktUiSh8U |
|
Tamaño |
958 Kbytes |
|
Nivel |
Basico |
|
Team |
CrackSlatinoS, PeruCrackers, EntreAmigos CLS y BTA. |
Realizando el ataque
Como es cotidiana en todos los tutoriales se procederá obtener información del reto en este caso usaremos RDG Packer, es muy sencillo de utilizar e intuitivo, veremos que se desarrolló en MASM/TASM y que no tiene medida de seguridad. Ver Figura 1.
Fig. 1 RDG PACKER obtuvo MASM
Ejecutemos el crackme para poder ver con que nos estamos topando, así que a primera vista nos solicita que ingresemos un serial o clave en este caso agregare: abcdefg y nos mostrara el texto That is incorrect. Ver Figura 2.
Lo curioso de este reto es su nombre anti-crackme, así que depuramos el crackme en nuestro depurador x32dbg, luego ejecutemos con la tecla F9 o play depurando el reto y nos mostrara un mensaje indicando que no ejecutemos el crackmes con un depurador y procederá a cerrarse al detectarlo. Ver Figura 3.
Tener en cuenta que debemos apuntar nuestros datos obtenidos en un bloc de notas: Ver Figura 4.
Fig. 4 Nos muestra datos obtenidos.
Buscamos las cadenas de texto o string del reto-anticrackmes. Ver Figura 5.
Encontramos las cadenas de texto y agregamos un BreakPoint en cada una de ellas, presionando la tecla F2 podrás agregar BP. Ver Figura 6.
Como veras lo que se encuentran sombreado con rojo son los BreakPoint, vamos a la dirección 00401233, donde buscaremos la referencias. Ver Figura 8.
Para brindarnos un poco de ayuda presiona la tecla G o en la pestaña Gráfico, nos mostrará en cuadros las funciones y saltos que realiza cada uno de una manera ordenada. Ver Figura 9.
Fig. 10 Pasos para llegar a encontrar las referencias.
Veremos que dos funciones CALL y un salto JE, agregamos un BreakPoint y luego veremos cada uno de las funciones, en este tutorial seré puntual para no escribir mucho. Ver Figura 11.
Fig. 11 Las referencias encontradas.
Como indique iremos puntual, así que la función analizar es la primera con dirección 004010BC. Ver Figura 12.
Fig. 12 Ir a ver el Código de la primera Referencia.
Como vera si entramos al primer CALL anti-crackme.401233, nos llevará al anti-dubbger, cerrando nuestra aplicación y así evitando el análisis del reto, así que agrego un BreakPoint en la dirección 004010B9 que se encuentra el salto JNE. Ver Figura 13.
Luego ejecutamos el crackmes con F9 o play, vera que se detuvo en el salto que agregamos nuestro BP, y realizara un salto al CALL donde se cerrará si entra a la función, lo que debemos hacer es evitar este salto, de lo cual lo nopeamos. Ver Figura 14.
Los pasos para Nopear es –> Binario -> Rellenar con NOPs. Ver Figura 15.
Lo que significa:
Fig. 20 Evitando Call con dirección 00401287.
En este caso es el mismo análisis así que vemos que compara:
AL:66:f == BL:21:! Ver Figura 21.
Presionamos F8 hasta llega a la dirección 00401183, compara:
AL:63:c == BL:65:e Ver Figura 22.
Compara:
AL:64:d == BL:63:c Ver Figura 23
AL:61:a == BL:73:s Ver Fig. 24
Compara:
Al:63:d == BL:63:c Ver figura 25.
Al final la clave seria en esta orden:
a : s
b:
c : e
d : c
e : s
f : ! |
g :
Si lo ordenamos seria: s ecs! Es decir sXecs!X
Escribimos la clave obtenida en el bloque de texto y veremos si es la correcta. Ver Figura 26.
Conclusión:
¿Quieres aprender estas técnicas en profundidad?
Continúa tu ruta con Pentesting .

Escrito por
Rafael PeruCrackersEstudiante de la ingenieria Inversa usando las herramientas de Ollydbg y el actual IDA PRO, actualmente me encuentro investigando sobre Creacion de Exploit, con animo de ayudar a las personas que les interesa el mundo del reversing, :)


