Páginas

anun1

martes, 4 de agosto de 2026

Solucion al Crackme 8 de RogerFm.Net

Hola amigos este es el último reto de la sección de crackmes de la página rogerfm.net, es el último crackme que nos quedaba pendientes y con esto terminamos, este reto tenía tiempo que lo avía solucionado así que empecemos.

ingresamos un serial al azar y nos arroja lo siguiente



Primera mente el reto acepta solo de 1 a 8 dígitos y tenemos que poner como fecha en el ordenador 20/05/1992 para que quede registrado.

Bueno para generar el serial tomamos digitos al azar de esta cadena

0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

Nota:tome esta cadena porque no tiene dígitos raros, primera mente para generar el serial tomamos el dígito 1 y 7 al azar de la cadena, después para calcular el dígito 3 tenemos que tomar una posición al azar de 0 a 8, en el keygen es de 1 a 9 porque en JavaScript los string empiezan de 0.

Bueno tenemos la longitud de 0 a 8 y después lo sumamos con el valor ASCII del dígito 1 y verificamos si se encuentra un dígito en la cadena antes mencionada y si se encuentra lo tomamos si no se encuentra el ciclo se repite, eso mismo pasa con el dígito 8 del serial pero esta vez no se suma, se resta y se busca en la cadena si se encuentra algún dígito que restado del valor ASCII del dígito 7 menos la longitud de 0 a 8 y si se encuentra se toma y si no el ciclo se repite.

Esto mismo pasa con los dígitos 5 y 6... los dígitos 2 y 4 se toman al azar desde la cadena y al dígito 5 se le suma x longitud de 0 a 8 y para calcular el dígito 6 se hace lo mismo, pero a este sele resta, es igual como se hizo anterior mente.

Bueno el serial del archivo "abc.xyz" que se descarga se toman los dígitos 6,4,8,1 del serial que se pone en el crackme, esos dígitos van adentro del archivo antes mencionado.

aquí el código del generador de claves

<html>
<head><title>Keygen Crackme 8 Rogerfm.Net</title>
</head>
<body bgcolor="black">
<center>
<table border="1" width="1200" style="font-size:30px;color:white;">
<tr><td>
<marquee>Keygen Crackme 8 Rogerfm.Net    .....:::::By Hacked Flamer:::::.....</marquee>
</td></tr>
</table>
<br><br><br><br>
<table border="1" width="600" height="180" style="font-size:20px;text-align:center;color:white;">
<tr><td>
<input type="text" id="s1" placeholder="Serial" style="background-color:#4D524A;color:white;font-size:15;text-align:center;"> <input type="button" value="Copy" onclick="copiar1()"><br><br>
<input type="button" value="Descargar Archivo" onclick="downloads()" style="background-color:Gray;color: white;font-size: 10px;font-size:30px;">
</td></tr>
</table>
<br><br>
<input type="button" id="genera" value="Generar" onclick="generar()">    <input type="button" value="Detener" onclick="stop()">
<br><br><br><br><br><br><br><br><br><br><br><br>
<div style="color:white;font-size:23px">Debes Cambiar La Fecha De Tu Sistema Operativo a 20/05/1992 Para Que El Crackme Pueda Ser Registrado Y El Archivo abc.xyz Debe Estar En La Misma Carpeta Del Crackme</div>
</center>
<script>
let tiempo;
let bytes;
function copiar1() 
{
   document.getElementById("s1").disabled=false;
   let c=document.getElementById('s1'); 
   c.select();
   document.execCommand('copy');
   document.getElementById("s1").disabled=true;
}
//===============================================================
function stop()
{
   clearTimeout(tiempo);
   document.getElementById("genera").disabled=false;
}
//===============================================================
function generar()
{ 
  tiempo=setTimeout(function(){gen()},10);
  document.getElementById("genera").disabled=true;
}
//================================================================
function gen()
{
  let digi   = new Array(8),posicion,sr,a,b,x,y;
  let cadena = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
  let largo  = cadena.length - 1;
   
  posicion = Math.floor(Math.random() * ((largo+1) - 0) + 0);
  digi[1]  = cadena[posicion];
  
  posicion = Math.floor(Math.random() * ((largo+1) - 0) + 0);
  digi[7]  = cadena[posicion];
  
  sr = Math.floor(Math.random()*((9+1)-1)+1);
  a  = digi[1].charCodeAt(0);
  b  = digi[7].charCodeAt(0);
  do
  {
     x = String.fromCharCode(a + sr);
     y = String.fromCharCode(b - sr);
     sr--;
  }
  while((cadena.indexOf(x) == -1) || (cadena.indexOf(y) == -1))
  
  digi[3] = x; 
  digi[8] = y;  
 
  posicion = Math.floor(Math.random() * ((largo+1) - 0) + 0);
  digi[2]  = cadena[posicion];
  
  posicion = Math.floor(Math.random() * ((largo+1) - 0) + 0);
  digi[4]  = cadena[posicion];
  
  sr = Math.floor(Math.random()*((9+1)-1)+1);
  a  = digi[2].charCodeAt(0);
  b  = digi[4].charCodeAt(0);
  do
  {
     x = String.fromCharCode(a + sr);
     y = String.fromCharCode(b - sr);
     sr--;
  }
  while((cadena.indexOf(x) == -1) || (cadena.indexOf(y) == -1))
  
  digi[5] = x; 
  digi[6] = y;  
 
 tiempo=setTimeout(function(){gen()},10);
 
 document.getElementById("s1").value=digi[1] + digi[2] + digi[3] + digi[4] + digi[5] + digi[6] + digi[7] + digi[8];
 bytes=digi[6] + digi[4] + digi[8] + digi[1];
}
function downloads()
{
   const blob = new Blob([bytes], { type: 'application/octet-stream' });
   const enlace = document.createElement('a');
   enlace.href = URL.createObjectURL(blob);
   enlace.download = 'abc.xyz'; 
   enlace.click();
   URL.revokeObjectURL(enlace.href);  
}
</script>
</body>
</html>

Si lo quieren probar solo copean el codigo en el bloc de notas y pegan para despues aguardar como "genera.html" aqui una foto


Damos clic en generar y luego detener y descargamos el archivo para después aguardar en el mismo lugar del crackme y copeamos el serial dado para después pegarlo en el crackme y nos arroja lo siguiente.


Bueno creo que eso es todo por hoy otra cosa no me adentro tanto en el debugger x32dbg, ya que como digo son soluciones y explico como funcionan los retos, no explico como traceo el crackme, ni pongo imágenes del desensamblado por miedo a que me quiten el blog, son soluciones y explicó como funciona.

En fin espero les haya gustado saludo flamer