Páginas

anun1

viernes, 3 de julio de 2026

Solucion Del Crackme 2 De Cruehead Por Flamer

Hola amigos hoy veremos el crackme 2 de cruehead es algo muy simple así que este tutorial no será tan extenso bueno empecemos este es el reto


Ahora si solo ingresamos 1 digito sea número, letra mayúscula o minúscula nos arroja este mensaje, así que yo ingreso la letra "a" y esto me muestra


Y listo el reto asido resuelto jajajaja... Bueno eso no es todo ojalá y fuera eso, pero el crackme tiene más y es una palabra que tenemos que encontrar.

Este reto tiene la API GetDlgItemTextA en la dirección 004012C2 que es la encargada de recoger lo que ingresamos.

Asi que ingresamos un serial y este es xoreado con la cadena "Messing_in_bytes" en la línea 004013A9 que en su valor hexadecimal es la siguiente 

4D 65 73 73 69 6E 67 5F 69 6E 5F 62 79 74 65 73    

El resultado tiene que ser igual a lo siguiente en su valor hexadecimal....Nota lo puse en su valor hexadecimal porque tiene caracteres raros

1F 2C 37 36 3B 3D 28 19 3D 26 1A 31 2D 3B 37 3E

Bueno para no ser un programa en javascript y html le pedí ala IA que me los xoreara y esto me dio

ÍndiceCadena 1 (Hex)Cadena 2 (Hex) / ASCIIResultado (Hex)Carácter ASCII
11F4D ('M')52R
22C65 ('e')49I
33773 ('s')44D
43673 ('s')45E
53B69 ('i')52R
63D6E ('n')53S
72867 ('g')4FO
8195F ('_')46F
93D69 ('i')54T
10266E ('n')48H
111A5F ('_')45E
123162 ('b')53S
132D79 ('y')54T
143B74 ('t')4FO
153765 ('e')52R
163E73 ('s')4DM

así que el valor a encontrar es: RIDERSOFTHESTORM

así que ingresamos la palabra clave y el resultado es el siguiente



Bueno creo que eso es todo saludos Flamer

viernes, 26 de junio de 2026

Solucion al Crackme 7 de la pagina Rogerfm.Net

Hola amigos hoy veremos la solución del reto 7 de la página rogerfm.net, este reto hace tiempo lo había resuelto y ahora lo traigo de nuevo.

aquí una foto del reto



Este reto primeramente lee un valor desde el registro, si estas en una máquina de 32 bits el valor de registro será este

HKEY_LOCAL_MACHINE\SOFTWARE\A Challenge for Newbies

y dentro de este la clave REG_SZ llamado password   tenemos que encontrar el valor de esa clave 

y si estás usando una máquina de 64bits la ruta es

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\A Challenge for Newbies 

Con los mismos valores... Bueno la clave a encontrar y que se guarda en el registro en la ruta mencionada anteriormente es de 8 dígitos y se divide en partes.

La primera es que se suma cada dígito por su valor ASCII y el resultado lo multiplica por su posición y el resultado tiene que ser igual a 4684666

Nota: estamos en JavaScript, y este lenguaje lees desde la posición 0 o sea el dígito 0.... Pero en vez de empezar desde el dígito 0 empezaremos desde el dígito 1 o posición 1...

después toma los dígitos  5 y 4 y resta digito 5 - dígitos - 1

después toma los dígitos  4 y 2 y resta digito 4 - digito 2 - 1

después toma los dígitos  2 y 1 y resta digito 2 - digito 1 - 2

después toma los dígitos  1 y 6 y resta digito 1 - digito 6 - 7

después toma los dígitos  6 y 7 y resta digito 6 - digito 7 - 2

después toma los dígitos  7 y 8 y resta digito 7 - digito 8 - 2

después toma los digitos  8 y 3 y resta digito 8 - digito 3 - 0

como pueden ver es por fuerza bruta como el anterior así que yo hice un fuerza bruta, pero ami manera y es calando dígito por dígito y nos va diciendo que tan lejos o que tan cerca andamos y nos muestra el valor ASCII de cada dígito y la resta aquí se los dejo.... Nota: a ver si le entienden o yo solo me entiendo y me da pereza explicarlo

<head><title>Brute Force</title>
</head>
<body>
<br><br><br>
<center>
Solo Letras de (e) Hasta (t)<br><br>
<input type="text" id="clave" maxlength="8" style="width:150;height:40;font-size:25;text-align:center;"><br><br>
<input type="button" value="Manual" onclick="calcular()">
<br><br>
<div id="eti1" style="background:#FA0404;width:500;">Valor a encontrar es 4684666 ----></div><br>
<div id="eti2" style="background:#FA0404;width:500;"></div><br>
<div id="eti3" style="background:#FA0404;width:500;"></div><br>
<div id="eti4" style="background:#FA0404;width:500;"></div><br>
<div id="eti5" style="background:#FA0404;width:500;"></div><br>
<div id="eti6" style="background:#FA0404;width:500;"></div><br>
<div id="eti7" style="background:#FA0404;width:500;"></div><br>
<div id="eti8" style="background:#FA0404;width:500;"></div><br>
</center>
<script>
function calcular()
{
   let pass,x,d1,d2,s,sum=0;

   pass=document.getElementById("clave").value;
   
   if(pass.length==8)
   {
      for(x=7;x>=0;x--)
      {
         digi=pass[x];
	 sum=(sum + digi.charCodeAt(0)) * (x + 1);
      }
      
      document.getElementById("eti1").innerHTML="Valor a encontrar es 4684666 ----> " + sum;
      if(sum==4684666)
      {	  
         document.getElementById("eti1").style.background="#2FF807"; //verde  
      }
      else
      {
         document.getElementById("eti1").style.background="#FA0404"; //rojo
      }
      
      d1 = pass[4];
      d2 = pass[3];
      s  = d1.charCodeAt(0) - d2.charCodeAt(0) - 1;
      document.getElementById("eti2").innerHTML= "digitos 5 y 4_____" + d1 + " - " + d2 + "_____" + d1.charCodeAt(0) + " - " + d2.charCodeAt(0) + " - 1 = " + s + "  igual a cero";   
      if(s == 0)
      {
         document.getElementById("eti2").style.background="#2FF807";  
      }
      else
      {
         document.getElementById("eti2").style.background="#FA0404";
      }
      
      d1 = pass[3];
      d2 = pass[1];
      s  = d1.charCodeAt(0) - d2.charCodeAt(0) - 1;
      document.getElementById("eti3").innerHTML= "digitos 4 y 2_____" + d1 + " - " + d2 + "_____" + d1.charCodeAt(0) + " - " + d2.charCodeAt(0) + " - 1 = " + s + "  igual a cero";  
      if(s == 0)
      {
         document.getElementById("eti3").style.background="#2FF807";  
      }
      else
      {
         document.getElementById("eti3").style.background="#FA0404";
      }      
      
      d1 = pass[1];
      d2 = pass[0];
      s  = d1.charCodeAt(0) - d2.charCodeAt(0) - 2;
      document.getElementById("eti4").innerHTML= "digitos 2 y 1_____" + d1 + " - " + d2 + "_____" + d1.charCodeAt(0) + " - " + d2.charCodeAt(0) + " - 2 = " + s + "  igual a cero";  
      if(s == 0)
      {
         document.getElementById("eti4").style.background="#2FF807";  
      }
      else
      {
         document.getElementById("eti4").style.background="#FA0404";
      }
	  
      d1 = pass[0];
      d2 = pass[5];
      s  = d1.charCodeAt(0) - d2.charCodeAt(0) - 7;
      document.getElementById("eti5").innerHTML= "digitos 1 y 6_____" + d1 + " - " + d2 + "_____" + d1.charCodeAt(0) + " - " + d2.charCodeAt(0) + " - 7 = " + s + "  igual a cero"; 
      if(s == 0)
      {
         document.getElementById("eti5").style.background="#2FF807";  
      }
      else
      {
         document.getElementById("eti5").style.background="#FA0404";
      }
	  
      d1 = pass[5];
      d2 = pass[6];
      s  = d1.charCodeAt(0) - d2.charCodeAt(0) - 2;
      document.getElementById("eti6").innerHTML= "digitos 6 y 7_____" + d1 + " - " + d2 + "_____" + d1.charCodeAt(0) + " - " + d2.charCodeAt(0) + " - 2 = " + s + "  igual a cero";  
      if(s == 0)
      {
         document.getElementById("eti6").style.background="#2FF807";  
      }
      else
      {
         document.getElementById("eti6").style.background="#FA0404";
      }
	  
      d1 = pass[6];
      d2 = pass[7];
      s  = d1.charCodeAt(0) - d2.charCodeAt(0) - 2
      document.getElementById("eti7").innerHTML= "digitos 7 y 8_____" + d1 + " - " + d2 + "_____" + d1.charCodeAt(0) + " - " + d2.charCodeAt(0) + " - 2 = " + s + "  igual a cero";  
      if(s == 0)
      {
         document.getElementById("eti7").style.background="#2FF807";  
      }
      else
      {
         document.getElementById("eti7").style.background="#FA0404";
      }
	  
      d1 = pass[7];
      d2 = pass[2];
      s  = d1.charCodeAt(0) - d2.charCodeAt(0)
      document.getElementById("eti8").innerHTML= "digitos 8 y 3_____" + d1 + " - " + d2 + "_____" + d1.charCodeAt(0) + " - " + d2.charCodeAt(0) + " = " + s + "  igual a cero";  
      if(s == 0)
      {
         document.getElementById("eti8").style.background="#2FF807";  
      }
      else
      {
         document.getElementById("eti8").style.background="#FA0404";
      }
   }
}
</script>
</body>
</html>

aquí les dejo una foto

Así que ingresamos 8 dígitos y damos clic al botón y vamos calando letra por letra y hay nos muestra que dígitos está comparando y con cuanto nos hemos pasado en su valor negativo o positivo y cuando le atines se pondrá en verde

El valor que encontraremos sera prestige y verificamos en el programa de fuerza bruta 


ahora lo aguardamos en el registro


Como nos sigue marcando error y no muestra el cartelito correcto así que ingresamos el valor 12345678 en el cuadro de texto y vemos que es comparado los primeros 4 dígitos por 61736964 y después los otros 4 por 72657473 así que juntamos los números así  72657473  61736964 y nos vamos a una página para pasarlos de hexadecimal a texto y nos da esto


Como vemos nos da la palabra retsasid, pero la voltearemos porque el depurador x64dbg los lee al revés y nos queda la palabra disaster

luego ingresamos ese valor al crackme y nos arroja esto


Bueno creo que eso es todo espero les guste saludos Flamer


miércoles, 17 de junio de 2026

Extraer, Ver Archivos y Eliminar....Analizador De Archivos Rar en javascript y HTA

Hola amigos hoy veremos un simple código que hice en JavaScript, pero esta vez no es con HTML sino que está en hta porque en HTML no se puede usar comandos de consola, también le pedí a la IA que me hiciera una versión y para acabarla ella la hizo mejor que yo, así que son 2 códigos, pero la de la IA es un poco más reducida ya verán porque, primero les dejo una foto del mío y como funciona


Damos en el botón examinar y elegimos el archivo rar y después damos en el botón ver archivos y se muestra lo siguiente

Ahora si queremos extraer todo solo damos clic en el botón que dice eso, ese botón no lo explicaré ya que sale de sobra, los que voy a explicar son los otros 3, bueno empecemos si queremos extraer un archivo primero seleccionamos el nombre del archivo y damos en copiar, para después pegarlo en el cuadro de texto así.

 
después damos clic en extraer y pegamos en el cuadro de texto que aparecerá


Y listo nos muestra el mensaje de archivo extraído, ahora si queremos agregar solo damos clic en el botón agregar y aparecerá un cuadro de diálogo y elegimos el archivo a agregar este.



Yo elegí el archivo de firefox.exe y nos manda el siguiente mensaje

después otro mensaje que dice que elijamos de nuevo el archivo rar, ya que el valor del examinar cambio


Ahora damos clic en examinar y elegimos el archivo rar de nuevo y damos clic en el botón examinar y vemos que nos muestra que el archivo si se agregó
Ahora si queremos eliminar el archivo damos clic en el botón que dice eso, pero antes copeamos el nombre del archivo y pegamos en el cuadro de texto que aparecerá como se ve en la imagen

Y nos muestra lo siguiente


Bueno ahora les dejaré el código

<html>
<head>
<title>Simple Analizador De Archivos Rar</title>
</head>
<body>
<center>
<input type="file" size="50" id="archi"><br><br>
<textarea cols="100" rows="30" id="log" disabled></textarea><br><br>
<input type="button" value="Ver Archivos" id="v" onclick="ver()">
<input type="button" value="Extraer" id="ex" onclick="extrae()" disabled>
<input type="button" value="Extraer Todo" id="tod" onclick="todo()" disabled>
<input type="button" value="Agregar" id="agre" onclick="agregar()" disabled>
<input type="button" value="Eliminar" id="del" onclick="dele()" disabled>

</center>
<script>
var shell=new ActiveXObject("WScript.Shell");
var fso=new ActiveXObject("Scripting.FileSystemObject");
var res,loger,f,posi;
function ver()
{
    f = document.getElementById("archi").value;
	
   if(fso.FileExists(f) && /\.rar$/i.test(f))
   {
      loger=shell.Exec("C:\\Program Files\\WinRAR\\unrar.exe l " + String.fromCharCode(34) + f + String.fromCharCode(34));
      res=loger.StdOut.ReadAll();
      posi=res.indexOf("Atributos");
      res=res.substr(posi);
	   
      document.getElementById("log").value=res;
      document.getElementById("ex").disabled=false;
      document.getElementById("tod").disabled=false;
      document.getElementById("agre").disabled=false;
      document.getElementById("del").disabled=false;
   }
   else
   {
       alert("Error El Archivo No Existe...");
   } 	
}
function extrae()
{
   var file=window.prompt("Dame El Nombre Del Archivo a Extraer");
   
   f = document.getElementById("archi").value;
   loger=shell.Exec("C:\\Program Files\\WinRAR\\unrar.exe x " + String.fromCharCode(34) + f + String.fromCharCode(34) + " " + String.fromCharCode(34) + file + String.fromCharCode(34));
   //res=loger.StdOut.ReadAll();
   alert("Archivo Extraido Con Exito...");
}
function todo()
{
   
   f = document.getElementById("archi").value;
   posi=f.lastIndexOf("\\");
   res=f.substr(0,posi);
   loger=shell.Exec("C:\\Program Files\\WinRAR\\unrar.exe x " + String.fromCharCode(34) + f + String.fromCharCode(34) + " " + String.fromCharCode(34) + res + String.fromCharCode(34));
   //res=loger.StdOut.ReadAll();
   alert("Archivos Extraidos Con Exito...");
}
function agregar()
{
    f = document.getElementById("archi").value;
    document.getElementById("archi").click();
    res=document.getElementById("archi").value;
    	
    loger=shell.Exec("C:\\Program Files\\WinRAR\\rar.exe a -ep " + String.fromCharCode(34) + f + String.fromCharCode(34) + " " + String.fromCharCode(34) + res + String.fromCharCode(34));
    res=loger.StdOut.ReadAll();
    alert(res);
    document.getElementById("ex").disabled=true;
    document.getElementById("tod").disabled=true;
    document.getElementById("agre").disabled=true;
    document.getElementById("del").disabled=true;
    alert("Ahora Elige El Archivo rar");
}
function dele()
{
   var file=window.prompt("Dame El Nombre Del Archivo a Extraer");
   
   f = document.getElementById("archi").value;
   loger=shell.Exec("C:\\Program Files\\WinRAR\\rar.exe d " + String.fromCharCode(34) + f + String.fromCharCode(34) + " " + String.fromCharCode(34) + file + String.fromCharCode(34));
   res=loger.StdOut.ReadAll();
   alert(res);
}
</script>
</body>
</html>

Aclaro el código se puede mejorar yo lo hice de manera simple y pose algún comentario porque se trababa, ya que usaba StdOut.ReadAll()  en fin ahora les muestro el codigo de la IA una foto primero



Como ven tiene mejor presentación que el mío y es más complejo... Aclaro si me gusta como quedo la versión del IA, pero ami en lo personal me gusta lo más simple para practicar y enseñar en fin, si quieren probarlo damos clic en buscar y elegimos el archivo rar y después damos clic en ver contenido.... Ahora su código

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Visor de Archivos RAR</title>
<HTA:APPLICATION
    ID="VisorRAR"
    APPLICATIONNAME="VisorRAR"
    BORDER="thin"
    CAPTION="yes"
    ICON="shell32.dll,21"
    MAXIMIZEBUTTON="yes"
    MINIMIZEBUTTON="yes"
    SCROLL="auto"
    SINGLEINSTANCE="yes"
    SYSMENU="yes"
    WINDOWSTATE="normal"
/>
<style>
  html, body {
    height: 100%;
    margin: 0;
    font-family: "Segoe UI", Tahoma, Arial, sans-serif;
    background: #1e1e1e;
    color: #e0e0e0;
  }
  .barra {
    padding: 12px;
    background: #2d2d30;
    border-bottom: 1px solid #444;
  }
  #ruta {
    width: 55%;
    padding: 5px;
    background: #1e1e1e;
    color: #fff;
    border: 1px solid #555;
  }
  button {
    padding: 5px 14px;
    margin-left: 6px;
    background: #3c3c3c;
    color: #fff;
    border: 1px solid #555;
    cursor: pointer;
  }
  button:hover { background: #505050; }
  #salida {
    margin: 12px;
    height: 75%;
    overflow: auto;
    background: #0c0c0c;
    color: #6fdc6f;
    font-family: Consolas, "Courier New", monospace;
    font-size: 13px;
    padding: 10px;
    white-space: pre;
    border: 1px solid #333;
  }
  #estado {
    margin-left: 12px;
    font-size: 12px;
    color: #999;
  }
  #herramienta {
    margin-top: 6px;
    font-size: 11px;
    color: #888;
  }
</style>
</head>
<body onload="document.getElementById('herramienta').innerText = mostrarHerramienta();">

<div class="barra">
  <input type="text" id="ruta" placeholder="Ruta completa del archivo .rar">
  <input type="file" id="explorador" accept=".rar" style="display:none"
         onchange="document.getElementById('ruta').value = this.value;">
  <button onclick="document.getElementById('explorador').click();">Buscar...</button>
  <button onclick="listarContenido();">Ver contenido</button>
  <span id="estado"></span>
  <div id="herramienta"></div>
</div>

<div id="salida">El contenido del archivo .rar aparecerá aquí...</div>

<script language="JScript">

// Busca 7-Zip o WinRAR en las rutas habituales de instalación
function buscarHerramienta() {
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var candidatos = [
    {ruta: "C:\\Program Files\\7-Zip\\7z.exe", tipo: "7z"},
    {ruta: "C:\\Program Files (x86)\\7-Zip\\7z.exe", tipo: "7z"},
    {ruta: "C:\\Program Files\\WinRAR\\UnRAR.exe", tipo: "unrar"},
    {ruta: "C:\\Program Files (x86)\\WinRAR\\UnRAR.exe", tipo: "unrar"},
    {ruta: "C:\\Program Files\\WinRAR\\Rar.exe", tipo: "unrar"},
    {ruta: "C:\\Program Files (x86)\\WinRAR\\Rar.exe", tipo: "unrar"}
  ];
  for (var i = 0; i < candidatos.length; i++) {
    if (fso.FileExists(candidatos[i].ruta)) return candidatos[i];
  }
  return null;
}

function mostrarHerramienta() {
  var h = buscarHerramienta();
  if (h) {
    return "Herramienta detectada: " + h.ruta;
  }
  return "No se detectó 7-Zip ni WinRAR. Instala alguno de los dos para poder listar archivos .rar.";
}

function listarContenido() {
  var rutaArchivo = document.getElementById("ruta").value;
  var salida = document.getElementById("salida");
  var estado = document.getElementById("estado");

  if (!rutaArchivo) {
    alert("Escribe o selecciona la ruta de un archivo .rar");
    return;
  }

  var fso = new ActiveXObject("Scripting.FileSystemObject");
  if (!fso.FileExists(rutaArchivo)) {
    alert("El archivo no existe:\n" + rutaArchivo);
    return;
  }

  var herramienta = buscarHerramienta();
  if (!herramienta) {
    salida.innerText = "No se encontró ninguna herramienta capaz de leer archivos RAR.\n\n" +
      "Instala 7-Zip (https://www.7-zip.org) o WinRAR y vuelve a intentarlo.";
    return;
  }

  estado.innerText = "Leyendo...";
  salida.innerText = "";

  var comando;
  if (herramienta.tipo === "7z") {
    // 7z l = listar contenido en formato de tabla
    comando = '"' + herramienta.ruta + '" l "' + rutaArchivo + '"';
  } else {
    // UnRAR/Rar lb = listar solo nombres de archivo (bare list)
    comando = '"' + herramienta.ruta + '" lb "' + rutaArchivo + '"';
  }

  var shell = new ActiveXObject("WScript.Shell");
  try {
    var proceso = shell.Exec(comando);
    var resultado = proceso.StdOut.ReadAll();
    var errores = proceso.StdErr.ReadAll();

    if (resultado.replace(/\s/g, "") === "" && errores.replace(/\s/g, "") !== "") {
      salida.innerText = "Error al leer el archivo:\n\n" + errores;
    } else {
      salida.innerText = resultado;
    }
  } catch (e) {
    salida.innerText = "Ocurrió un error al ejecutar el comando:\n" + e.message;
  } finally {
    estado.innerText = "";
  }
}
</script>
</body>
</html>


ahora una foto de lo que nos muestra



Bueno si quiere probar los código solo copean y pegan en el bloc de notas y aguardan como "visor.hta"

bueno creo que eso es todo saludos Flamer


martes, 9 de junio de 2026

Solucion al Reto Key File ReverseMe

Hola amigos hoy veremos como crear el archivo de registro del reto Key File ReverseMe, es un reto sencillo solo tenemos que crear el archivo de registro en la misma ubicación donde se encuentra el ejercicio, una cosa el archivo no tiene ventana así que solo les mostraré los mensajes o MenssageBox que nos envía, al ejecutarlo nos envía este, ya que no tenemos el archivo de registro.


Como pueden ver en el mensaje nos dice que no estamos registrados, y también dice en el título el nombre del reto.
Si se preguntan como crear el archivo de registro o como se llama pues bueno, el archivo se debe llamar "keyfile.dat" y dentro del archivo la clave debe contener de 8 dígitos  "G" al principio y los demás dígitos pueden ser aleatorios pero esta clave tiene que ser mayor de 16 dígitos, aquí les dejo un programa en JavaScript y HTML para que lo vean y prueben.

<html>
<head>
<title>Reto Key File ReverseMe  ...:::By Flamer:::...</title>
</head>
<body bgcolor="black">
<center>
<marquee style="font-size:30;color:yellow;">Creador de archivo De Registro ...:::By Flamer:::...</marquee><br><br>
<input type="file" id="archi" size="50"><br><br>
<input type="button" value="Crear Archivo" onclick="crear()">
</center>
<script>
function crear()
{
   var f=document.getElementById("archi").value;
   
   if(f=="")
   {
      alert("Error ruta vacia");
   }
   else
   {
	  var cadena="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	  var largo=cadena.length - 1;
	  var posi,pws="GGGGGGGG";
	  var rand=parseInt(Math.random()*(50-8) + 8);
	  var fso=new ActiveXObject("Scripting.FileSystemObject");
	  
	  for(var x=0;x<rand;x++)
	  {
	     posi=parseInt(Math.random()*(largo-0)+0);
	     digi=cadena.substr(posi,1);
	     pws+=digi;
	  }
	  posi=f.lastIndexOf("\\");
	  var ruta=f.substr(0,posi);
	  var file=fso.CreateTextFile(ruta + "\\keyfile.dat",true);
	  file.WriteLine(pws);
	  file.Close();
	  
	  alert("Archivo De Registro Hecho correctamente");
   }
}
</script>
</body>
</html>

Bueno el programa sebe así.... Nota: si lo quieren probar solo copean y aguardan en el bloc de notas como "creador.hta"





Bueno buscamos la ruta del reto y creamos el archivo presionando el botón y nos arroja lo siguiente


  
Ahora vamos a ver los archivos de la carpeta y se ven así


Ahora lo ejecutamos y nos arroja lo siguiente


Bueno como pueden ver el reto asido superado y la clave que nos generó o que esta adentro del archivo es esta:



Bueno espero les haya gustado saludo Flamer y hasta la próxima

sábado, 30 de mayo de 2026

Solucion Del Crackme 6 De RogerFm.Net

Hola amigos hoy traigo la solución del crackme 6 de la página rogerfm.net, una cosa este reto yo lo resolví con fuerza bruta no encontré otro remedio y lo hice usando Python, solo subi una version en javascript y que me lo pasara a ese lenguaje, pero como yo casi no se Python le pedí ayuda a chatgpt y si se preguntan por qué use Python esta ves, es simple me di cuenta que este lenguaje es más rápido para este tipo de cosas me refiero a la fuerza bruta en JavaScript es más lento y no maneja valores correctos de 32 bits al igual que el registro EAX y en JavaScript los números son tipo Number (doble precisión IEEE-754 de 64 bits), no registros de 32 bits.

aqui una foto del reto




como aqui no pongo ensamblador les dejare una version en javascript de lo que hace

   let valor = "CBDF9912"; 
   let mul = 1;
   let pass = document.getElementById("pass").value;

   for(let x=0; x<5; x++)
   {
      let d = pass.charCodeAt(x);
      mul = Math.imul(d, mul);
   }

   for(let x=0; x<5; x++)
   {
      let d = pass.charCodeAt(x);
      mul = Math.imul((mul + d) | 0, d);
   }

   let caden = (mul >>> 0).toString(16).toUpperCase();

   if(caden === valor)
   {
      alert("Correcto Felicidades");
   }
   else
   {
      alert("Valor Incorrecto");
   }

Lo que hace el código en el primer bucle es tomar el primer carácter, lo convierte a su valor ASCII y lo multiplica por el segundo digito(de su valor ASCII y así) y el resultado lo multiplica por el tercero y el resultado por el siguiente digito y así seguidamente hasta llegar al dígito 5.

después en el siguiente bucle toma el primer dígito y hace lo mismo lo multiplica por cada uno, pero con la diferencia que esta vez los suma(por su valor ASCII) primero antes de multiplicarlos.

Bueno aquí el código en python de la fuerza bruta

import itertools
import string

chars = string.ascii_letters + string.digits

def ciclon(passwd):

    a,b,c,d,e = [ord(x) for x in passwd]

    eax = a

    eax = (eax * b) & 0xFFFFFFFF
    eax = (eax * c) & 0xFFFFFFFF
    eax = (eax * d) & 0xFFFFFFFF
    eax = (eax * e) & 0xFFFFFFFF

    for x in (a,b,c,d,e):
        eax = ((eax + x) * x) & 0xFFFFFFFF

    return eax == 0xCBDF9912, eax

for p in itertools.product(chars, repeat=5):

    passwd = ''.join(p)

    ok, mul = ciclon(passwd)

    if ok:

        print("ENCONTRADO")
        print("PASS:", passwd)
        print("VALOR:", hex(mul))

        break

aqui una foto del resultado 



como ven la clave es PSsKv

y aqui una foto del crackme con la clave correcta


Bueno saludos Flamer y espero les guste, otra cosa este reto ya lo había resuelto yo pero esta ves no me acorde como y lo hice así



sábado, 2 de mayo de 2026

Programa En Html y JavaScript Que Lee Los String De Un Ejecutable

Hola amigos hoy les dejaré un simple programa que muestra los String de un ejecutable, no lo he probado con imágenes u otros archivos pero debe de funcionar.

Nota: no lee Unicode así que no esperen todos los String

aquí una foto


Ahora lo probaremos con el crackme 12 de ShoulcK y me muestra lo siguiente


Bueno aquí les dejó el código, si lo quieren probar solo copean y pegan en el bloc de notas y aguardan como extractor.hta por otro lado estoy en el crackme 6 de Rogerfm así que creo que será el siguiente tema y después veré este crackme u otro

<html>
<head>
<title>Extractor de Strings</title>
</head>
<body>
<center>
<br><br>
<input type="file" id="ruta" size="50"><br><br>
<button onclick="extraer()">Extraer Strings</button>
<br><br>
<textarea id="log" cols="80" rows="25"></textarea>
</center>
<script>
function extraer()
{
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var archivo = fso.OpenTextFile(document.getElementById("ruta").value, 1, false);

    var contenido = archivo.ReadAll();
    archivo.Close();

    var resultado = "";
    var actual = "";

    for (var i = 0; i < contenido.length; i++)
    {
        var c = contenido.charCodeAt(i);

        // rango ASCII imprimible
        if (c >= 32 && c <= 126)
        {
            actual += String.fromCharCode(c);
        }
        else
        {
            if (actual.length >= 4) // mínimo tamaño
            {
                resultado += actual + "\n";
            }
            actual = "";
        }
    }
    document.getElementById("log").value = resultado;
}
</script>
</body>
</html>
 

Bueno creo que eso es todo espero les guste, ya lo prevé con un archivo ZIP asiendo este escrito lo intente y medio lo siguiente

Resulta que al final del texto me muestra los archivos en listados del archivo ZIP bueno, saludos Flamer y espero les sirva a alguien