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 


domingo, 28 de diciembre de 2025

Reto En JavaScript CTCrackMe_CronuX

Hola amigos hoy no vengo con un generador de claves sino con un reto en javascript es del reto de cronux yo encontre el serial para mi nick que es flamer que es este:

nombre= flamer

serial=999999:

y si se preguntan por que no le hice un keygen, es por que se me hiso dificil ya que no soy tan bueno lo reconosco en fin....pero tambien se me hizo entretenido que ustedes miren el funcionamiento del codigo y a ver si encuentran un serial para su nombre o nick no solamente entregar todo yo y sin participar ustedes aqui les dejo una foto del reto


aqui el codigo solo copean y pegan en el bloc de notas y aguardan con el nombre "reto cronux.html"

<html>
<head>
<title>Reto En JavaScript CTCrackMe_CronuX</title>
</head>
<body bgcolor="black">
<center>
<marquee style="font-size:30;color:yellow;">Reto En JavaScript Del CTCrackMe_CronuX</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;"><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;"><br><br>
<input type="button" id="102" value="Vericar" onclick="Verificar()">
<input type="button" id="104" value="Limpiar" onclick="limpia()"><br><br>
<div id="log" style="font-size:40;color:red;">No Registrado</div>
</center>
<script>
function limpia()
{
   document.getElementById("nick").value="";
   document.getElementById("pass").value="";
}
function Verificar()
{   
 let nom=document.getElementById("nick").value.toString();
 let serial=document.getElementById("pass").value.toString();
 let suma1=0,suma2=0,s0=0,ps=""; 
 nom=cifrado(nom);
 serial=cifrado(serial);
 
 suma1=suma(nom);
 suma2=suma(serial);
 
 s0=suma1 + suma2;
 s1=suma1 * nom.length;
 s2=s0 * serial.length;
 
 ps=(s1 ^ s2).toString(16); 
 if(ps.substr(-2)=="9f")
 {
    document.getElementById("log").innerHTML="REGISTRADO";
    document.getElementById("log").style.color="Lime";
 }
 else 
 {
    alert("Sigue Intentandolo");
    document.getElementById("log").innerHTML="No Registrado";
    document.getElementById("log").style.color="red";
 }
}
function suma(s)
{
   let x,digi="",d=0,ss=0;
   
   for(x=0;x<s.length;x++)
   {
      digi=s.substr(x,1);
      d=digi.charCodeAt(0);
      ss+=d;	  
   }
   return ss;
}
function cifrado(cadena)
{ 
    let x,digi="",d=0,clave="";
 
    for(x=0;x<cadena.length;x++)
    {
       digi=cadena.substr(x,1);
       d=digi.charCodeAt(0);
       if(d>=65)
       {
          if(d<=90)
          {
             d+=13;
 	     if(d>=90)
	     {
  	        d-=26
	     }
	  }
	  else if(d>=97)
	  {
	     if(d<=122)
	     {
	        d-=13;
		if(d<97)
		{
		   d+=26;
		}
	     }
	  }
       }
	   clave+=String.fromCharCode(d);
   }
   return clave;   
}
</script>
</body>
</html>


bueno espero y se diviertan felices fiestas saludos Flamer y aqui una foto de mi solucion




martes, 16 de septiembre de 2025

Generador De Claves Del Reto 4 Rogerfm.Net

Hola amigos hoy les traigo el reto 4 de la pagina rogerfm es un reto sencillo hace tiempo lo resolvi como en el 2019 si no me equivoco, bueno aqui una foto del reto


El serial solo acepta 8 digitos de longitud, si ingresamos otra cantidad de digitos marcara error y nos llebara al cartelito de "best luck next time :D" que quiere decir "Mucha suerte la próxima vez" bueno les dejo una foto


bueno creo que les dejare el codigo de como generar el serial correcto o seriales correctos por que hay varios, el generador de claves esta en html y javascript aqui esta

<html>
<head>
<title>Generador De Claves Del Crackme 4 Rogerfm.Net ...:::By Flamer:::...</title>
</head>
<body>
<center>
<h1>Crackme 4 Rogerfm.Net</h1>
Serial:&nbsp&nbsp&nbsp&nbsp <input type="text" id="pass" size='50' style="text-align:center;"><input type="button" value="Copy" onclick="copiar()"><br><br>
<input type="button" id="10" value="Generar" onclick="auto()">
<input type="button" id="11" value="Limpiar" onclick="limpia()">
</center>
<script>
let tiempo; //variable tiempo
function copiar() //funcion copiar
{
   let c=document.getElementById('pass'); //declara c como un objecto de referencia del campo de texto con id pass
   c.select(); //selecciona lo que esta en el campo de texto con id pass
   document.execCommand('copy'); //copea lo seleccionado 
}
function limpia() //funcion limpiar
{
   document.getElementById("pass").value=""; //limpia el campo de texto con id pass
}
function generar() //funcion que genera la clave
{   
 let digi=new Array(7); //declara el arreglo digi
 let x=0,serial="";
 digi[0] = Math.floor(Math.random() * (127 - 35 + 1)) + 35; //genera un numero aleatorio entre el rango 127 y 35
 digi[4] = digi[0] - 3; //le resta 3 al valor aleatorio generado arriba para despues pasarcelo a la posicion 4
 digi[2] = Math.floor(Math.random() * (127 - 32 + 1)) + 32; //genera un valor aleatorio entre los rangos 127 y 32
 digi[6] = digi[2]; //le pasa el de arriva ala posicion 6 

 digi[1] = Math.floor(Math.random() * (127 - 39 + 1)) + 39; //genera un numero aleatorio entre el rango 127 y 39
 digi[5] = digi[1] - 7; //le resta 7 al valor aleatorio generado arriva para despues pasarcelo a la posicion 5
 digi[3] = Math.floor(Math.random() * (127 - 32 + 1)) + 32;//genera un numero aleatorio entre el rango 127 y 32
 digi[7] = digi[3];//le pasa el de arriva ala posicion 7

 for(x=0;x<=7;x++) //ciclo for para convertir todos los valores decimales a su valor ascii
 {
    serial+=String.fromCharCode(digi[x]); //aqui toma cada valor decimal del arreglo y lo convierte a texto o asu valor ascii y lo concatena a serial
 }
 
 document.getElementById("pass").value=serial; //le pasa el valor de serial a el campo de texto
 tiempo=setTimeout("generar()",10); //manda llamar a la funcion generar
}
function auto() //funcion auto
{
  let nom=document.getElementById("10").value; //le pasa el valor a la variable nom
  
  if(nom=="Generar") //pregunta si nom es igual a Generar y si es asi entra
  {
     document.getElementById("10").value="Detener"; //aqui si entra cambea el nombre al boton y le pone detener
     generar(); //manda llamar la funcion generar 
  }
  else
  {
     document.getElementById("10").value="Generar"; //cambea el nombre al boton 
     clearTimeout(tiempo); //detiene el ciclo de estar llamando a la funcion generar
  }
}
</script>
</body>
</html>

les dejo el codigo para que lo prueben y analizen aqui una foto de el

asi que probamos e ingresamos esa clave


y como ven nos manda el cartelito correcto bueno creo que eso es todo si quieren probar el codigo ya saben como siempre copeen y pegan en el bloc de notas con la extencion .html saludos Flamer


viernes, 5 de septiembre de 2025

Generador De Claves Del Reto jfkener

Hola amigos hoy les dejare el generador de claves del reto ya mensionado en el titulo la verda no se el nombre o nick del creador del reto solo se su correo por que lo dejo en el reto este es

jfkener@hotmail.com

tampoco me acuerdo de donde los descargue ya busque en el foro del hacker.net y no...bueno en fin aqui una foto del reto


si alguien lo conose me dice para cambiar el titulo...bueno como lo comenta hay que activar el boton asi que aqui les dejo una foto del editor hexadecimal para los bits que vamos a cambiar...la primera es el crack


este es el original


asi que les dare una breve explicacion de como genera la clave, primero toma el nombre lo voltea, cuando digo que lo voltea me refiero aque si ingresamos como nombre "polo" al voltearlo quedaria asi
"olop" despues toma el primer digito lo convierte en su valor ascii y le suma la longitud del nombre en este caso polo tiene una longitud de 4 digitos y despues de sumarlo lo convierte asu valor ascii y si es el primer digito lo convierte en mayusculas el segundo no, el tercero si y el cuarto no y asi sucesivamente

despues de terminar agrega un guion "-" y vuelve a tomar el primer digito y en ves de sumarle la longitud del campo nombre le suma 3 y para despues convertirlo a su valor ascii y hacer lo mismo si es el primero convertirlo a mayusculas, si es el segundo a minusculas y su es el tercero a mayusculas y el cuarto a minusculas...bueno aqui les dejo el codigo para que lo analizen


<html>
<head>
<title>Generador De Claves Del Crackme jfkener ...:::By Flamer:::...</title>
</head>
<body>
<center>
<h1>Crackme jfkener</h1>
Nombre:&nbsp&nbsp&nbsp <input type="text" id="nick" size='50' style="text-align:center;"><input type="button" value="Copy" onclick="copiar1()"><br><br>
Serial:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <input type="text" id="pass" size='50' style="text-align:center;"><input type="button" value="Copy" onclick="copiar2()"><br><br>
<input type="button" id="102" value="Generar" onclick="genera()">
<input type="button" id="104" value="Limpiar" onclick="limpia()">
</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 genera()
{   
 let nom=document.getElementById("nick").value;
 let y=0,cadena,rev,x=0,digi="",edx=0,clave1="",clave2="",largo=nom.length;
 
 cadena=nom.split("");
 rev=cadena.reverse();
 cadena=rev.join(""); 
 
 for(x=0;x<largo;x++)
 {
    digi=cadena.substr(x,1);
    edx=digi.charCodeAt()+largo;
    digi=String.fromCharCode(edx);
    if(y==0)
    {
       digi=digi.toUpperCase();
       y=1;
    }
    else
    {
        digi=digi.toLowerCase();
        y=0;
    }
    clave1+=digi;
 }
 
 for(x=0;x<largo;x++)
 {
    digi=cadena.substr(x,1);
    edx=digi.charCodeAt()+3;
    digi=String.fromCharCode(edx);
    if(y==1)
    {
       digi=digi.toUpperCase();
       y=0;
    }
    else
    {
       digi=digi.toLowerCase();
       y=1;
    }
    clave2=digi+clave2;
 }
 document.getElementById("pass").value=clave1 + "-" + clave2; 
}
</script>
</body>
</html>

bueno aqui una foto del generador de claves


bueno como puse el ejemplo de "polo" la clave para este es esta   "SpSt-SrOr"  asi que lo verificamos tomando una foto


bueno creo que eso es todo espero les halla gustado saludos Flamer y si quieren probar el codigo solo copean y pegan en el bloc de notas y le ponen el nombre que sea pero con la extencion  .html


viernes, 29 de agosto de 2025

Generador De Claves Del Crackme $Edu$

Hola amigos hoy les dejare el codigo del generador de claves del crackme de Edu... este crackme se presento en el foro hace mucho tiempo 

aqui una foto de el

El campo nombre debe tener la misma longitud de caracteres que la contraseña y a cada digito del nombre le suma 5 en su valor ascii.... asi que les dejo el codigo del generador de claves en html y javascript para que lo analizen

<html>
<head>
<title>Generador De Claves Del Crackme Edu ...:::By Flamer:::...</title>
</head>
<body>
<center>
<h1>Crackme edu</h1>
Nombre:&nbsp&nbsp&nbsp <input type="text" id="nick" size='50' style="text-align:center;"><input type="button" value="Copy" onclick="copiar1()"><br><br>
Serial:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <input type="text" id="pass" size='50' style="text-align:center;"><input type="button" value="Copy" onclick="copiar2()"><br><br>
<input type="button" id="102" value="Generar" onclick="genera()">
<input type="button" id="104" value="Limpiar" onclick="limpia()">
</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 genera()
{   
 let nom=document.getElementById("nick").value;
 let x=0,digi="",edx=0,clave="";
 
  
 for(x=0;x<nom.length;x++)
 {
    digi=nom.substr(x,1);
    edx=digi.charCodeAt()+5;
    clave+=String.fromCharCode(edx);
 }
 document.getElementById("pass").value=clave.toString(); 
}
</script>
</body>
</html>

aqui una foto del reto con el mensaje correcto



y por haca una foto del generador de claves


bueno espero les guste y les dejo el codigo para que se den una idea de como funciona este reto, de como genera la clave y puedan probarlo y si se preguntan por que en html con javascript es por que es un lenguaje de texto donde pueden usar el bloc de notas y no un compilador...si lo quieren probar solo copeen y peguen en el blog de notas con la extencion .html en fin saludos Flamer