Untitled
Untitled
Las pantallas pueden tener nombre propio o dejarlas como Form1, Form2, Form3...
VB Decompiler lite nos separa lo que es el aspecto gráfico del código fuente.
Crackme16.exe, nos está mostrando, que solo tiene una pantalla (Form1), y en la
parte de código (Code).
vbaStrCmp es una función que compara 2 cadenas, y devolverá un valor que indica si
son iguales o no.
Para hacer esto bien, con Ingeniería Inversa de la buena, usamos x64dbg
Nos lo descarmos desde la página oficial o desde brigthspace (recordad que tenéis
una versión antigua y la última, por si acaso no viérais todo el contenido) y os
recomiendo que lo dejéis como "portable" (es decir, sin hacer instalación, se
descomprime y en la ruta de \release\, echando sobre el icono de 32 o de 64 bits,
abrirá el ejecutable que queramos estudiar.
##########################
Aclaración sobre esta dll.
MSVBVM50.DLL significa
MS = MicroSoft
VB = Visual Basic
VM = Virtual Machine
50,40,60, los dos numeros que aparecen después es la versión.
##########################
Una vez abierto el programa que queremos examinar con x32dbg, la primera vez
necesitamos configurar un poco la aplicación.
Desensamblado la pongo en 22
Si veis que la posición de memoria (offset) es un número que empieza por 77,
corresponde al sistema operativo.
Te lo pausa (lo indica abajo) y se queda esperando qué hacer.
Pestaña Excepciones:
botón Ignore Range
Inicio: 00000000 (0, 8 veces)
Fin: FFFFFFFF ( F, 8 veces)
Aceptar y posteriormente, Guardar
Pulsamos el 4º botón de la barra de herramientas para que se nos vaya a la zona del
programa en sí (y que tiene un breakpoint)
Log es la pestaña donde os muestra todos los procesos que tienen lugar cuando
ejecutas la aplicación
Breakpoint nos muestra todos los puntos de interrupción que existan en el programa
Pila de llamadas: nos muestra la distintas llamadas que el programa hace al sistema
y al propio programa. Solo nos puede mostrar lo que ya ha ocurrido.
Reinicio la ejecución.
2º botón de la barra de herramientas.
(pongo un punto de interrupción justo en el call que muestra la nag screen, que es
la dirección 00402CFE)
Con el botón derecho del ratón -> Ensamblar (o pulsamos barra espaciadora)
Le damos a Aceptar
Una vez hecho, salimos con Cancelar
Lo vuelvo a abrir
F9 -> saltará al punto de interrupción del programa
F9 -> saltará al punto de interrupción donde aparecía la nag screen
Debemos volver a nopear
Derecho de ratón sobre esa instrucción,
nop
aceptar
y luego cancelar
Avanzamos línea a línea con F8
hasta que encontramos una línea que tiene un jne (00402D53).
Archivo->Parchear programa
Aplicar el Parche
Lo grabo como:
crackme16 sin nag y sin terminar.exe