Páginas

jueves, 12 de noviembre de 2026

Solucion al Crackme 7 De Enigmagroup

Hola amigos hoy veremos el crackme 7 de enigmagroup, este es un poco más complicado, ya que es más dificil por donde atacar, ya que al principio yo no le hallaba por donde entrar, ya que no muestra en los string el mensaje correcto, pero bueno yo los guiaré por donde primero lo abrimos con el x32dbg y buscamos en las string y vemos esto


Vemos la palabra PAUSE que es la que nos guiara al mensaje correcto o incorrecto así que le damos doble clic y nos lleva a esta zona


Yo puse un breakpoint en ese último CALL antes de que se ejecute el PAUSE y entraremos a el con F7 para eso primero lo ejecutamos con F9 y se detiene justo donde le indicamos y nos vamos traceando con F7  y nos pide que ingresemos el serial en la línea 00401AD8 asi que ingresamos como serial "polomones" y presionamos enter


Seguimos traceando y entraremos en el CALL 00401AE7 con F7, si se preguntan como encontré el camino al serial es porque yo ya anduve traceando con F7 cada CALL bueno seguimos no manda a esta zona
 

Entramos al CALL de la línea 00401BE8 y nos muestra el esto


Lo que hace esa función es que recorre el serial que ingresamos y al final pregunta si es mayor o igual a 6, ya que antes de llegar a preguntar eso pregunta si es mayor a 5 en la línea 00401C47 y si es menor el salto JG se cumple, esto nos lleva a concluir que el serial tiene que ser mayor a 5 digitos o mejor dicho mayor o igual a 6, así que salimos de ese CALL  y nos vamos traceando con F8 y nos encontramos con un salto JG el de la línea 00401BF2 y se cumple la condición así que seguimos.... no salta, ya que si el serial fuera menor o igual a 5 nos rebota, así que entramos y seguimos hasta la línea 00401BFA que es un CALL y entraremos con F7


Y llegamos hasta la línea 00401CA1 donde toma el primer dígito que es "p" que vale 70 en hexadecimal y le resta 60 en hexadecimal y aguarda el resultado en memoria después brinca al segundo y lo suma con el resultado anterior para después restarle 60 de nuevo aquí la foto


El resultado de esto tiene que dar 2C que en decimal es 44, bueno parece que encontramos la segunda condición, ya que la primera era que tenía que ser mayor a 5 dígitos, así que salimos de ese CALL y nos dirigimos a la línea


Así como dice la imagen presionamos la bandera ZF para que sea cero y entrar al siguiente CALL y nos lleva hasta aquí


Como dice toma el primer dígito le resta 60 en hexadecimal y después lo multiplica por el resultado anterior al principio es 1, luego toma el segundo le resta 60 y lo multiplica por el resultado anterior y así sucesivamente y el resultado tiene que ser 3F48 que en decimal es 16200 así que salimos de ese CALL y vemos que es el último....así que ya sabemos las condiciones para crear nuestro keygen yo le pedí a chatgpt que me hiciera un programa por fuerza bruta para encontrar un serial y me dio este
let cadena = "abcdefghijklmnopqrstuvwxyz";
let objetivo1 = 44, objetivo2 = 16200;

function buscar(pos, suma1, suma2, clave)
{
    if(pos == 8)
    {
        if(suma1 == objetivo1 && suma2 == objetivo2)
        {
            console.log("La contraseña es: " + clave);
        }
        return;
    }
    for(let x = 0; x < cadena.length; x++)
    {
        let digi = x + 1;

        if(suma1 + digi > objetivo1) continue;
        if(objetivo2 % (suma2 * digi) != 0) continue;

        buscar(pos + 1, suma1 + digi, suma2 * digi, clave + cadena[x]);
    }
}
buscar(0, 0, 1, "");


Pero no seme hizo que dejaba varias claves sin dar así que yo hice el mío con ciclos for anidados este
let cadena="abcdefghijklmnopqrstuvwxyz";
let c=new Array(8);
let x1,x2,x3,x4,x5,x6,x7,x8;

for(x1=97;x1<=122;x1++)
{	
   for(x2=97;x2<=122;x2++)
   {	
      for(x3=97;x3<=122;x3++)
      {	
         for(x4=97;x4<=122;x4++)
         {	
            for(x5=97;x5<=122;x5++)
            {	
               for(x6=97;x6<=122;x6++)
               {	
                  for(x7=97;x7<=122;x7++)
                  {	
                     for(x8=97;x8<=122;x8++)
                     {	
                        c[0]=x1;
			c[1]=x2;
			c[2]=x3;
			c[3]=x4;
			c[4]=x5;
			c[5]=x6;
			c[6]=x7;
			c[7]=x8;
			busca(c);
                     }  
                  }  
               }  
            }
         }
      }
   }
}

function busca(clave)
{
   let x,suma1=0,suma2=1;
   
   for(x=0;x<clave.length;x++)
   {
      suma1 += clave[x] - 96;
      suma2 = (clave[x] - 96) * suma2;
   }

   if(suma1 == 44 && suma2 == 16200)
   {
      console.log("La contraseña es: " + String.fromCharCode(clave[0])+String.fromCharCode(clave[1])+String.fromCharCode(clave[2])+String.fromCharCode(clave[3])+String.fromCharCode(clave[4])+String.fromCharCode(clave[5])+String.fromCharCode(clave[6])+String.fromCharCode(clave[7]),);
   } 
}

Para probarlos solo copean, pegan en bloc de notas y lo aguardan como "fuerzabruta.js" y lo ejecutan con node si no tienen node lo bajan e instalan aquí les hice un tutorial


Para ejecutarlo ponemos así


Nota: para la foto yo probare mi código esto nos muestra


Así que copiamos cualquier clave como esta "aajocdai" y nos arroja esto en el crackme


Bueno amigos creo que eso es todo espero les haya gustado saludos Flamer...A una coda que se me estaba olvidando, si se preguntan por qué solo minúsculas y no incluir números o mayúsculas es porque al restar 60 que es 96 en decimal es porque si lo hacía iba a dar números negativos

martes, 10 de noviembre de 2026

Solucion al Crackme 0.2 De Lafarge's

Hola amigos hoy veremos la solución al crackme de lafarge's el número 0.2, ya que también está la versión 2, pero este tiene un cero por delante así que este es


Asi que primero lo abrimos con el x32dbg y buscamos en las string y vemos lo siguiente


Asi que damos doble clic y nos manda a esta zona


Como podemos ver en esa parte se genera el serial así que nos iremos hasta la línea 00401151 donde se encuentra una comparación donde pregunta si el nombre que ingresamos es mayor a 3 dígitos, ya que unas líneas arriba tomo el nombre que ingresamos con la API GetDlgItem en la línea 0040113D y ponemos un breakpoint en esa línea.... Asi que lo ejecutamos e ingresamos como nombre "polon" y como serial "123456", ya que hemos ingresado nuestro nombre mayor a 3 dígitos nos iremos traceando hasta la línea 004011EC donde xorea cada dígito del nombre con estos valores

5F 72 20 3C 28 29 3C 31 2D 5A 32 5B 6C 35 2C 5E


Como podemos ver toma el primer dígito del nombre lo xorea con 5F y después el valor es aguardado en el registro EAX y luego es dividido entre 19 en hexadecimal que en decimal es 25


Y toma el residuo para después sumarle 41 en hexadecimal que en decimal es 65

Y el resultado se almacena en memoria, luego toma el segundo dígito, lo xorea y el resultado lo divide por 19 para después el resultado le suma 41 al residuo y si el nombre tiene 5 dígitos cuando llegue al último dígito vuelve al primer dígito del nombre y hace lo mismo, pero sigue con el xoreo del los valores de arriba con estos que son los mismos

5F 72 20 3C 28 29 3C 31 2D 5A 32 5B 6C 35 2C 5E

Sale del ciclo hasta que xorea por 5E que es el último valor, líneas más abajo el resultado lo divide en 4 partes con 3 guiones con una distancia de 4 dígitos de por medio si  el resultado fue

AAAAAAAAAAAAAAAA

Lo divide asi

AAAA-AAAA-AAAA-AAAA

En 4 partes con 3 güines.... Esto lo hace en las líneas 0040120C,   00401220,    00401234

luego vemos que en la línea 00401285 compara el serial que ingresamos por este


Aqui mi codigo del keygen

<html>
<head>
<title>Keygen Crackme 0.2 De Lafarge's  ...:::Flamer:::...</title>
</head>
<body bgcolor="black">
<center>
<marquee style="font-size:30;color:yellow;">Keygen Crackme 0.2 De Lafarge's  ...:::Flamer:::...</marquee><br><br>
<label style="color:white;">Nombre:</label>
<input type="text" id="nom" size='40' style="background-color:Gray;color:white;text-align:center;" maxlength="15">
<input type="button" value="Copy" onclick="copiar1()">
<br><br>
<label style="color:white;">Serial:</label>
<input type="text" id="pass" size='60' style="background-color:Gray;color:white;text-align:center;">
<input type="button" value="Copy" onclick="copiar2()">
<br><br>
<input type="button"  value="Generar" onclick="genera()">
</center>
<script>
function copiar1() 
{
   let c=document.getElementById('nom'); 
   navigator.clipboard.writeText(c.value);
}
function copiar2() 
{
   let c=document.getElementById('pass'); 
   navigator.clipboard.writeText(c.value);
}
//==================================================================================
function genera()
{ 
   const constante=new Array(95,114,32,60,40,41,60,49,45,90,50,91,108,53,44,94);//5F 72 20 3C 28 29 3C 31 2D 5A 32 5B 6C 35 2C 5E
   const separa=new Array(3,7,11);
   let n=document.getElementById("nom").value;
   let x,digi,c=0,xore,clave="",cc=0;;
   
   if(n.length>3 && n.length<16)
   {
      for(x=0;x<constante.length;x++)
      {
         digi=n[c].charCodeAt(0);
	     xore=digi ^ constante[x];
	     xore=xore % 25;
	     xore=xore + 65;
	     clave+=String.fromCharCode(xore);
	     c++;
	     if(c==n.length)
	     {
	        c=0;
	     }
	     if(x==separa[cc])
	     {
	        clave+="-";
                cc++;		 
	     }
      }
   
      document.getElementById("pass").value= clave.toUpperCase();
  }
  else
  {
     alert("Error Numero De Digitos Incorrecto, Minimo 4 y Maximo 15");
  }
}
</script>
</body>
</html>

Aqui una foto de el keygen


Asi que ingresamos ese valor y nos arroja este mensaje


Bueno eso es todo saludos Flamer y espero les guste

domingo, 8 de noviembre de 2026

Solucion al Crackme De Devast8a

Hola amigos hoy veremos el crackme de devast8a este fue publicado en crackmes.de en  23. Dec, 2008 aquí una foto


Como podemos ver parece que la clave tiene 55 dígitos, así que lo abrimos con el x32dbg y nos vamos a los string y nos muestra esto


Y hay podemos ver el mensaje correcto así que damos clic en él y nos lleva a esta zona


Así que ponemos un breakpoint cerca de esa zona como lo muestra la imagen para después ejecutarlo con F9 y poner como serial "123456" y nos detenemos donde le indicamos, acto seguido nos vamos traceando con F8 y pasando el xor de la línea 00A81143 damos clic derecho a la dirección así como en la imagen


Y vemos lo siguiente en el DUMP 


Acto seguido si seguimos traceando con F8 y al pararnos en la dirección 00A81147 vemos que los datos que están en el DUMP van cambiando así que seguimos para ver qué valor queda aquí les muestro lo que queda


Hay podemos ver la frase que se formó es "Waxing my car will not result in expert karate training" y si seguimos traceando en la línea 00A81156 vemos que compara el primer dígito del serial que ingrese que es "123456" así que no queda duda el serial es la frase de arriba así que lo reiniciamos y la ingresamos

y nos muestra esto


Por otra parte, también lo probé con IDA pro y el código que me muestra es este

int __cdecl main(int argc, const char **argv, const char **envp)
{
  int i; // eax
  char v5[56]; // [esp+4h] [ebp-BCh] BYREF
  char v6[128]; // [esp+3Ch] [ebp-84h] BYREF

  v5[0] = 45;
  v5[1] = 27;
  v5[2] = 2;
  v5[3] = 19;
  v5[4] = 20;
  v5[5] = 29;
  v5[6] = 90;
  v5[7] = 23;
  v5[8] = 3;
  v5[9] = 90;
  v5[10] = 25;
  v5[11] = 27;
  v5[12] = 8;
  v5[13] = 90;
  v5[14] = 13;
  v5[15] = 19;
  v5[16] = 22;
  v5[17] = 22;
  v5[18] = 90;
  v5[19] = 20;
  v5[20] = 21;
  v5[21] = 14;
  v5[22] = 90;
  v5[23] = 8;
  v5[24] = 31;
  v5[25] = 9;
  v5[26] = 15;
  v5[27] = 22;
  v5[28] = 14;
  v5[29] = 90;
  v5[30] = 19;
  v5[31] = 20;
  v5[32] = 90;
  v5[33] = 31;
  v5[34] = 2;
  v5[35] = 10;
  v5[36] = 31;
  v5[37] = 8;
  v5[38] = 14;
  v5[39] = 90;
  v5[40] = 17;
  v5[41] = 27;
  v5[42] = 8;
  v5[43] = 27;
  v5[44] = 14;
  v5[45] = 31;
  v5[46] = 90;
  v5[47] = 14;
  v5[48] = 8;
  v5[49] = 27;
  v5[50] = 19;
  v5[51] = 20;
  v5[52] = 19;
  v5[53] = 20;
  v5[54] = 29;
  v5[55] = 0;
  printf(Format: "HINT: The password is %d letters long\n", 55);
  printf(Format: "Enter Password: ");
  gets(a1: v6);
  for ( i = 0; i < 55; ++i )
    v5[i] ^= 0x7Au;
  if ( !strcmp(v6, v5) )
    printf(Format: "Congrats you have got the password\n");
  else
    printf(Format: "Sorry, The password was incorrect\n");
  system(Command: "pause");
  return 0;
}

Bueno creo que eso es todo saludos Flamer

sábado, 7 de noviembre de 2026

Solucion Como Pescar Un Serial En El Crackme 1 De Skirby

Hola amigos hoy veremos como atrapar un serial para nuestro nick en el crackme de Skirby, para los que no sepan el crackme es el de este hilo


Como ven yo encontré el serial para mi nick, como lo digo en ese hilo es algo sencillo y verán que no soy un profecional, ya que les diga como lo hice, otra cosa el crackme es de nivel 4 y no por eso voy a saber tanto como piensan y por otra cosa el crackme es muy viejo a como pude ver se publicó en la página de beatrix y en crackmes.de en el año 2008 y en reddit también fue publicado



Bueno a darle primero lo abrimos con x32dbg e ingresamos nombre y serial yo pondré "Flamer" y como serial "0123456789" aquí la foto
  


Ahora nos iremos a buscar las string y vemos el serial que ingresamos este


Bueno y si les quedan dudas y para estar seguros quieren probar otro serial mas efectivo ingresamos el serial "5555555555555555555555555555555555" y nos muestra esto


Como pueden ver esa línea es la correcta, ya que nos muestra el serial que ingresamos así que damos doble clic a ver donde nos lleva y nos dirige hasta aquí



Como podemos ver hay se muestra 2 valores o 2 string que se muestran el serial que ingresamos y otro... y podemos ver que tiene 10 dígitos, así que yo ingresare de nuevo "0123456789" y a ver que pasa


Como podemos ver si vamos cambiando digito por dígito el serial va cambiando hasta que concuerde o sea igual al de arriba ejemplo este es el serial que me muestra al ingresar "0123456789"

"1035649161"
"012=45:787"

Asi que cambiamos el primer valor, el cero a 1 y me muestra esto

"1035649161"
"?12=45:787"

Así que iré probando seriales dígito por dígito hasta dar con el que sea igual al de arriba y el primer digito la O y el segundo digito no cambia si lo modifico así que pongo el valor que me muestra arriba es el 0 y así sucesivamente es ir probando dígitos hasta que concuerden y un dato que nos dio el usuario que presento el crackme es que el serial está separado por guiones "-" así que ingresaré el guion quedando así



Bueno como pudimos ver la primer parte del serial está en la línea 00401494, la segunda esta en la línea 00401687 aqui una foto 


la tercera está en la línea 00401812 y es igual es ir probando los dígitos del serial


Otra cosa hay veces que el serial ingresado es similar al de arriba y no muestra el cartelito correcto así que si está complicado y para la última parte es una constante siempre será el valor 4BE708B1, pero creo que mejor quieren como lo hice pues bueno en este momento no he podido con el depurador x32dbg por los hilos que no me dejan tracear, pero la primera vez que lo logre fue con el x32dbg, pero como no puedo seme hizo más fácil ahora hacerlo con IDA aquí lo explico.... Asi que lo abrimos con IDA y nos muestra esto


Como ven yo aquí ya lo tengo si ustedes no lo tienen tendrán que presionar el botón New y buscar su ubicación en su PC y después parece esto


Ahora damos OK  y nos muestra esto


Después de esto presionamos la letra G y ponemos la dirección 00401943 que es donde se encuentra la parte donde se genera esa última parte del código y lo ponemos


Y nos muestra la siguiente zona


Acto seguido presionamos F5 y damos que si al mensaje que aparece y nos mostrara el código un poco más entendible como en c++ esto
 

Así como pueden ver el código se encuentra más entendible, así que yo analice el código y para hacerlo más simple aquí les dejo el código un poco más sencillo para que analicen como funciona

v24=string ^ 0x44950FB1
v25=v24 & 0x3E0000
if((v24 & 0x3E0000)==0x320000) 
{
   v25 = v24 & 0xFC00000;
   if ( (v24 & 0xFC00000) == 0xF400000 )
   {
      v25 = v24 & 0x1FFE0
      if ( v25 == 1792 )  //El valor 1792 esta en decimal asi que en Hexadecimal es 700 
      {
          alert("correcto") //Yo agregue esto no aparece en IDA jajaja
      }
   }
}

Así que para encontrar el valor es así:

F400000 and FC00000  = F400000 

F400000 xor 44950FB1= 4BD50FB1

4BD50FB1 xor 320000 = 4BE70FB1

4BE70FB1 xor 700   =  4BE708B1

Asi que la clave para Flamer es: 

O03K64716O-CME3CECCMT-H328Y7N8F2-4BE708B1

Y nos muestra el siguiente mensaje


Bueno creo que es todo por hoy espero les haya gustado saludos Flamer y ven que no soy un experto así fue como encontré el serial esa vez, pero si les adelanto que el keygen lo estoy haciendo lo que llevo es la primera parte del serial, pero como meda flojera lo dejo y cuando tengo tiempo vuelvo a el en fin bay


miércoles, 4 de noviembre de 2026

Solucion al Crackme 6 De Enigmagroup

Hola amigos hoy veremos la solución del crackme 6 de la página de enigmagroup, aclaro este crackme lo resolví cuando estaba la página activa, hoy que lo resolví me dio otro resultado y pienso es porque la página ya no está activa, también aclaro no soy experto y solo me conformo sacando el mensaje correcto y creo que no encontré la clave que había encontrado al principio y es porque creo que el crackme se conectaba a la página bueno empecemos ya ustedes verán... Al ejecutarlo nos aparece este mensaje


Asi que descargamos el archivo MSinet.ocx y lo aguardamos en la carpeta "SysWOW64" ya que es de 64 bits nuestro sistema y lo registramos con el comando

regsvr32 C:\Windows\SysWOW64\msinet.ocx

Aclaro el CMD lo tenemos que abrir como administrador y si su sistema es de 32 bits se aguarda en la carpeta "System32"....despues de esto nos arroja el cartelito de registro exitoso, ahora ya podemos ejecutar el crackme y es este


Así que pasamos abrirlo con el x32dbg y al presionar F9 e ingresar el nombre y serial nos arroja este error


Así que nos iremos a módulos y buscaremos la API que compara y es esta vbaStrCmp y nos muestra esto y ponemos un breakpoint


Así que damos clic y nos manda a esta zona


Así que nos iremos más arriba donde genera el error, nos iremos hasta la línea 004030B6 y ponemos un breakpoint y lo ejecutamos pondremos como nombre "polon" y serial "123456" y si nos fijamos más arriba como que manda llamar un archivo


Creo que por eso da error porque el archivo ya no está en línea así que para validar el programa modificaremos las líneas 0040310B y 00403155 le pondremos MOV EDI,0 


Ya que le pusimos 0 nos iremos traceando hasta la línea 00403210 y nos muestra esto


Hay podemos ver con que compara con "error code" y mas adelante nos muestra esto

 

Asi que en los 2 campos ponemos ese valor y nos arroja esto


No se si esto cuenta como solución, pero es la que yo encontré y la primera vez que lo solucione los seriales eran Nombre= "Controller" y Serial= "verify1337"

Bueno espero les haya gustado saludos flamer