Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Nu|kEr32 en 8 Octubre 2009, 06:17 am



Título: Los keygens siempre se crean en Visual Basic?
Publicado por: Nu|kEr32 en 8 Octubre 2009, 06:17 am
Bueno, pues esa es la pregunta.... Todos los Keygens se crean en visual basic, que no hay otra alternativa, como hacerlos en c o en python, tienen que ser en visual basic que se hacen, y si hay keygens en c o c++ me dicen como se hacen?, es que no sé... en visual basic me parece que crea malos hábitos de programación, aunque yo ya había aprendido un poco de este... Pero pues... si se puede en c/c++/python/perl/Java(no toy seguro)/pascal/asm...de antemano gracias por contestar ;) :-[


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Amerikano|Cls en 8 Octubre 2009, 17:23 pm
Los keygens basicamente son pequeños programas que te dan una clave o te dan la llave para desproteger el programa en cuestion. Como se trata de un programa no mas, se puede programar con el lenguaje que quieras, no es necesario que tenga interfaz grafica ni nada de eso, basicamente que cumpla la funcion, puedes usar tambien lenguajes interpretados o lo que sea, java, VB, python, c/c++ etc, y etc, solo es cuestion de que sepas programar en el lenguaje que piensas hacerlo y ya  :)

Salu2


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: ThunderCls en 8 Octubre 2009, 23:48 pm
hace un par de dias no estaria diciendo esto, pero te puedo asegurar que hasta en Excel se pueden crear keygens  :o
si, asi como lees...jeje  ;D


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Amerikano|Cls en 9 Octubre 2009, 00:55 am
y si fue lordf00 no? jeje


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: ThunderCls en 9 Octubre 2009, 01:00 am
si, asi mismo es...  ;D
aprendi algo nuevo con ese bro  ;)


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Amerikano|Cls en 9 Octubre 2009, 05:54 am
si, asi mismo es...  ;D
aprendi algo nuevo con ese bro  ;)

Igualmente  ;)


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Nu|kEr32 en 9 Octubre 2009, 06:12 am
Hasta en Excel, y como se hacen en Excel, o en cualquier tipo de hoja de calculo??, pues, no es que diga que sé como se hacen los keygens en visual basic, pero me gustaría aprender a hacerlos mejor en c, no en c++ a ver si hay alguno que me puedan dar de como hacerlos en c o hasta en Excel...jejeje


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Amerikano|Cls en 9 Octubre 2009, 06:28 am
Hasta en Excel, y como se hacen en Excel, o en cualquier tipo de hoja de calculo??, pues, no es que diga que sé como se hacen los keygens en visual basic, pero me gustaría aprender a hacerlos mejor en c, no en c++ a ver si hay alguno que me puedan dar de como hacerlos en c o hasta en Excel...jejeje

No tiene nada de raro, es cuestion de que te sepas la rutina de la proteccion y puedas plasmarla en un code ... mira por ejemplo este keygen que hice para un crackme en c:

Código
  1. #include <stdio.h>
  2. #include <windows.h>
  3.  
  4. int main(){
  5.  
  6.     char cadena1[]= "abcdefghijklmnopqrstuvwxyz123456789-0. ABCDEFGHIJKLMNOPQRSTUVWXYZ!^";
  7.     char cadena2[][4]={"QMD","W6","J8","D2","S4","B5","GM2","QW","N0","HJ","RC","DU","T8L","JK","D7","E4","8D8","BP","UQ7","ER","FJ6","LZ","DS1","T7","X0","KJ0","OP","L0","PQ","DJ","VC","7B","SY","LQ","21","6T","ND","KI","09","RT","ER","FJ6","LZ","DS1","T7","X0","KJ0","OP","L0","PQ","QMD","W6","J8","D2","S4","B5","GM2","QW","N0","HJ","RC","SY1","LQ3","21","6T","ND","KI"};
  8.     char cadena3[][4]={"TY","KJ","3I","DA","87","45","ML","QW","4R","0E","F7","5H","MT","PO","JH","2B","MQ","LL","00","ER","38","M4","7A","XZ","VD","K0","EN","GR","UJ","FG","3N","W2","M0","83","RT","9X","F2","U4","GM","M56","TY","KJ","2B","MQ","LL","00","ER","38","M4","7A","XZ","VD","K0","EN","GR","3I","DA","87","45","ML","QW","4R","0E","F7","5H","MT"};
  9.     char nombre[20];
  10.     char temp[30]="";
  11.     char temp2[30]="";
  12.     char nombrePC [20 + 1];
  13.  
  14.     DWORD tam = sizeof (nombrePC);
  15.     GetComputerName(nombrePC, &tam);
  16.  
  17.     printf("------ KeyGen por AmeRiK@nO ------\n\n");
  18.     printf("- Ingrese su nombre: ");
  19.     scanf("%s", nombre);
  20.  
  21.     int i=0,j=0;
  22.     for(i=0; nombre[i]!= '\0'; i++){
  23.             for(j=0; j<sizeof(cadena1);j++){
  24.                     if(nombre[i]==cadena1[j])
  25.                        strcat(temp, cadena2[(j<<2)/4]);
  26.             }
  27.     }
  28.  
  29.     for(i=0; nombrePC[i]!= '\0'; i++){
  30.             for(j=0; j<sizeof(cadena1);j++){
  31.                     if(nombrePC[i]==cadena1[j]){
  32.                        strcat(temp2, cadena3[(j<<2)/4]);
  33.                        strcat(temp, temp2);
  34.                     }
  35.             }
  36.     }
  37.  
  38.     printf("\n- Su serial correcto es: %s", temp);
  39.  
  40.     getch();
  41.     return 0;
  42.  
  43.  
  44. }
  45.  

Salu2


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Nu|kEr32 en 9 Octubre 2009, 07:04 am
Gracias Amerik@nO, lo compilé y me salió perfecta la compilación del programa, pero, digo, me serviría mejor un tutorial, a ver si tiene alguno por ahí que me pueda dar, el link.
Pues, estoy aprendiendo C, pero no es que sepa mucho, un 3% si mucho (jeje), no sé si sería molestia que me puedan dar uno, ah!, y el de excel.
PD: amerik@no, acabo de visitar tu blog y veo que publicaste cosas nuevas, hace rato, que veía que no publicabas nada nuevo, pues, hace como 5 días o 4 había vuelto a entrar y pensaba que lo habías abandonado...pero veo que sí lo actualizas...y me lo voy a poner a leer mañana, jeje :rolleyes:


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Amerikano|Cls en 9 Octubre 2009, 09:11 am
Bueno, pues tutos especificos de como crear un keygen no creo haber visto porque basicamente como te lo he dicho es que tu primero comprendas la proteccion y luego la plasmes.

Por ejemplo si la proteccion de X programa se basa en nombre/serial y que el serial correcto se genera a partir de la suma de los valores ASCii de cada letra del nombre, entonces lo que harias en el keygen es tomar el nombre del usuario y sumar sus valores ASCiis y mostrar el resultado el cual seria el serial valido para el programa X:

Nombre ingresado       Serial valido
pepe                ---        112 + 101 + 112 + 101 = 426

Y eso es lo que harias en tu code y mostrarle al usuario el resultado.

Espero se entienda  ;).

PD:  jeje el blog no lo habia actualizado porque andaba ocupado con mis estudios y pues esta semana la he tenido libre asi que he realizado unas pocas tareas que he tenido pendiente entre ellas el blog :xD y me agrada que te haya gustado.

 eso es lo que hace uno generalmente dependiendo de la proteccion ;)


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: tena en 10 Octubre 2009, 03:26 am
No es mas que hacer sumas, restas, concatenar, etc, no es nada raro


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: MCKSys Argentina en 11 Octubre 2009, 19:01 pm
Puedes hacer un keygen en cualquier lenguaje de programacion/script.

Sólo debes tener el algoritmo de generacion de clave y saber programar en algun lenguaje/script.

Es asi de sencillo...




Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: ThunderCls en 12 Octubre 2009, 14:24 pm
igual si buscas por http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/ (http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/)
encontraras algo que te deje conforme, aun asi, como han dicho Amerik@no, Tena y MCKSys, todo es cuestion de descubrir el algoritmo usado por la aplicacion para sacar datos correctos y luego pasarlo a cualquier lenguaje que desees  ;)

PD: el analisis en excel del amigo Lordf00 lo he subido a mi site, si lo deseas descargar sacalo de aqui
http://sites.google.com/site/thundercrackslatinos/Home/otros-papers/Analisis-Keygen_EXCEL.rar?attredirects=0 (http://sites.google.com/site/thundercrackslatinos/Home/otros-papers/Analisis-Keygen_EXCEL.rar?attredirects=0)


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Nu|kEr32 en 12 Octubre 2009, 17:19 pm
Gracias a todos los que respondieron, Amerik@no, sí lo entendí, pero, io como sé q el serial se basa en la suma de los valores ascii de cada letra?.
Descubriendo el algoritmo usado?...y como lo descubro?
PD: amerik@no en tu blog dices q hay q descargar unos programas, lo q pasa es q no sé si me vayan a servir, (utilizo winvista) y me parece q cuando descargué unos programas parecidos no me funcionaron...ademas como hago pa q el AV no los detecte?
tena, MCKSys y Thunder_07 gracias por sus respuestas.
Thunder_07 gracias por darme el link del keygen en excel, ya lo descargué...
Gracias y perdon por responder tarde


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: tena en 13 Octubre 2009, 01:26 am
Simplemente cuando metes un nombre y serial (falsos) tenes que interceptarlos y ver que hace con ellos, no solo suma, puede hacer muchas operaciones....

Para caer en ese momento en el que toma el serial/name del edit, y podes intentar con la api GetDlgItemTextA, mm o caer cuando apretes el boton de registrar y tracear...
o interceptas el mensaje malo y ves porque te salio... ufff se puede atacar de varias formas para caer en ese punto.

saludos


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Amerikano|Cls en 13 Octubre 2009, 01:37 am
Como te ha dicho Tena, hay que pillarse primero la proteccion y de ahi en adelante la traceas con un depurador para comprenderla, y luego si crear el keygen, el ejemplo que te puse es solo suponiendo que la proteccion se basa solamente en la suma de los ascii del nombre ingresado por el usuario, fue solo un pequeño ejemplo  :xD. Y en cuanto al blog no se si te refieras a los programas de los tutos que he hecho, yo solo los subo para que el que quiera lo vea tambien con sus propios ojos  ;)

salu2


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Nu|kEr32 en 13 Octubre 2009, 06:29 am
Simplemente cuando metes un nombre y serial (falsos) tenes que interceptarlos y ver que hace con ellos, no solo suma, puede hacer muchas operaciones....

Para caer en ese momento en el que toma el serial/name del edit, y podes intentar con la api GetDlgItemTextA, mm o caer cuando apretes el boton de registrar y tracear...
o interceptas el mensaje malo y ves porque te salio... ufff se puede atacar de varias formas para caer en ese punto.

saludos
Ahh... es como su nombre lo indica: Ingeniería Inversa, xD (quería decir algo estúpido) es como saber q tipo de proteccion tiene, si sabemos de q tipo de forma esta hecho y usado a partir de unas pruebas q le hagamos, como un analisis de la situacion a las q estamos sometidos a descubrir por medio de pruebas...Una pregunta, la api GetDlgItemTextA, es una Api para uso en c o en asm y está incorporada en cualquier compilador??? o tngo q descargarla e instalarla por ejemlo en dev c++ o codeblocks??(como se nota q no he hecho ningun crack)
PD: Amerik@no, sólo me refiero a q si los haz probado en winvista, pq hac mucho tiempo como 6 meses atras recuerdo q me iba a descargar uno de esos programas y no me funkaron...Y ps, por eso no he podido practicar con tu blog...


Título: Re: Los keygens siempre se crean en Visual Basic?
Publicado por: Amerikano|Cls en 13 Octubre 2009, 15:05 pm
Es practicamente como los has dicho, revertir una proteccion  ;). En cuanto a la funcion GetDlgItemTextA, es una funcion propia de windows, es decir que viene incorporada en una de las dlls de este sistema, mas concretamente en la user32.dll, de manera que la puedes usar simpre y cuando estes programando bajo win32, solo basta con importar la libreria que la posea, por ejemplo en c creo quees win.h y asi....

Y en cuanto a los programas, pues la verdad no los he probao en winvista porque no lo tengo  :xD.

salu2