
asi que lo abrimos con el x32dbg y vemos en los string la frase

damos doble clic y no manda a esta zona

como ven en la imagen se mira donde esta la api que compara y donde se genera el serial asi que yo puse un breakpoint en la direccion 0040110c
Citar
0040110C | 0FBE840D 48FFFFFF | movsx eax,byte ptr ss:[ebp+ecx-B8]
00401114 | 41 | inc ecx
00401115 | 33C1 | xor eax,ecx
00401117 | 03D8 | add ebx,eax
00401119 | 3B4D D8 | cmp ecx,dword ptr ss:[ebp-28]
0040111C | 75 EE | jne k4n1.40110C
0040111E | 6BC0 06 | imul eax,eax,6
00401121 | C1E3 07 | shl ebx,7
00401124 | 03C3 | add eax,ebx
00401126 | 8945 C8 | mov dword ptr ss:[ebp-38],eax
00401114 | 41 | inc ecx
00401115 | 33C1 | xor eax,ecx
00401117 | 03D8 | add ebx,eax
00401119 | 3B4D D8 | cmp ecx,dword ptr ss:[ebp-28]
0040111C | 75 EE | jne k4n1.40110C
0040111E | 6BC0 06 | imul eax,eax,6
00401121 | C1E3 07 | shl ebx,7
00401124 | 03C3 | add eax,ebx
00401126 | 8945 C8 | mov dword ptr ss:[ebp-38],eax
y veo que lee letra por letra del nombre que ingresamos y luego incrementa ECX para despues xorear el valor ascii del nombre ingresado que esta en EAX con ECX para despues sumar lo en EBX he irlo almacenando hay....al salir de ese bucle multiplica el valor EAX con 6 y despues sigue una instruccion shl 7 lo que hace es desplazar 7 bits a la deracha si ingreso Flamer como nombre EBX valdra 254 en hexadecimal en binario es:
0010 0101 0100 ahora le aplicamos el desplazamiento de 7 bits asi
0010 0101 0100 0000 000 ahora EBX valdra 12A00 en hexadecimal
despues ese valor es sumado con EAX en la linea 00401124 y ese sera el serial resultante para el crackme aqui les dejo el keygen
Código:
<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: <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="clear()" 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 clear()
{
document.getElementById("nom").value=""
document.getElementById("pass").value=""
}
</script>
</body>
</html>

como ven la clave para Flamer es 12CB8
saludos Flamer y espero les guste el keygen esta hecho en html y javascript....para el desplazamiento en el codigo javascript solo multiplique por 128 por que 2 elevado a la 7 es 128

el crackme lo pueden descargar de la pagina https://crackmes.one/