Hola a todos,
Realmente, yo no sé qué hacía este hombre en la DLL para "cracker" el programa. Me propuse descomprimirla (está comprimida con UPX si no me equivoco) y echar un vistazo, pero, la verdad, creo que no sabría manejarme. Lo que yo supongo es que, de alguna forma, el "cracker" puede cambiar cierta variable del programa que, en efecto, determina si está registrado o no lo está. Esta variable no debería valer "True" excepto si el usuario registra el programa con los datos de una licencia válida. Esta operación se realiza "online". Bueno, en realidad "online" se comprueba que la licencia introducida es válida, pero, nada más.
Ahora bien, mis programas no requiren del usuario que lo registren cada vez que lo utilizan, como es lógico y normal. Cuando se lleva a cabo la comprobación antes mencionada, si resulta correcta, se guarda en el PC del usuario un archivo de licencia cifrado por el programa. Quiere esto decir, que, al ejecutarse el programa, si existe dicho archivo y su contenido es el correcto, la variable en cuestión se torna "True" y el programa aparecerá registrado. Ahora bien, si conseguimos cambiar la mencionada variable al principio del programa, por ejemplo, si conseguimos ponerla a "True", el programa aparecerá registrado sin más.
Tal vez no ande lo dicho muy lejos de lo que el "cracker" hacía. Pero lo que dice el compañero
Reasen va más allá. En efecto, si el programa descarga algo (ciertas cadenas de texto) de internet que al cabo le hace funcionarr bien, hasta que no se descarguen dichas cadenas no funcionará bien. ¿Podrá el "cracker" atacar el asunto de otro modo? A bote pronto se me ocurre que depende del uso de las "cadenas" descargadas... si dichas cadenas se usan, como en el caso de mis programas, para establecer cierta variable, entonces el "cracker" acaso podría igualmente establecer dicha variable.
Lo que me parece interesante es que dichas cadenas formen parte de alguna manera del código del programa... porque entonces no veo yo cómo se puede atacar eso... ahora bien, ¿no hay forma de ataque posible entonces? No digo eso, sino que a mí no se me ocurre ahora, pero, si el método en cuestión fuese infalible... ¿cómo es que no está extendido entre los programadores como tal método infalible? Aunque claro está que tampoco hace falta que fuese infalible: bastaría con dejar a determinados "crackers" fuera de juego ante el necesario ataque. En fin,... tal vez el compañero
Reasen quiera dar algunos detalles más.
![Smilie](http://www.clubdelphi.com/foros/images/smilies/smile.gif)