Saltando el Anti-Debug
Abrimos el crackme con Ollydbg y nos salta una protección Anti-Debug.
Rutina de comprobación del serial
Retomemos analizando la rutina de comprobación.
FLD DWORD PTR DS:[403080] - Carga el entero "720300" en ST7 FSTP [LOCAL.1] - Guarda "720300" en memoria (Local 1) MOVSX EDX,BYTE PTR DS:[EAX] - Coje nuestro primer dígito en ascii y lo carga en EDX SUB EDX,30 - Le resta 30 a EDX PUSH EDX - Carga EDX en la pila FILD DWORD PTR SS:[ESP] - Carga el valor de EDX en ST0 POP EDX - Recupera el valor de la pila FDIVR [LOCAL.1] - Divide Local 1 entre nuestro dígito hex y lo guarda en ST0 FSTP [LOCAL.1] - Guarda el resultado de ST0 en Local 1 INC EAX - Siguiente dígito CMP BYTE PTR DS:[EAX],0 - Comprueba si quedan dígitos en nuestro serial JNZ SHORT 05_crack.004010F4 - Bucle
Después de la rutina de comprobación simplemente comprueba el valor del resultado de la división con 1 y si es verdad serial válido.
Buscando un serial válido
720300 / 2 = 360150 360150 / 2 = 180075 180075 / 5 = 36015 36015 / 5 = 7203 7203 / 3 = 2401 2401 / 7 = 343 343 / 7 = 49 49 / 7 = 7 7 / 7 = 1
Por lo que un serial válido sería: 225537777
La rutina de comprobación del serial podría resumirse también así:
720300 MOD serial = 720300





































