@FaQuiVer,
buenas,
tu keygen funciona perfectamente.
De hecho incluso había pensado en no publicar el mío hasta que alguien más (he de reconocer que pensaba en ti) presentase otro, razón por la cual no añadí el código fuente.
¿Sigues en Revolución, y sigue siendo un grupo activo?. Lo siento pero, salvo a ti, no conozco nada más del grupo.
Saludos
@eDuArDo__xD,
un par de comentarios sobre el keygenme:
primero es que no me gusta que esté empacado. Vale que éste es el packer más sencillo, pero hay que reconocer que en el mundo de la ingeniería inversa existe la especialización (como en todos los campos), y si el packer fuese complicado (con una vm como el vmprotect o el themida) probablemente yo ni lo habría intentado.
segundo punto: falta información. Quiero decir que es muy sencillo, para los ingenieros inversos (crackers), pero si fuese una aplicación a vender, tú no podrías generar un serial válido basándote sólo en el número que te da el programa. Esto es, en mi equipo, el keygenme puede producir, por ejemplo, "9DF86" y el serial válido ser "dd83edea94f525c15f7ae0a56d12e0db", pero como depende de otra variable que desconoces y es distinta en cada equipo, en otro pc que también mostrase "9DF86" su serial podría ser "d0745412a27f4b82bd390c9b489d3ef7" (existen 2^32 posibles serials para cada número mostrado pero sólo uno es el auténtico).
Por eso yo soy partidario de "keygenmes" que se basan en el nombre, por ejemplo:
Código: Seleccionar todo
szNombre <- Nombre
dwSerial <- Serial
para i = 1 hasta longitud(szNombre)
numero = numero + ascii(szNombre[i])
fin para
si numero mod 666 = sqrt(dwSerial)
Imprimir "Enhorabuena"
sino
Imprimir "Mal"
fin si
En este ejemplo básico si yo introduzco de nombre "PeterPunk" conseguiría 926 con la suma del valor de los asciis de sus letras.
Su resto en una división entera con el valor 666 me da "260"
Entonces el serial válido seria "67600" ya que su raíz cuadrada es 260 (260^2 = 67600)
Saludos.