Vous êtes sur la page 1sur 3

Creacin de un keygen en VB .

Net
Septiembre 21, 2007

En esta ocasin, les mostrar un ejemplo de un algoritmo bastante simple utilizado por el
programa de rippeado y respaldo de controladores, My Drivers en su versin 3.11. Primero
que nada, para poder hacer un keygen necesitan descifrar el algoritmo del programa.
Mi recomendacin es que utilicen varios seriales vlidos para la misma versin del
programa, y utilizen su ingenio para descifrar el algoritmo les recuerdo, hay algoritmos
de alta complejidad, por lo que no se frustren si no consiguen descubrirlo a la primera.
El algoritmo de My Drivers no es nada ms que convertir los caracteres del nombre de
usuario utilizado a su valor ASCII y luego a hexadecimal.
Al principio del serial se ponen unos caracteres que no cambian (WDW2222), seguido del
nmero de caracteres con que cuenta el nombre del usuario, y le sumas 22.
Por ejemplo:
KobraSoft = 9 caracteres + 22 = 31
Despus aades un guin medio (-) y luego empiezas con la conversin del nombre a
hexadecimal.
Caracter - ASCII - HEX
K 75 4B
o 111 6F
b 98 62
r 114 72
a 97 61
S 83 53
o 111 6F
f 102 66
t 116 74
Unimos todo eso, y nos queda un serial:
Nombre de usuario: KobraSoft
Serial: WDW222231-4B6F627261536F6674
Si fuera Shadow Security el serial sera as:
WDW222237-536861646F77205365637572697479
Una vez descifrado, hay que implementarlo en cdigo.
Aqu les pongo el cdigo de ejemplo en VB.Net:

Creamos la variable que medir la longitud de caracteres


de los nombres de usuario
Dim L As Integer = 0
L = Len(txtname.Text.Trim)
Verificamos que el nombre de usuario tenga ms de 2
caracteres puesto que el programa no acepta uno
tan pequeo
If L < = 2 Then
txtserial.Text = Use un nombre ms largo
txtname.Focus()
Pasada la verificacin de longitud, vamos a convertir
la cadena a su valor ASCII y luego a Hexadecimal
Else
Try
Variable que contendr la clave convertida
Dim ser As String =
Variable que nos servir como numerador posicional
Dim x As Integer = 1
Variable utilizada para convertir cada caracter
Dim characteres(L) As String
Iniciamos un ciclo FOR que recorrer cada caracter
para la conversin
For x = 1 To L
Se toma la posicin del caracter
characteres(x) = Mid(txtname.Text.Trim, x, 1)
Convertimos en ASCII y luego en HEX
characteres(x) = (Hex(Asc(characteres(x))))
Concatenamos los valores
ser = ser & characteres(x)
Next x
Slo en caso de que se ingrese un caracter no vlido
en el nombre, nos prevenimos con un mensaje de error
(opcional)
Catch
MessageBox.Show(Insert un caracter no vlido. Favor de intentar de nuevo, _
Cdido errneo, MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try

Creamos la estructura del serial


txtserial.Text = WDW2222? & (22 + L) & - & ser
End If
Con este ejemplo, pueden imaginarse lo sencillo que puede ser crear un generador de
claves, lo complicado sera el descifrado del algoritmo pero eso queda en la cabeza de
cada uno de ustedes.