anun1

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


jueves, 28 de agosto de 2025

Manejar Numeros Grandes en JavaScript Con BigInt

Hola amigos hoy veremos como manejar numeros grandes en javascript para eso usaremos la funcion BigInt() esta funcion es para manejar numeros grandes ya sea decimales, binarios o hexadecimales, segun buscando en internet esta funcion no tiene un limite fijo depende de tu memoria de tu equipo y es nueva fue lanzada en 2020 yo en lo personal no la conosia hasta que un amigo en el foro tenia un problema y recurri a chatgpt para que me creara una funcion para convertir numeros binarios grandes a decimales aqui les dejo la funcion que me arrojo chatgpt 

function binarioGiganteADecimal(binario) {
    let decimal = 0n; // Usamos BigInt (termina en n) para soportar números enormes
    for (let bit of binario) { // Recorremos cada carácter ('0' o '1') de la cadena
        decimal = (decimal << 1n) + BigInt(bit); 
        // (decimal << 1n) = decimal * 2
        // Sumamos el bit actual convertido a BigInt
    }
    return decimal; // Devuelve el número decimal (BigInt)

bueno aqui mi codigo que le deje ami amigo ya modificado para que estubiera mas comodo de usar

  1. <html>
  2. <head>
  3. <body>
  4. <center>
  5. Numero Binario:<textarea id="bin" cols="200"></textarea><br>
  6. <input type="button" value="Convertir" onclick="conver()"><br><br>
  7. Numero Decimal:<textarea id="num" cols="200"></textarea>
  8. </center>
  9. <script>
  10. function binarioGiganteADecimal(binario) { //funcion binarioGiganteADecimal
  11.    let decimal = 0n; //declara la variable decimal y es inicializada
  12.    for (let bit of binario) { // recorre cada digito con el for
  13.        decimal = (decimal << 1n) + BigInt(bit); // Desplazamiento binario
  14.    }
  15.    return decimal; //retorna el valor decimal obtenido
  16. }
  17. function conver() //funcion cover
  18. {
  19.   let binario = document.getElementById("bin").value; //inicializa la variable binario dependiendo el valor dado en el campo detexto bin
  20.   let decimal = binarioGiganteADecimal(binario);// manda llamar la funcion binarioGiganteADecimal y le envia el valor binario
  21.  
  22.   document.getElementById("num").value=decimal.toString(); // muestra el resultado en el campo de texto num
  23. }
  24. </script>
  25. </body>
  26. </html>

bueno ese es el codigo, otra cosa yo pensaba crear una funcion para convertir el binario a hexadecimal creando una funcion y si se preguntan como pues si tenemos un numero binario como este por ejemplo

1011001010110111

mi metodo era devidirlo en partes de 4 digitos asi

1011 0010 1011 0111

y convertir cada parte en su valor hexadecimal asi

1011       0010     1011      0111

  B             2           B           7

y tenemos esto que el numero

1011001010110111 es igual a B2B7 esa es una forma de convertir binario a hexadecimal...asi que le pedi a chatgpt que me creara una funcion para convertir binario a hexadecimal en javascript y esto me arrojo

function binarioGrandeAHexadecimal(binario) {
  // Validar que solo tenga 0 y 1
  if (!/^[01]+$/.test(binario)) { //if que pregunta que solo debe contener 0 y 1
    throw new Error("El número debe ser binario (solo 0 y 1).");
  }

  // Convertir de binario (string) a BigInt
  let numero = BigInt('0b' + binario);

  // Pasar a hexadecimal
  return numero.toString(16).toUpperCase();
}

bueno ahora usaremos mi codigo con el metodo que les mostre arriba

<html>
<head>
<body>
<center>
Numero Binario:<br>
<input type="numer" id="bin" style="width:600;text-align:center;"><br><br>
<input type="button" value="Convertir" onclick="conver()"><br><br>
Numero Hexadecimal:<br>
<input type="text" id="num" style="width:600;text-align:center;">
</center>
<script>
function binarioGigante(binario)
{
    let x=binario.length-4,digi="",cadena=""; //declaramos las variables

	while(x>0) //ciclo while 
    {
	   digi=binario.substr(x,4); //extrae los ultimos 4 digitos de la variable binario 
	   digi=parseInt(digi,2); //conbierte el valor de digi a decimal para despues a hexadecimal
	   cadena=digi.toString(16)+cadena; //aqui convierte el valor de la variable digi a Hexadecimal y lo concatena con la variable cadena
	   binario=binario.substr(0,x); //desecha los digitos obtenidos 
	   x-=4;//x sele resta menos 4
	   
	}
	
	x=binario.length; //x toma la longitud de binario que halla quedado
	digi=binario.substr(0,x); //extrae los ultimos
	digi=parseInt(digi,2);//conbierte el valor de digi a decimal para despues a hexadecimal
	cadena=digi.toString(16)+cadena;//aqui convierte el valor de la variable digi a Hexadecimal y lo concatena con la variable cadena
	
	return cadena; //retorna el valor en de la variable cadena
}
function conver()
{
   let binario = document.getElementById("bin").value; //inicializa la variable cadena
   
   if(!/^[01]+$/.test(binario)) //pregunta si la variable binario solo contiene 0 y 1
   {
      alert("Introduce solo números binarios (0 o 1)."); // esta alerta salta si hay un valor que no sea 0 o 1
   }
   else
   {
      let hexa = binarioGigante(binario); //manda llamar la funcion binarioGigante y le envia el binario para despues retornar a la variable hexa el resultado
      document.getElementById("num").value=hexa.toUpperCase();// muestra el valor hexadecimal en el campo de texto en mayusculas
   } 
}
</script>
</body>
</html>


aqui una foto del programa en ejecucion


bueno creo que eso es todo espero les guste y les sirva de algo saludos Flamer


domingo, 24 de agosto de 2025

Generador De Claves Del Reto #3 de Rogerfm.Net

Hola amigos hoy les dejo el codigo del generador de claves del reto numero #3 de la pagina Rogerfm en javascript y html...se los dejo para que lo analicen y vean como el reto genera la clave aqui una foto del reto


En el campo name solo se aceptan de 4 digitos en adelante pero eso lo explica el generador de claves aqui una foto de el


ahora el codigo del generador de claves

<html>
<head>
<title>Generador De Claves Del Crackme #3 De Rogerfm.Net ...:::By Flamer:::...</title>
</head>
<body>
<center>
<h1>Crackme #3 de Rogerfm.Net</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=0,r=17;
 
 if(nom.length>=4)
   { 
     for(x=0;x<nom.length;x++)
     {
        digi=nom.substr(x,1);
   	    edx=digi.charCodeAt()+2159;
	    clave+=(edx * r);
	    r++; 
     }
  
	 document.getElementById("pass").value=clave.toString(); 
   }	 
   else
   {
       alert("El nombre debe ser mayor o igual a 4 digitos");
   }
}
</script>
</body>
</html>

bueno solo lo copean lo pegan en el bloc de notas y lo aguardan con cualquier nombre pero con la extencion .html

aqui una foto de la clave Flamer

ahora la ponemos en el reto y veamos lo que nos arroja


bueno mirando el codigo veran como se genera la clave solo toma cada digito del nombre toma su valor ascii y le suma 2159 para despues dicho resultado es multiplicarlo por r, r es inicializado en 17 y en cada digito que va obteniendo va aumentando...por decir asi en el primer digito r sera igual a 17 en el segundo 18 en el tercero 19 y asi sucesivamente y dicho resultado es sumado con el resultado anterior en la variable clave

bueno espero les guste saludos Flamer


martes, 19 de agosto de 2025

Limpiar La carpeta De Archivos Temporales desde VBScript

Hola amigos hoy veremos un simple codigo en Vbscript para limpiar la carpeta de archivos temporales

bueno primero pasamos a declarar las variables a usar pero primero como forzar a declararlas todas la variables y como omitir todos los errores

option explicit 'para forzar a que se declaren todas las variables

on error resume next ' para que omita todos los errores por si alguna carpeta o archivo no se puede eliminar que lo omita

dim tempo,fso,car,ar 'aqui estan las variables a usar

bueno ahora creamos el objecto FileSystemObject y tambien mandamos obtener la ruta de la carpeta temporal

set fso=CreateObject("Scripting.FileSystemObject") 'crea el objecto FileSystemObject

set tempo=fso.GetSpecialFolder(2) 'obtiene la ruta de los archivos temporales

ahora crearemos los dos ciclos para borrar los archivos y carpetas

for Each car in tempo.SubFolders ' for que obtiene todas las subcarpetas

   fso.DeleteFolder car.path,True  'borra carpeta por carpeta obtenida

next ' fin del ciclo

for Each ar in tempo.Files  'obtiene archivo por archivo

   fso.DeleteFile ar.path,true   'borra cada archivo obtenido

next  'fin del ciclo

por ultimo mostramos un mensaje al usuario con el comando msgbox

msgbox "Limpiesa Completa"  'muestra un mensaje de que la limpiesa a sido completa

aqui el codigo completo

option explicit
on error resume next

dim tempo,fso,car,ar
set fso=CreateObject("Scripting.FileSystemObject")
set tempo=fso.GetSpecialFolder(2)

for Each car in tempo.SubFolders
   fso.DeleteFolder car.path,True
next

for Each ar in tempo.Files
   fso.DeleteFile ar.path,true
next

msgbox "Limpiesa Completa"

bueno espero les guste y les sirva a alguien saludos Flamer

Nota si quieren probar el codigo solo copean y pegan en el bloc de notas y aguardan con el nombre que quieran pero con la extencion .vbs


lunes, 11 de agosto de 2025

Generador De Claves Del Reto 3 De Bocvk

Hola amigos hoy les traigo un reto que me paso mi amigo karmany por pedido mio le dije que me pasara algunos retos de los viejos pero solo me paso 3 en fin creo que en vez de enfocarme en los retos viejos deberia pasarme a los nuevos pero me gusta recordar viejos tiempos en fin aqui una foto del reto



Como dice hay que ingresar un nombre y un serial mayor a 6 digitos si no nos manda ese error asi que me di a la tarea de crearle un generador de claves, use la fuerza bruta por que se me hizo complicado reversearlo y como verifica digito por digito y como son de 0 a 255 en el codigo ascii dije no tardara mucho en encontrar la clave solo tardara unos segundos bueno sin tanto rollo aqui una foto del generador de claves

 

asi que aqui les dejo el codigo completo en javascript y html para que lo analizen

<html>
<head>
<title>Generador De Claves Crackme #3 de Bocvk  ...:::By Flamer:::...</title>
</head>
<body>
<center>
<h1>Crackme #3 de Bocvk</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;x=0,digi="",edx=0,clave="",clave2="",d="";
 
 if(nom.length>=6)
   { 
     for(x=0;x<nom.length;x++)
     {
        digi=nom.substr(x,1);
   	edx=digi.charCodeAt()+2;
	edx=edx ^ 6;
	edx-=1;
	clave+=String.fromCharCode(edx); 
     }
  
     for(x=0;x<clave.length;x++)
     {
        digi=clave.substr(x,1);
	for(y=0;y<255;y++)
	{
           edx=y+3;
	   edx=edx ^ 9;
	   edx-=5;
	   d=String.fromCharCode(edx);
	   if(d==digi)
	   {
              clave2+=String.fromCharCode(y);
           }
        }
     }
     document.getElementById("pass").value=clave2; 
   }	 
   else
   {
       alert("El nombre debe ser mayor a 6 digitos");
   }
   
}
</script>
</body>
</html>

creo que con eso ya se dan una idea de como funciona el reto, es pero sea de su agrado saludos Flamer

la clave para Flamer es Xb]ai|

aqui una foto y si tiene errores me avisan




domingo, 3 de agosto de 2025

Generador de claves del reto 1 de Alfa por Flamer en javascript

Hola amigos hoy les traigo un generador de claves para el reto de alfa, el codigo esta hecho en javascript si lo quieren probar solo copean y pegan el el bloc de notas y la aguardan con la extension .html

bueno primero una foto del reto, otra cosa este reto tiene tiempo que se publico pero como me gustan este tipo de retos asi que aqui se los traigo 


 bueno si ingresamos el nombre y la contraseña a parece esto


asi que aqui esta el codigo en html

<html>
<head>
<title>Keygen Crackme 1 De alfa   ...:::By Flamer:::...</title>
</head>
<body>
<center>
<h1>Keygen Crackme 1 De alfa   ...:::By Flamer:::...</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 limpia()
{
   document.getElementById("nick").value="";
   document.getElementById("pass").value="";
}
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 genera()
{
  let x,suma=0,res1,res2,nom,digi;
   nom=document.getElementById("nick").value;
   res1=nom.length;

   for(x=0;x<res1;x++)
   {
      digi=nom.substr(x,1);
      suma+=digi.charCodeAt();
   }

   res1 = res1 * 5;
   res2 = res1 * 5;

   res2 = res1.toString() + res2.toString();

   res1 = parseInt(res2) * 5;
   res2 = res2.toString() + res1.toString();

   res2 = res2 - suma;
   document.getElementById("nick").value=nom; 
   document.getElementById("pass").value=res2;

}
</script>
</body>
</html>

el codigo se los dejo para que lo analisen y vean como es que el reto crea el serial dado segun su nombre y asi que lo ejecutamos y esta es su apariencia

asi que ingresamos el nombre y serial y aparece lo siguiente


bueno espero les guste y como saben no puedo explicar como se hace para encontrar el serial valido usando un debugger ya que me borran el blog, aver si no me lo borran publicando asi jajajaja bueno saludos Flamer


miércoles, 23 de julio de 2025

Sumar los digitos de un numero dado en javascript

Hola amigos hoy haremos un codigo para sumar los digitos de x numero dado por el usuario por ejemplo si el usuario ingresa 34 sumaremos 3+4 el resultado a mostrar en pantalla sera la siguiente:

3+4=7

y si la suma de los digitos de este numero dan como resultado un numero con mas de 1 digito seran devueltamente sumados ejemplo

56566 seria asi

5+6+5+6+6=28--->2+8=10--->1+0=1

bueno manos a la obra primero la funcion sum() es esta

function sum()
{ 
   let n=document.getElementById("num").value.toString() //toma el numero y lo convierte en string

   document.getElementById("log").value="" //limpia el campo de texto log
   sumar(n) //manda llamar la funcion sumar y le manda la variable n
}

los que hace esta funcion es tomar el numero dado y convertirlo a string despues limpia el campo de texto log y al final manda llamar la funcion sumar mandandole la variable n que es el valor dado por el usuario

bueno ya que entendimos este pedaso de codigo pasamos a la funcion sumar(n) esta

function sumar(n)
{
   let s=0,c="",x //inicializa las variables
   
   for(x=0;x<n.length;x++) //x=0 y pregunta si x es menor a la longitud de digitos de n para aumentar uno en uno con x++
   {
      d=n.substr(x,1) //toma el digito de la variable n
      c+=d + "+"  //concatena el digito tomado y le agraga un +
      s+=parseInt(d) //convierte el digito tomado y lo suma a la variable s
   }
   c=c.slice(0,-1)+"=" //remplaza el ultimo caracter de la variable c por un =
   c+=s //concatena el valor de s a la variable c 
   document.getElementById("log").value+=c //agraga el contenido de la variable c a el campo de texto log
   c=s.toString()//convierte el valor de la variable s a string y lo almacena en la variable c
   
   if(c.length > 1) //pregunta si la variable c tiene mas de un digito si es asi entra y manda llamar la funcion sumar
   {
      document.getElementById("log").value+="--->" //agrega contenido al campo log
      sumar(c) //manda llamar la funcion sumar y le pasa la variable c
   }  
}

en esta funcion primero inicializa las variables s=0,c="" y la variable x con valor no definido por que en el ciclo sera definida a 0...bueno esta funcion resive la variable n que es el numero a sumar sus digitos.

bueno ahora pasaremos al for inicializa la variable x a 0 despues preguntara la longitud de la variable n, cuantos digitos tiene y si x es menor a eso, esto quiere desir que el ciclo dara el numero de vueltas segun el numero de digitos de la variable n y despues ira aumentando uno en uno el valor de x.

asi que despues tomamos digito por digito de la variable n asi

 d=n.substr(x,1) despues lo concatena a la variable c añadiendole un + para despues convertirlo a entero y asi poderlo sumar a la variable s

al salir del for remplaza el ultimo caracter de la variable c por un  =  y despues en la siguiente linea a la variable c se le concatena la variable s para despues agragar el valor de c al campo de texto log

por ultimo el valor de la variable s es convertido a string y se almacena en la variable c para despues preguntar con un if si el valor de c tiene mas de un digito si es asi manda llamar la funcion sumar para que se repita la funcion y sume los nuevos digitos del numero obtenido.

bueno aqui el codigo completo

<html>
<head><title>Suma De Numeros</title>
</head>
<body>
<br><br><br><br>
<center>
Dame el numero a sumar:<input type="number" id="num">
<input type="button" value="Iniciar" onclick="sum()"><br><br>
<textarea id="log" cols="60" rows="10"></textarea>
</center>
<script>
function sumar(n)
{
   let s=0,c="",x
   
   for(x=0;x<n.length;x++)
   {
      d=n.substr(x,1)
	  c+=d + "+"  
	  s+=parseInt(d)
   }
   c=c.slice(0,-1)+"="
   c+=s
   document.getElementById("log").value+=c
   c=s.toString()
   
   if(c.length > 1)
   {
      document.getElementById("log").value+="--->"
      sumar(c)
   }
   
}
function sum()
{ 
   let n=document.getElementById("num").value.toString()

   document.getElementById("log").value=""
   sumar(n)
}
</script>
</body>
</html>

si lo quieren probar solo copeen y peguenlo en el bloc de notas y aguardar con la extencion .html  aqui una foto

bueno asi que aumentemos el nivel si queremos sumar los numeros de un rango estimado por ejemplo del 100 al 1000 solo añadiriamos un for ala funcion sum() aqui el codigo completo no lo explico por que es casi lo mismo solo cambea la funcion sum un poco añadiendole un for y nuevas variables

<html>
<head><title>Suma De Numeros</title>
</head>
<body>
<br><br><br><br>
<center>
Sumar valores de rango:<input type="number" id="num1" style="text-align:center;"> 
a <input type="number" id="num2" style="text-align:center;"><br><br>
<input type="button" value="Iniciar" onclick="sum()"><br><br>
<textarea id="log" cols="50" rows="70"></textarea>
</center>
<script>
function sumar(n)
{
   let s=0,c="",x
    
   
   for(x=0;x<n.length;x++)
   {
      d=n.substr(x,1)
	  c+=d + "+"  
	  s+=parseInt(d)
   }
   c=c.slice(0,-1)+"="
   c+=s
   document.getElementById("log").value+=c
   c=s.toString()
   
   if(c.length > 1)
   {
      document.getElementById("log").value+="--->"
      sumar(c)
   }
   
}
function sum()
{
   let n1=parseInt(document.getElementById("num1").value) //convertimos los valores a enteros
   let n2=parseInt(document.getElementById("num2").value) //usando el comando parseInt lo convertimos a entero
   let x,n=""
   
   document.getElementById("log").value="" //limpiamos el campo de texto log
   
   for(x=n1;x<=n2;x++)//x es inicializada con el valor inicial de n1 y el ciclo termina con el valor dado segun el valor de n2
   {
      n=x.toString() //x es convertida en string y almacenada en n
      sumar(n) //manda llamar la funcion sumar y le envia la variable n
      document.getElementById("log").value+="\n"
   }
}
</script>
</body>
</html>

aqui una foto



bueno eso creo que es todo espero les guste y saludos Flamer


domingo, 22 de junio de 2025

Imprimir n numeros felices en Javascript y html

Hola amigos aqui les traigo otro aporte es un codigo mas, esta hecho en javascript, se trata  de imprimir n numeros felices y mostrarlos en pantalla o en un cuadro de texto como lo hice yo bueno empesamos, primero tecleamos todo el codigo HTML que usaremos es este

<html>
<head><title>Numeros Felices</title>
</head>
<body>
<br><br><br>
<center>
Dame n Numeros Felices A Encontrar:<input type="text" id="num" style="text-align:center;">
<input type="button" value="Encontrar" onclick="buscar()"><br><br>
<textarea id="log" cols="50" rows="50"></textarea>
</center>
<script>
</script>
</body>
</html>

bueno ya tenemos el codigo html ahora pasaremos a la funcion buscar es la siguiente

function buscar()
{
   let n=parseInt(document.getElementById("num").value,10) //convertimos el valor del campo de texto a entero
   if(n>0) //pregunta si n es mayor a 0
   {
      let x=0 //inicializa x a 0
      while(n!=0) //pregunta si n es diferente a 0 si es asi entra y se repite el ciclo
      {
         x++ //incrementa x en 1 
	     if(bus(x)) //envia x a la funcion bus y regresa un valor booleano si es true quiere decir que el numero es feliz 
	     {
	        document.getElementById("log").value+=x.toString() + "\n" //agraga el valor al campo de texto log
		n-- //resta a n 1
	     } 
      }
   }
   else
   {
      alert("Error solo numeros mayores a 1") //envia un mensaje en pantalla
	  document.getElementById("num").value="" // limpia el cuadro de texto num
   }   
}

1-como vemos primero tomamos el valor escrito en el campo de texto y lo convertimos a entero
2-despues pregunta si n es mayor a cero, si es mayor entra sino manda un mensaje en pantalla
3-inicializa x a 0
4-envia x a la funcion bus y regresa un valor booleano si es true quiere decir que el numero es feliz 
5-si entro al if quiere decir que el valor x es un numero feliz asi que es agregado al campo de texto log
6-resta a n uno

ahora veromos la funcion bus aqui esta

function bus(numberx)
{
   let puntero= new Array() //declara un array
   let nnstr,largo,x,d,nn,suma=0 //declara las variables a usar
   nn=numberx //inicializa nn 
   do  //ciclo do while
   {
      nnstr=nn.toString() //convierte nn a string y es almacenado en la variable nnstr
      puntero.push(nn) //agrega un valor al array puntero
      largo=nnstr.length //toma la longitud de la variable nnstr y lo almacena en largo
      nn=0 //inicializa nn a 0
	  
	  for(x=0;x<largo;x++) //ciclo for
	  {
	     d=parseInt(nnstr.substr(x,1),10) //toma el digito del numero en string del primero al ultimo en cada vuelta del for y lo convierte a entero 
	     d=Math.pow(d,2) //eleva al cuadrado el digito tomado 
	     nn+=d //le suma el valor obtenido de elevar al cuadrado a nn	 
	  }
   }while(puntero.indexOf(nn)==-1) //pregunta si el valor de nn se encuentra dentro del array si es asi se sale del ciclo do while
   
   if(nn==1) //pregunta si nn es igual a 1 si es asi retorna true y quiere decir que el numero es feliz
   {
     return true 
   }
   else
   {
     return false
   }   
}   

1-en las primeras lineas de la funcion declara las variables a usar y un array llamado puntero
2-entra al ciclo do while y convierte nn a string para poder tomar digito por digito en el ciclo for
3-agrega el valor de nn al array, para poder preguntar despues si se encuentra dentro de el
4-toma la longitud de la variable nnstr y lo almacena en largo, para despues inicializar la variable nn a 0
5-tenemos un ciclo for donde la primera linea dentro de el es tomar digito por digito de uno en uno de nnstr y convertirlo a entero para despues elevarlo al cuadrado e irlos sumando a nn
6-en el while se pregunta si nn se encuentra en el array si no se encuentra entra de nuevo, si no entra devuelve false y quiere decir que no es un numero feliz

bueno aqui les dejor el codigo completo

<html>
<head><title>Numeros Felices</title>
</head>
<body>
<br><br><br>
<center>
Dame n Numeros Felices A Encontrar:<input type="number" id="num" style="text-align:center;" min="1">
<input type="button" value="Encontrar" onclick="buscar()"><br><br>
<textarea id="log" cols="50" rows="50"></textarea>
</center>
<script>
function buscar()
{
   let n=parseInt(document.getElementById("num").value,10)
   if(n>0)
   {
      let x=0
      while(n!=0)
      {
         x++  
	     if(bus(x))
	     {
	        document.getElementById("log").value+=x.toString() + "\n"
		    n--
	     } 
      }
   }
   else
   {
      alert("Error solo numeros mayores a 1")
	  document.getElementById("num").value=""
   }   
}
function bus(numberx)
{
   let puntero= new Array()
   let nnstr,largo,x,d,nn,suma=0
   nn=numberx
   do
   {
      nnstr=nn.toString()
      puntero.push(nn)
      largo=nnstr.length
      nn=0
	  
	  for(x=0;x<largo;x++)
	  {
	     d=parseInt(nnstr.substr(x,1),10)
	     d=Math.pow(d,2)
	     nn+=d		 
	  }
   }while(puntero.indexOf(nn)==-1)
   
   if(nn==1)
   {
     return true 
   }
   else
   {
     return false
   }   
}   
</script>
</body>
</html>

qui una foto del programa en ejecucion




si quieren probar el codigo solo copean este ultimo que es el codigo completo y lo pegan en el bloc de notas y lo aguardan con el nombre que quieran pero con la extension .html

bueno saludos Flamer y espero les guste


sábado, 14 de junio de 2025

Generador De Contraseñas Del Reto 1 De Dyablo

Hola amigos aqui les traigo otro generador de contraseñas esta ves del reto1 de Dyablo, como no puedo explicar como funciona ensamblador solo les dejare el codigo en html y javascript bueno aqui una foto del reto


como ven tenemos que activar el boton asi que lo abrimos con un editor hexadecimal y modificamos el siguiente byte aqui una foto


como ven en la foto hay sebe claramente la direccion del byte a modificar lo encontraran como 00 pero ustedes le ponen 01...ya que lo tenemos activado les dejo el codigo del generador de contraseñas

<html>
<head><title>keygen crackme1 de Dyablo</title>
</head>
<body>
<marquee>keygen crackme1 de Dyablo ...::::By Flamer::::...</marquee>
<br><br>
<center>
Nombre:<input type="text" id="nom" size="40" style="text-align:center;"><br><br>
Serial:&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" id="pass" size="40" style="text-align:center;"><br><br>
<input type="button" value="Generar" onclick="generar(0)">
<input type="button" value="Limpiar" onclick="limpiar()">
</center>
<script>

function generar(y)
{
   let largo,nick=document.getElementById("nom").value
   
   
   if(nick.length>=4 && nick.length<=10)
   {
     largo=nick.length
	 c0=(largo*125)+6
	 c1=((largo*30)+15)*3
	 c2=nick.substr(2,2) 

	  document.getElementById("pass").value=c0.toString() + "-" + c1.toString() +c2.toUpperCase()
   }
   else
   {
      alert("El nombre debe contener 4 a 10 digitos")	  
   }
   
   
}

function limpiar()
{
   document.getElementById("nom").value=""
   document.getElementById("pass").value=""
}
</script>
</body>
</html>


aqui una foto del generador de claves en html y javascript

bueno aqui una foto del reto ya registrado



bueno espero les guste y pueden hecharle un vistaso al codigo para que vean como funciona la generacion de la clave saludos Flamer


viernes, 23 de mayo de 2025

Generador de claves del reto 2 de Rogerfm

Hola amigos aqui les traigo el generador de claves para el reto 2 de la pagina rogerfm, no puedo explicar como funciona en modo ensamblador pero les dejo el generador en html y javascript, asi se daran una idea de como funciona para generar la clave para cada nombre, aqui una foto del programa



y por haca una foto del generador de claves

bueno el codigo es el siguiente, lo hise sencillo 

<html>
<head><title>Keygen Crackme 2 Rogerfm</title>
</head>
<body>
<marquee>Keygen Crackme 2 rogerfm   ...:::Flamer:::...</marquee>
<br><br>
<center>
Nombre:<input type="text" id="nom" size="40" style="text-align:center;"><br><br>
Serial:&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" id="pass" size="40" style="text-align:center;"><br><br>
<input type="button" value="Generar" onclick="generar(0)">
<input type="button" value="Limpiar" onclick="limpiar()">
</center>
<script>

function generar(y)
{
   let x,digito,d,edi=0,nick=document.getElementById("nom").value
   
   
   if(nick.length>=4 && nick.length<=10)
   {
      d2=45
      digito=nick.substring(x-1,x)
      d=digito.charCodeAt(0) * d2
      edi=d 
      d2++
	  
      for(x=2;x<=nick.length;x++)
      {
         digito=nick.substring(x-1,x)
		 d=digito.charCodeAt(0) * d2
		 edi+=d
         d2++		 
      }
	  document.getElementById("pass").value=edi
   }
   else
   {
      alert("El nombre debe contener 4 a 10 digitos")	  
   }
   
   
}

function limpiar()
{
   document.getElementById("nom").value=""
   document.getElementById("pass").value=""
}
</script>
</body>
</html>

asi que solo copean y pegan en el bloc de notas y lo renombran como reto.html 

bueno saludos y espero les guste Flamer


lunes, 19 de mayo de 2025

Generador De Claves Del Reto 1 de tHE ANALYST

Hola amigos como no puedo explicar como resolver los crackmes aqui les dejo el keygen o la solucion mejor dicho para los que quieren observar como funciona el keygen o como el crackme genera la clave bueno aqui una foto del crackme con mi nombre y serial


el codigo del keygen sera en HTML y JavaScript aqui una foto del keygen


ahora el codigo

<html>
<head><title>keygen crackme1 de tHE ANALYST ...::::By Flamer::::...</title>
</head>
<body bgcolor="black">
<center>
<marquee style="color:white;font-size:50;">keygen crackme1 de tHE ANALYST ...::::By Flamer::::...</marquee><br><br><br><br><br><br>
<div style="color:white;font-size:30;">
Nombre:&nbsp;&nbsp;<input type="text" id="nom" style="background-color:black;color:white;text-align:center;width:400;height:30;"><br>

Password:<input type="text" id="pass" style="background-color:black;color:white;text-align:center;width:400;height:30;""><br><br>
</div>

<input type="button" value="Generar" onclick="star(0)" style="width:100;height:30;">
<input type="button" value="Automatico" onclick="star(1)" style="width:100;height:30;">
<input type="button" value="Detener" onclick="stop()" style="width:100;height:30;">
<input type="button" value="Limpiar" onclick="clear1()" style="width:100;height:30;">

</center>
<script>
let time=0

function star(y)
{
   let x,digito,d,ebx=0,serial="",cadena="",largo,digi,nick=""
   
   if(y==1)
   {
      cadena="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
	  largo=parseInt(Math.random()*(26-5)+5)
	  l=cadena.length - 1
	  
	  for(x=0;x<largo;x++)
	  {
	     digi=parseInt(Math.random()*(l-0)+0)
		 nick+=cadena.substring(digi-1,digi)
	  }
	  document.getElementById("nom").value=nick
   }
   else
   {   
      nick=document.getElementById("nom").value
   }
   
   for(x=1;x<=nick.length;x++)
   {
      digito=nick.substring(x-1,x)
	  d=digito.charCodeAt(0) ^ x 
	  ebx+=d
   }
   d=d*6
   ebx=(ebx*128)+d
   serial=ebx.toString(16)
   document.getElementById("pass").value=serial.toUpperCase()
   
   if(y==1)
   {
       time=setTimeout("star(1)",10)
   }
}
function stop()
{
   clearTimeout(time)
}
function clear1()
{
   document.getElementById("nom").value=""
   document.getElementById("pass").value=""
}
</script>
</body>
</html>


Una cosa este crackme ya lo habia publicado en los foros elhacker.net y en underc0de pero con la novedad de que el boton limpiar ya lo solucione...bueno saludos flamer y espero les guste
 


lunes, 28 de abril de 2025

Juego piedra, papel o tijeras en javascript y html

Hola amigos hoy les dejare un simple codigo en javascript y html, es el juego pidra, papel o tijeras...es muy simple ya que no le puse muchos elementos y no le puse quien va ganando ni puntuacion ni nada por el estilo...primero creamos los elementos que son los botones a usar en html asi

<html>

<head><title>Juego Piedra, Papael o Tijera</title>

</head>

<body>

<marquee style="font-size:30;">Juego Piedra, Papael o Tijera ...::::By Flamer::::...</marquee>

<br><br><br><br>

<center>

<input type="button" value="?"  id="maquina" style="font-size:50;width:70;text-align:center;"><br><br>

<input type="button" value="🧻" id="op1" style="font-size:50;width:70;"  onclick="stop('🧻')" disabled>

<input type="button" value="✄" id="op2" style="font-size:50;width:70;"  onclick="stop('✄')" disabled>

<input type="button" value="🪨" id="op3" style="font-size:50;width:70;"  onclick="stop('🪨')" disabled><br><br>

<div id="result" style="font-size:30;">Presiona Click Para Jugar </div><br><br>

<input type="button" id="boton" value="Jugar" style="font-size:30;width:100;" onclick="star()">

son los botones a usar y la marquesina, asi como el div bueno ahora pasamos al codigo en javascript y es la funcion star()

let tid=0

function star()

{

   let opcion=parseInt(Math.random()*(4-1)+1)

   

   document.getElementById("op1").disabled=false

   document.getElementById("op2").disabled=false

   document.getElementById("op3").disabled=false

   

   document.getElementById("boton").disabled=true

   

   switch(opcion)

   {

      case 1:

     document.getElementById("maquina").value="🧻"

break

  case 2:

     document.getElementById("maquina").value="✄"

break

  case 3:

     document.getElementById("maquina").value="🪨"

break

  default:

         alert("fuera de rango")

         break  

   }

   tid=setTimeout("star()",10)

}

como ven declaramos la variable tid como global y despues dentro de la funcion star inicializamos la variable opcion en un numero al azar de 3 a 1....Nota le puse 4 por que asi me da numeros de 3 a 1 seguimos despues ponemos la opcion disabled a false a los botones op1,op2 y op3 y true al boton que es jugar, para despues preguntar en un switch si la variable opcion vale 1,2 o 3...dependiendo el valor que se le dio al azar se le asigna un valor papel, tijeras o piedra y se le asigna al boton llamado maquina...por ultimo tenemos el comando setTimeout que manda llamar la funcion star hasta que el usuario presione un boton y se detenga, esa opcion esta en la funcion stop que es la siguiente

function stop(x)

{

   clearTimeout(tid)

   

   document.getElementById("op1").disabled=true

   document.getElementById("op2").disabled=true

   document.getElementById("op3").disabled=true

   

   document.getElementById("boton").disabled=false

   

   let y=document.getElementById("maquina").value

   switch(x)

   {

      case "🪨":

     if(y=="🪨")

{

    document.getElementById("result").innerHTML="Empate 🪨 Es Igual a " + y

}

else if(y=="🧻")

{

    document.getElementById("result").innerHTML="Perdistes 🪨 No Le Gana a " + y

}

else

{

    document.getElementById("result").innerHTML="Ganastes 🪨 Le Gana a " + y

}

break

  case "🧻":

     if(y=="🧻")

{

    document.getElementById("result").innerHTML="Empate 🧻 Es Igual a " + y

}

else if(y=="✄")

{

    document.getElementById("result").innerHTML="Perdistes 🧻 No Le Gana a " + y

}

         else

{

    document.getElementById("result").innerHTML="Ganastes 🧻 Le Gana a " + y

}

break

  case "✄":

    if(y=="✄")

{

    document.getElementById("result").innerHTML="Empate ✄ Es Igual a " + y

}

else if(y=="🪨")

{

    document.getElementById("result").innerHTML="Perdistes ✄ No Le Gana a " + y

}

else

{

    document.getElementById("result").innerHTML="Ganastes ✄ Le Gana a " + y

}

break

  default:

         alert("fuera de rango")

         break  

   }

lo que hace esta funcion es detener el bucle con el comando clearTimeout y poner los botones op1,op2 y op3 en true y el boton en false y recive la opcion que fue seleccionada por el usuario y se almacena en x para despues asignarle el valor de maquina a "y" y luego con el comando switch preguntar dentro de el si ganastes, perdistes o empatastes

bueno aqui el codigo completo

<html>
<head><title>Juego Piedra, Papael o Tijera</title>
</head>
<body>
<marquee style="font-size:30;">Juego Piedra, Papael o Tijera ...::::By Flamer::::...</marquee>
<br><br><br><br>
<center>
<input type="button" value="?"  id="maquina" style="font-size:50;width:70;text-align:center;"><br><br>
<input type="button" value="🧻" id="op1" style="font-size:50;width:70;"  onclick="stop('🧻')" disabled>
<input type="button" value="✄" id="op2" style="font-size:50;width:70;"  onclick="stop('✄')" disabled>
<input type="button" value="🪨" id="op3" style="font-size:50;width:70;"  onclick="stop('🪨')" disabled><br><br>
<div id="result" style="font-size:30;">Presiona Click Para Jugar </div><br><br>
<input type="button" id="boton" value="Jugar" style="font-size:30;width:100;" onclick="star()">

<script>
let tid=0
function star()
{
   let opcion=parseInt(Math.random()*(4-1)+1)
   
   document.getElementById("op1").disabled=false
   document.getElementById("op2").disabled=false
   document.getElementById("op3").disabled=false
   
   document.getElementById("boton").disabled=true
   
   switch(opcion)
   {
      case 1:
	     document.getElementById("maquina").value="🧻"
		 break
	  case 2:
	     document.getElementById("maquina").value="✄"
		 break
	  case 3:
	     document.getElementById("maquina").value="🪨"
		 break
	  default:
         alert("fuera de rango")
         break 		 
   }
   tid=setTimeout("star()",10)
}
function stop(x)
{
   clearTimeout(tid)
   
   document.getElementById("op1").disabled=true
   document.getElementById("op2").disabled=true
   document.getElementById("op3").disabled=true
   
   document.getElementById("boton").disabled=false
   
   let y=document.getElementById("maquina").value
   switch(x)
   {
      case "🪨":
	     if(y=="🪨")
		 {
		    document.getElementById("result").innerHTML="Empate 🪨 Es Igual a " + y
		 }
		 else if(y=="🧻")
		 {
		    document.getElementById("result").innerHTML="Perdistes 🪨 No Le Gana a " + y
		 }
		 else
		 {
		    document.getElementById("result").innerHTML="Ganastes 🪨 Le Gana a " + y
		 }
		 break
	  case "🧻":
	     if(y=="🧻")
		 {
		    document.getElementById("result").innerHTML="Empate 🧻 Es Igual a " + y
		 }
		 else if(y=="✄")
		 {
		    document.getElementById("result").innerHTML="Perdistes 🧻 No Le Gana a " + y
		 }
         else
		 {
		    document.getElementById("result").innerHTML="Ganastes 🧻 Le Gana a " + y
		 }
		 break
	  case "✄":
	    if(y=="✄")
		 {
		    document.getElementById("result").innerHTML="Empate ✄ Es Igual a " + y
		 }
		 else if(y=="🪨")
		 {
		    document.getElementById("result").innerHTML="Perdistes ✄ No Le Gana a " + y
		 }
		 else
		 {
		    document.getElementById("result").innerHTML="Ganastes ✄ Le Gana a " + y
		 }
		 break
	  default:
         alert("fuera de rango")
         break 		 
   }
}
</script>
</center>
</body>
</html>

bueno espero les sea de su agrado saludos Flamer y si hay algun error digan en los cometarios