Programación General > Visual C++

 Evitar Cambio De Nombre A Ejecutable Y Dll

(1/2) > >>

martinss:
Hola, algun codigo para evitar que personas cambien el nombre de mi ejecutable y DLL?? encontre este pero esta incompleto


--- Código: Text ---char tmpName[255];GetModuleFileName(hinstDLL, tmpName, 255);  strlwr(tmpName);  if (!strstr(tmpName, "program.dll"))  {    MessageBox(NULL, "Illegal DLL Name Change Detected", "Unable to launch", MB_OK);    ExitProcess(0);  } 

Mollense:
No creo que ese método sea muy seguro...

Por mas que ese código te funcione, cualquiera puede cambiar el nombre por otro del mismo largo y modificar la cadena con la que hacés la comparación con cualquier editor exadecimal.-

Mas bien a esa solución le agregaría un encriptado del nombre para que nadie pueda encontrar la cadena dentro del archivo,.

 :band: Renegado dicen que soy pero en verdad...

estoy ebrio  :scream:

Eternal Idol:
Eso evita el USO, DESPUES de que el nombre haya sido cambiado. Evitar el cambio no es facil pero tampoco imposible, la cuestion pasa por interceptar los intentos de hacerlo y bloquearlos.

En cuanto a comprobar el nombre, tampoco es totalmente seguro encriptado, siempre pueden modificar el codigo para que la comparacion no se haga o siempre salte al mismo punto (donde funciona). Teniendo en cuenta que saca un MessageBox, seria bastante simple poner un breakpoint en esa funcion y ver desde donde viene todo ...

Mollense:

--- Cita de: "Eternal Idol" --- En cuanto a comprobar el nombre, tampoco es totalmente seguro encriptado, siempre pueden modificar el codigo para que la comparacion no se haga o siempre salte al mismo punto (donde funciona). Teniendo en cuenta que saca un MessageBox, seria bastante simple poner un breakpoint en esa funcion y ver desde donde viene todo ...
--- Fin de la cita ---
Si, pero eso ya no lo haría cualquier lamer (Creo). Pero si, si ninguna de las empresas gigantes de software ha podido proteger sus programas. Menos nosotros-

En cuanto al cambio de nombre, no te entiendo, ¿Se necesitaría otro proceso para que supervise el cambio de nombre?

EDITO ------------------------------------------------------------------------------------

Si, lo del mensaje al usuario, yo directamente no lo pondría. Si alguien se hace el vivo tocando lo que no debe, que se joda.-

Eternal Idol:

--- Cita de: "Angel_K_ido" ---Si, pero eso ya no lo haría cualquier lamer (Creo). Pero si, si ninguna de las empresas gigantes de software ha podido proteger sus programas. Menos nosotros-
--- Fin de la cita ---

Lo unico que se puede hacer es complicar las cosas, cualquier trampa que pongas mientras el otro tenga tu ejecutable, lo pueda analizar y modificar, sera tarde o temprano saltada.


--- Cita de: "Angel_K_ido" ---En cuanto al cambio de nombre, no te entiendo, ¿Se necesitaría otro proceso para que supervise el cambio de nombre?
--- Fin de la cita ---

No necesariamente; lo que necesitas es interceptar las funciones de todos los procesos en ejecucion. En modo Usuario puede ser un ejecutable que se inyecte en los demas al arrancar e interceptando las nuevas creaciones de procesos pueda siempre interceptar todos los intentos de cambiar el nombre.
En sintesis lo que se necesita es un medio para estar monitorizando todo el tiempo, no tiene que ser un proceso por fuerza, de hacerlo en modo Kernel no necesita de un proceso en particular. Esto tampoco es 100% fiable ya que podrian arrancar la maquina en MS-DOS, Linux o lo que fuera y editar el archivo "off-line" (de Windows).

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa