|
Título: Ayuda Con El Crackme_8_by_ShoulcK Publicado por: Flamer en 24 Septiembre 2025, 16:17 pm Hola estoy intentando resolver el Crackme 8 by ShoulcK pero me tope con piedra el boton ya lo tengo parchado el problema es en esta parte del codigo
Código
en la linea 004538EF toma el valor de EAX y xorea para despues ser restado en fin el valor de EAX ya lo tengo es F389765F....el problema es con EDX he sacado como 4 valores pero ninguno da... les muestro un valor este 5538015 xorea con 796E723 ese valor debe ser igual a el resultado de la resta de 28E18DE aqui la linea Código
es una resta pero tienen que ser igual para que la bandera ZF se ponga en 1 y el programa no salte y si se preguntan como obtuve esos numeros lo hice por fuerza bruta pero no se confundan no es fuerza bruta de clave por clave sino este programa que voy insertando yo un valor y me muestra que tan lejos o que tan serca me encuentro del serial Código
aqui el programa con el boton ya parchado por si quieren probar https://www.mediafire.com/file/3buf2gzegax05ui/Crackme_8_by_ShoulcK_crack.exe/file (https://www.mediafire.com/file/3buf2gzegax05ui/Crackme_8_by_ShoulcK_crack.exe/file) otra cosa edito para insertar el serial solo juntamos los dos valores que les di esto 5538015 F389765F y los ponemos en la calculadora de windows y nos da esto 383791225025164895 ese es el serial a ingresar aver quien me ayuda o me diga si tiene solucion saludos Flamer Título: Re: Ayuda Con El Crackme_8_by_ShoulcK Publicado por: MCKSys Argentina en 24 Septiembre 2025, 23:08 pm Hola!
Todo el secreto está en el SBB: eso hace que EDX y EAX estén "relacionados" (piensa en QWORDS!) Serial correcto: 365495262636504647 Para los bruteforcers puedes usar "Binary paste" en el mismo Olly ;) Bruteforcer para EAX (parte baja del QWORD) Código: B9 00 00 00 00 8B C1 35 C7 FF 8F C8 8B D1 81 EA C7 EC 82 B8 41 3B C2 75 EC 90 Bruteforcer para EDX (parte alta del QWORD) Código: B9 00 00 00 00 8B C1 35 23 E7 96 07 8B D1 F9 81 DA DE 18 8E 02 41 3B C2 75 EB 90 Con eso deberías poder entender el algoritmo... Saludos! Título: Re: Ayuda Con El Crackme_8_by_ShoulcK Publicado por: Flamer en 25 Septiembre 2025, 16:10 pm Hola! Todo el secreto está en el SBB: eso hace que EDX y EAX estén "relacionados" (piensa en QWORDS!) Serial correcto: 365495262636504647 Para los bruteforcers puedes usar "Binary paste" en el mismo Olly ;) Bruteforcer para EAX (parte baja del QWORD) Código: B9 00 00 00 00 8B C1 35 C7 FF 8F C8 8B D1 81 EA C7 EC 82 B8 41 3B C2 75 EC 90 Bruteforcer para EDX (parte alta del QWORD) Código: B9 00 00 00 00 8B C1 35 23 E7 96 07 8B D1 F9 81 DA DE 18 8E 02 41 3B C2 75 EB 90 Con eso deberías poder entender el algoritmo... Saludos! 2 dudas por que al restar Código
1-el resultado es 02846722 ya lo intente en la calculadora y nada me sale 02846723....ya se que no es una simple resta, yo ya sospechaba que el truco del serial estaria en esa instruccion pero yo no entiendo que hace esa instruccion y ya le pregunte a chatgpt y nada que me saca de dudas de que es lo que esta asiendo esa instruccion 2-estoy usando x64dbg no se como hacer fuerza bruta y ni en ollydbg y de donde sacas esos numerotes en hexadecimal saludos voy a seguir intentando EDITO ya entendi si la bandera CF tiene 1 se resta uno mas en Código
ya entendi tambien para que la bandera CF este en 1 la resta anterior tiene que dar un numero negativo en Código
estuve viendo como se conportaba tu serial en fin es todo...me queda la duda de la fuerza bruta y de donde sacastes esos numeros grandes y que es "Binary paste" no soy un hacker soy un aprendis a un nose muchas cosas y esto lo hago como pasa tiempo en fin saludos Título: Re: Ayuda Con El Crackme_8_by_ShoulcK Publicado por: MCKSys Argentina en 29 Septiembre 2025, 22:26 pm Hola!
me queda la duda de la fuerza bruta y de donde sacastes esos numeros grandes El número sale de la misma operación SBB: si el segundo depende del flag de carry, entonces estás tratando con números mayores a 1 DWORD (por eso en mi mensaje puse que pienses en QWORDS) y que es "Binary paste" Si copias los bytes que puse y vas a x64dbg (u Olly), seleccionas un pedazo de codigo (cuyo tamaño en bytes sea mayor a los que has copiado) y le das click derecho-"Binary"-"Paste", los bytes del codigo serán reemplazados por los que has pegado. De esa forma puedes hacer un bruteforcing "on the fly", sin necesidad de herramientas exteriores (para ejecutar el codigo, te pararías en la 1era instruccion que pegaste, y usarías "Set RIP Here" ó CTRL+* para mover RIP a la instruccion. Desde ahí puedes tracear o ejecutar directamente. Conviene poner un BP al final del bucle para evitar que siga corriendo el programa más de lo necesario y poder ver el resultado en el registro dado). Saludos! Título: Re: Ayuda Con El Crackme_8_by_ShoulcK Publicado por: EdePC en 3 Octubre 2025, 03:54 am Le eché un par de ojos y es un crackme bien enredado, seguramente por estar el delphi, con DeDe se tiene muuuucho más claro, pero x64dbg te pierdes, con OllyDBG puedes buscar los nombres de los eventos y se ven algo más claros, con IDA también se ven algo más claros.
Tan solo aclarar el uso de sbb, en el libro de Caos Reptante se describe brevemente, lo normal es verlo acompañado de un sub, eax, y edx, todo esto se utiliza para restar números mayores a 32bits (4Bytes), si uno conoce las instrucciones mul y div lo entiende un poco mejor porque esas instrucciones usan a edx y eax a la vez. Al final se llega a la conclusión de: Siendo una posible contraseña: 123456789123456789 01B69B4B ACD05F15 x y Se tiene que obtener que: x - 028E18DE = x xor 0796E723 y - B882ECC7 = y xor C88FFFC7 En caso del "Binary Paste" para aplicar la Fuerza Bruta en x64dbg sería así: (https://i.postimg.cc/Zntg25Qq/x64dbg.gif) Hay que restarle 1 a ese ECX resultante porque se le aumenta +1 en el código independientemente de la comparación correcta Y pensando en QWORDS que es como es en realidad sería: Contraseña: 365495262636504647 5128001 40897647 x Se tiene que obtener que: x xor 0796E723 C88FFFC7 = x - 028E18DE B882ECC7 05128001 40897647 xor 0796E723 C88FFFC7 = 05128001 40897647 - 028E18DE B882ECC7 02846722 88068980 = 02846722 88068980 Si, porque la combinación de sub y sbb sirven para restar números mayores a 32bit, como 05128001 40897647 - 028E18DE B882ECC7 no se puede con los registros de 32bit se separa la parte alta en EDX y la parte baja en EAX y se opera: Código
Resultado: 02846722 88068980 (https://i.postimg.cc/xTyCskZ8/image.png) 140897647- B882ECC7 -------- 88068980 Ese 1 lo puse en rojo porque me lo presté para completar la resta, eso activa al Carry Flag para restárselo al siguiente resultado y dar el resultado correcto. Título: Re: Ayuda Con El Crackme_8_by_ShoulcK Publicado por: Flamer en 3 Octubre 2025, 17:48 pm Esta bien ese metodo si pudiera ponerte like te pusiera EdePC y a MCKSys Argentina que es el de la idea
saludos |