anun1

miércoles, 22 de abril de 2026

Solucion al Reto Crackme 8 by ShoulcK

Hola hoy veremos la solución del reto 8 de ShoulcK, como el reto nos pide parchar el botón no pondré como hacerlo en x64dbg si no que usare el HxD para editarlo dejaré una captura

les dejaré el link donde yo pido ayuda en el hacker.net....agradesco a MCKSys Argentina y a EdePC por contestar y ayudarme a entender saludos y gracias

https://foro.elhacker.net/ingenieria_inversa/ayuda_con_el_crackme8byshoulck-t523914.0.html


Eso son los bits que tenemos que cambiar, ya que tenemos parchado el programa nos pide el serial el cual lo divide en 2 partes, por ejemplo si ingreso 111111111222222222 este lo convierte en hexadecimal y queda así 18ABEF78AFFDD8E y lo divide así

primera parte ala que llamaremos a = 8AFFDD8E  

segunda parte ala que llamaremos d = 18ABEF7 

bueno primeramente a las 2 las pasa por la función xor y ala parte a la xorea con  C88FFFC7 que en decimal es 3364880327 y ala parte d con 796E723 que en decimal es 127330083

despues de pasar por el xor a la dos partes se les resta pero a la parte d se le resta 1 si la bandera  CF esta en 1

ala primera parte que es a se le resta B882ECC7 que en decimal es 3095588039 y a la segunda parte que es d sele resta 28E18DE que en decimal es 42866910

asi que yo me invente un simple programa de fuerza bruta pero no es ir intentando numero por numero no eso tardaria un monton, solo es ir cambiando los digitos del serial carater por carater y este nos dice que tanto nos vamos acercando o alejando

aqui se los dejo primero para calcular a

<html>
<head><title>Brute Force</title>
</head>
<body>
<center>
<br><br>
<input type="text"  id="x" style="text-align:center;">
<input type="button" value="calcular" onclick="calcula()">
<br><br>
<textarea id="log" cols="50" rows="15"></textarea>
</center>
<script>
function calcula()
{
   let valor=document.getElementById("x").value;
   let a=0;b=0;
 
   a=valor ^ 3364880327;
   b=valor - 3095588039;
 
   if(a==b)
   {
      document.getElementById("log").value="LOS DOS SON IGUALES";
   }
   else
   {
      document.getElementById("log").value="el valor de a=" + a + "\n\nel valor de b=" + b;
	  
   }
}
</script>
</body>
</html>

ahora para calcular d

<html>
<head><title>Brute Force</title>
</head>
<body>
<center>
<br><br>
<input type="text"  id="x" style="text-align:center;">
<input type="button" value="calcular" onclick="calcula()">
<br><br>
<textarea id="log" cols="50" rows="15"></textarea>
</center>
<script>
function calcula()
{
   let valor=document.getElementById("x").value;
   let a=0;b=0;
 
   a=valor ^ 127330083;
   a++;
   b=valor - 42866910;
 
   if(a==b)
   {
      document.getElementById("log").value="LOS DOS SON IGUALES";
   }
   else
   {
      document.getElementById("log").value="el valor de a=" + a + "\n\nel valor de b=" + b;
	  
   }
}
</script>
</body>
</html>

Vamos a probar el primero no tiene caso que probemos los dos si se trabajan igual,

NOTA: este utimo codigo lo probe en chatgpt y meda una formula la cual meda el valor deseado, yo no entendi nada pero hay se las dejo


como vemos al final de la imagen esta el valor 85098497 que es el valor a buscar en fin seguimos 

ingresamos 1082750659 y nos muestra lo siguiente

como vemos los 2 son numeros negativos pero estan serca uno del otro asi que modificare los ultimos digitos del numero 1082750659 por 1082750567 y me arroja...Nota tambien me dio 1082750559 


son casi iguales asi que los ejecute y para el primero el valor es 1082750559 y el segundo 85098497 ahora los paso a hexadecimal 

a= 85098497 --->  5128001

d=1082750559 --->4089765F

despues lo juntamos

51280014089765F ---->365495262636504671

luego ingresamos el serial en el crackme y nos arroja lo siguiente


El crackme tiene varias soluciones hacerle un keygen creo que es algo complicado mas si usas html con javascript manejar numeros negativos da problemas y aparte que son numeros grandes, se me ocurre un keygen que este cambie los digitos del codigo anterior por nosotros pero eso lo veo complicado en fin saludos Flamer

 

No hay comentarios.:

Publicar un comentario