anun1

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