anun1

lunes, 16 de febrero de 2026

Cifrar Archivos con JavaScript y PowerShell

Hola amigos hoy vengo con un cifrador sencillo, les digo sencillo por que solo utiliza un xor nada mas y creo que es revertible en fin....pero ustedes pueden crear un cifrado mas complicado yo solo muestro uno secillo para este tema, ya que no soy experto en powershell.

bueno empesemos este cifrador cifra archivos texto y binarios este es.


si se que hay formas de cifrar archivos en powershell pero quise crear uno por mi cuenta para el blog y que seden una idea de como funcionan los cifradores y como manipular los archivos binarios y si lo hice sencillo en fin.... por otro lado quise verificar tambien que se puede estar utilizando comandos powershell desde javascript y vbscript, ya que para ejecutar archivos .ps1 se necesitan permisos seguimos.

este es el codigo completo en powershell separado linea por linea para que no se confundan

$Ruta = ruta
$Password = pass

# ===== Generar MD5 de la contraseña =====
$md5 = [System.Security.Cryptography.MD5]::Create()
$passBytes = [System.Text.Encoding]::UTF8.GetBytes($Password)
$hashBytes = $md5.ComputeHash($passBytes)

# ===== Leer archivo en binario =====
$fileBytes = [System.IO.File]::ReadAllBytes($Ruta)

# ===== Aplicar XOR =====
for ($i = 0; $i -lt $fileBytes.Length; $i++) {
    $fileBytes[$i] = $fileBytes[$i] -bxor $hashBytes[$i % 16]
}

# ===== Guardar archivo =====
[System.IO.File]::WriteAllBytes($Ruta, $fileBytes)

ese es el codigo en powershell pero lo uniremos en una sola cadena string para poderlo ejecutar en javascript, asi que les dejo el codigo en html y javascript

<html>
<head>
<title>Cifrador De Archivos</title>
</head>

<body>
<marquee>Cifrador De Archivos By Flamer</marquee><br><br>
<center>
Direccion Del Archivo:<input type="file" id="archivo" size="100"><br><br>
Password:<input type="text" id="pass" size="50" style="text-align:center;"><br><br>
<input type="button" value="Aceptar" onclick="proceso()">
</center>
<script>
function proceso()
{
   var shell=new ActiveXObject("wscript.shell");
   var ruta=document.getElementById("archivo").value;
   var pass=document.getElementById("pass").value;
   
   if ( /['"&|]/.test(pass) )
   {
    alert("Contiene caracteres problemáticos");
   }
   else
   {
      shell.run("powershell $Ruta = '" + ruta + "';$Password = '" + pass + "'; \
      $md5 = [System.Security.Cryptography.MD5]::Create();$passBytes = [System.Text.Encoding]::UTF8.GetBytes($Password); \
      $hashBytes = $md5.ComputeHash($passBytes);$fileBytes = [System.IO.File]::ReadAllBytes($Ruta); \
      for ($i = 0; $i -lt $fileBytes.Length; $i++){$fileBytes[$i] = $fileBytes[$i] -bxor $hashBytes[$i % 16]}; \
      [System.IO.File]::WriteAllBytes($Ruta, $fileBytes)");
	  
	  alert("Proceso Terminado....");
   }
   
}
</script>
</body>
</html>

como ven creamos el archivo con la extencion .hta y su codigo en html que crea el boton y los campos de texto.

en el codigo creamos el objecto shell para poder ejecutar los comandos powershell con el metodo run para hacerlo unimos todo el codigo de powershell con ; y como todo va en una sola linea y quiero que se vea completo y no una linea larga y estensa le agregue un \ al final con un espacio despues del ;

bueno creo que no hay mas que agregar eso es todo saludos Flamer y ya use el codigo en un ejecutable y si funciona


viernes, 23 de enero de 2026

Solucion Generador De Claves Del Reto 1 De Cruehead

Hola amigos hoy les traigo el generador de claves del crackme 1 De Cruehead es algo muy sensillo pero como yo lo hice en HTML y Javascript tal ves sevea un poco grande el codigo pero es por que quiero que se vea con cuadros de textos, botones y buena presentacion no me gusta el medio consola de cmd, con c++ y python si pudiera ponerle musica le pondria como los viejos keygenes y crackmes con sonido pero en fin aqui una foto del reto


ahora si ponemos un nombre al azar y serial cualquiera nos arroja el siguiente mensaje aqui esta


 

asi que aqui les dejo el codigo del keygen o generador de claves

<html>
<head>
<title>Generador De Claves Del Crackme 1 De Cruehead ...:::By Flamer:::...</title>
</head>
<body bgcolor="black">
<center>
<marquee style="font-size:30;color:yellow;">Generador De Claves Del Crackme 1 De Cruehead ...:::By Flamer:::...</marquee><br><br>
<label style="color:white;">Nombre:&nbsp&nbsp&nbsp</label>
<input type="text" id="nick" size='50' style="background-color:Gray;color:white;text-align:center;">
<input type="button" value="Copy" onclick="copiar1()">
<br><br>
<label style="color:white;">Serial:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp</label>
<input type="text" id="pass" size='50' style="background-color:Gray;color:white;text-align:center;">
<input type="button" value="Copy" onclick="copiar2()">
<br><br>
<input type="button" id="102" value="Generar" onclick="generar()">
<input type="button" id="104" value="Limpiar" onclick="limpia()"><br><br>

</center>
<script>
function copiar1() 
{
   let c=document.getElementById('nick'); 
   c.select();
   document.execCommand('copy');
}
function copiar2() 
{
   let c=document.getElementById('pass'); 
   c.select();
   document.execCommand('copy');
}
function limpia()
{
   document.getElementById("nick").value="";
   document.getElementById("pass").value="";
}
function generar()
{   
   let nom=document.getElementById("nick").value.toString();
   let x,clave,digi,suma=0,d;
   
 
    if(/\d/.test(nom))
    {
       alert("Error El Campo No Debe De Tener Numeros");
    }
    else
    {
       nom=nom.toUpperCase();
	
	   for(x=0;x<nom.length;x++)
	   {
	      digi=nom.substr(x,1);
	      d=digi.charCodeAt(0);
	      suma+=d;
	   }	
	   clave= suma ^ 22136 
	   clave=clave ^ 4660;
    }
    document.getElementById("pass").value=clave;
}
</script>
</body>
</html>

ahora lo copeamos y pegamos en el bloc de notas para despues aguarlo con el nombre "key.html" y pasamos a ejecutarlo y nos queda asi


asi que ingresamos el nombre y serial y nos arroja el siguiente mensaje


para los que no saben ingles dice que pasen buenas noches jajajaja es broma dice que buen trabajo he intenten el siguiente crackme saludos y espero les guste Flamer


viernes, 9 de enero de 2026

Solucion Generador De Claves Del Reto CTCrackMe_CronuX

Hola amigos soy flamer de nuevo hoy vengo con la solucion del reto anterior que fue este 

https://elblogdeflamer.blogspot.com/2025/12/reto-en-javascript-ctcrackmecronux.html

ya que nadie me publico nada yo hice el generador de claves del reto, una cosa el reto lo saque del crackme este


bueno aqui el codigo

<html>
<head>
<title>Generador De Claves Del Reto CTCrackMe_CronuX   ...:::By Flamer:::...</title>
</head>
<body bgcolor="black">
<center>
<marquee style="font-size:30;color:yellow;">Generador De Claves Del Reto CTCrackMe_CronuX   ...:::By Flamer:::...</marquee><br><br>
<label style="color:white;">Nombre:&nbsp&nbsp&nbsp</label>
<input type="text" id="nick" size='50' style="background-color:Gray;color:white;text-align:center;">
<input type="button" value="Copy" onclick="copiar(0)"><br><br>
<label style="color:white;">Serial:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp</label>
<input type="text" id="pass" size='50' style="background-color:Gray;color:white;text-align:center;">
<input type="button" value="Copy" onclick="copiar(1)"><br><br>
<input type="button" id="102" value="Generar" onclick="Generar()">
<input type="button" id="104" value="Limpiar" onclick="limpia()"><br><br>
</center>
<script>
function limpia()
{
   document.getElementById("nick").value="";
   document.getElementById("pass").value="";
}
function copiar(n) 
{  
   let c;
   if(n==0)
   {
      c=document.getElementById('nick'); 
   }
   else 
   {
      c=document.getElementById("pass"); 
   }
   c.select();
   document.execCommand('copy');    
}
function Generar()
{
   let nom=document.getElementById("nick").value;
   document.getElementById("pass").value=generarSerial(nom);  
}  
function cifrado(cadena)
{
  let out = "";
  for (let c of cadena)
  {
    let d = c.charCodeAt(0);
    if (d >= 65 && d <= 90)
    {
       d += 13; if (d > 90) d -= 26;
    }
    else if (d >= 97 && d <= 122)
    {
       d -= 13; if (d < 97) d += 26;
    }
    out += String.fromCharCode(d);
  }
  return out;
}

function suma(s)
{
  let total = 0;
  for (let i = 0; i < s.length; i++) {
    total += s.charCodeAt(i);
}
  return total;
}

function generarSerial(nombre) {
  let s1 = suma(cifrado(nombre)) * nombre.length;

  for (let len = 1; len <= 10; len++)
  {
    for (let ch = 32; ch < 127; ch++)
    {
       let serial = String.fromCharCode(ch).repeat(len);
       let s2 = (suma(cifrado(nombre)) + suma(cifrado(serial))) * len;
       let ps = (s1 ^ s2).toString(16);
       if (ps.endsWith("9f"))
	    return serial;
    }
  }
}
</script>
</body>
</html>


bueno copean y pegan en el bloc de notas el codigo y aguardan como "generaclaves.html" y aqui una foto de el


ahora introducimos el nombre y la serial al reto


ahora lo vamos a probar en el reto que hice en javascript este


bueno espero les guste saludos Flamer