Ver Mensaje Individual
  #13  
Antiguo 09-11-2016
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Neftali Ver Mensaje
Yo te iba a proponer el uso de SetDllDirectory, pero imagino que debe ser similar a la que comentas.
Aquí está la documentación.

Por otro lado podrías intentar mirar a otro frente. Imagino que la DLL debe "parchear" en cierta manera el comportamiento del programa en cuanto al registro.
Ese comportamiento normalmente se deduce utilizando debuggers.
¿Has probado a dificultar este paso?
No es imposible, porque como tú bien dices con tiempo al final todo se consigue, pero se puede llegar a complicar, de forma que quien lo está haciendo llegue a desistir si el esfuerzo es demasiado grande.
Esta también va en el mismo sentido.

Tú mismo puedes buscar, pero además de herramientas externas, hay mucha otra documentación al respecto.
Gracias por comenar Germán. En efecto, probé con la función que indicas, pero, sin resultados. Pudiera ser que tampoco la usase bien, pero, el proyecto Inno Setup hace uso de la otra función, yo creo que porque puede ir un poco más allá que la primera. De hecho esta segunda función, en principio, no debería "tirar" de la DLL del directorio del programa, puesto que se está indicando que se haga desde el directorio del sistema, donde además se encuentra también dicha DLL.

Sin embargo, como he dicho, no parece funcionar del todo bien... es cierto que el último "crack" de que tengo constancia no funciona, pero, está lo que no me cuadra: tengo que comprobar que la DLL exista, cuando, en teoría (hasta donde yo llego) no sería necesario, puesto que dicha DLL no se cargaría, puesto que lo haría la que se encuentra en el directorio del sistema. Curiosamente, la función en cuestión se ejecuta sin errores, de modo que tampoco puedo ver si algo falla.

Respecto de ponérselo más difícil al "cracker", en efecto, podría intentarse, por ejemplo, usando algún programa "empaquetador" y "protector". Pero, hete aquí que cualquier programa de este tipo que uno busque está a su vez "crackeado"... entonces, ¿qué confianza me ofrece un programa que se supone va a proteger mi ejecutable, si el propio programa no puede protegerse a sí mismo? Ninguna. Por otro lado, me constan programas que usan este tipo de protectores y que están "crackeados".

Pudiera ser que este "cracker" en concreto no supiese ir más allá... pero posiblemente otro podría hacerlo. En todo caso, el sistema que uso ahora no me disgusta, en el sentido de que los keygen, por ejemplo, no fucnionan. Como ahora compruebo las licencias "online", ya no sólo vale que uses un número de serie "formalmente" válido, porque este no se encontrará en la base de datos remota. Mi objetivo, como he dicho arriba, es que al menos tengan que "parchear" los propios ejecutables...

De este modo la firma de mis ejecutables se perderá, y, bueno, yo con eso me medio conformo, aunque, tengo que reconocer que el medio conformo viene de que no sabría ir más allá: si el "cracker" es capaz de meterse en el código del programa y saltarse la función que valida la licencia "online"... creo que no sabría cómo contrarestarlo. Pero ya digo, al menos tendría que parchear el programa, cosa que ahora mismo (bueno, ya veremos si hay cuarto "crack") no necesita, puesto que con poner al lado del programa una DLL ya le basta y le sobra al cabrito.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita