crackme -001

Haga clic para correr

Escriba cualquier cosa casualmente:

Pausa F12, presione k para ingresar a la pila

Haga clic derecho en la última línea para mostrar la llamada.

 

Miramos hacia arriba desde aquí para ver cómo se llama.

Se puede ver que hay un juicio jnz aquí. Si salta, ejecutará push 0x0, y luego el código ascll del aviso de falla de registro se escribirá en el registro. Luego llame al marco Acid_bur.0042A170.

Y si no saltas,

0042FB07 |. B9 CCFB4200 mov ecx, Acid_bur.0042FBCC
0042FB0C |. BA D8FB4200 mov edx, Acid_bur.0042FBD8

Escriba datos de estos dos lugares en el registro.

Luego, llame al cuadro emergente Acid_bur.0042A170 que muestra que el registro se realizó correctamente.

Por lo tanto, el método de descifrado es cortar la línea jnz. También puede modificar la lógica de esta línea.

Establezca un punto de interrupción en F2 en la llamada sobre jnz y ejecute.

Se encontró que el contenido del segundo cuadro de entrada se almacena en EDX.

Haga un intento de modificación y regístrese con éxito.

Principio de verificación de la investigación:

Hay un cmp eax, 0x4. Al comparar el valor en eax con el tamaño de 4, si jge (mayor o igual que), salte a 0042FA79; de lo contrario, llame al cuadro de mensaje de error Acid_bur.0042A170 y le indica un error en serie.

Después de 0042FA87 |. 8B45 F0 mov eax, [local.4] este paso, encontramos que la entrada 3456789 se guardó en eax.

0042FA8A |. 0FB600 movzx eax, byte ptr ds: [eax] Guarde el primer byte (es decir, "3") en eax.

Después de 0042FA8D |. F72D 50174300 imul dword ptr ds: [0x431750], eax se multiplica por un número y el resultado es el siguiente:

A partir de esto, el número en [0x431750] se puede calcular como 0x29.

0042FA93 |. A3 50174300 mov dword ptr ds: [0x431750], eax pone el resultado del cálculo en [0x431750].

0042FA98 |. A1 50174300 mov eax, dword ptr ds: [0x431750] ¿Volver a colocarlo? ? ? ?

0042FA9D |. 0105 50174300 add dword ptr ds: [0x431750], add eax, que es equivalente a multiplicar 2

0042FAA6 |. BA ACFB4200 mov edx, Acid_bur.0042FBAC Poner "CW" en

0042FAB3 |. BA B8FB4200 mov edx, Acid_bur.0042FBB8 Pon "CRACKED" en

0042FAC5 |. 8D55 E8 lea edx, [local.6] Resultado:

Después de ejecutar 0042FACD |. E8 466CFDFF llamar a Acid_bur.00406718, el valor en 0019F680 ha cambiado a 4182

Hasta ahora hemos visto estos cinco empujes, y los datos introducidos son "CW-4182-CRACKED"

Entre los cuales 0044FACD |. E8 466CFDFF llame a Acid_bur.00406718 Este comando es convertir 82b + 82b, es decir, 1056, en un número decimal, que es 4182

Finalmente obtenga el código de registro:

125 artículos originales publicados · Me gusta 31 · Visitas 60,000+

Supongo que te gusta

Origin blog.csdn.net/Fiverya/article/details/100892103
Recomendado
Clasificación