Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Nombre de ejecutable VC++

Estas en el tema de Nombre de ejecutable VC++ en el foro de C/C++ en Foros del Web. Hola, necesito un code donde no permita cambiar el nombre del archivo ejecutable o si lo cambian que el programa no arranque, trabajo en VC++ ...
  #1 (permalink)  
Antiguo 19/01/2007, 16:57
XP.
 
Fecha de Ingreso: abril-2006
Mensajes: 51
Antigüedad: 18 años
Puntos: 0
Sonrisa Nombre de ejecutable VC++

Hola, necesito un code donde no permita cambiar el nombre del archivo ejecutable o si lo cambian que el programa no arranque, trabajo en VC++

gracias.
  #2 (permalink)  
Antiguo 19/01/2007, 21:59
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Nombre de ejecutable VC++

Jeje facil.
Solo checa que el argv[0] conincida con lo que buscas.
Claro, primero tendras que limpiarlo con strstr, o strchr y cosas asi.
Si sabes C sabras de lo que te hablo, sino, es como si te hubiera respondido algo como "tienes todo nuestro apoyo, sigue asi"

Saludos
  #3 (permalink)  
Antiguo 19/01/2007, 22:03
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Nombre de ejecutable VC++

Cita:
"tienes todo nuestro apoyo, sigue asi"
Jajajajajaaj...ya me habia olvidado de eso...
Cita:
Solo checa que el argv[0] conincida con lo que buscas.
Si quieres mayor seguridad a la hora de hacer eso trata de buscar una funcion para que "encriptes" o escondas de alguna manera el nombre del ejecutable dentro del ejecutable (valga la redundancia), asi sera mas dificil de romper la seguridad que le quieres dar a tu programa.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #4 (permalink)  
Antiguo 19/01/2007, 22:08
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Nombre de ejecutable VC++

Vale, que lo haga con valores en int.
Digo, con eso si alguien habre el exe en un editor hexadecimal, no aparecera el texto asi nomas, sino "encriptado".

Hay muchas maneras de esconder el texto. hay que ser creativos.

Saludos
  #5 (permalink)  
Antiguo 19/01/2007, 22:16
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Nombre de ejecutable VC++

Cita:
Hay muchas maneras de esconder el texto. hay que ser creativos.
Justamente eso es lo que hace tan entretenida la programacion.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #6 (permalink)  
Antiguo 20/01/2007, 04:04
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Nombre de ejecutable VC++

Y lo mas entretenido es que con un par de bytes modificados la proteccion desaparece totalmente.

No permitir cambiar el nombre es algo mucho mas complejo, tenes que interceptar los intentos de cambio y bloquearlos. Se puede hacer tanto en modo Usuario como en modo Kernel, en el primer caso tenes que inyectar codigo en todos los procesos en ejecucion y los que se vayan creando (interceptando CreateProcess* tambien por ejemplo). En modo Kernel podes hacer un filtro de file system que seria la manera limpia, correcta y portable o sino unos hooks que serian el metodo "hack".
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 20/01/2007, 10:59
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Re: Nombre de ejecutable VC++

Cita:
Iniciado por Eternal Idol Ver Mensaje
Y lo mas entretenido es que con un par de bytes modificados la proteccion desaparece totalmente.

No permitir cambiar el nombre es algo mucho mas complejo, tenes que interceptar los intentos de cambio y bloquearlos. Se puede hacer tanto en modo Usuario como en modo Kernel, en el primer caso tenes que inyectar codigo en todos los procesos en ejecucion y los que se vayan creando (interceptando CreateProcess* tambien por ejemplo). En modo Kernel podes hacer un filtro de file system que seria la manera limpia, correcta y portable o sino unos hooks que serian el metodo "hack".
si si, tienes razon. Esa es la manera mas correcta y y es mucho mas segura.
Pero vamos...... dependeria del nivel de seguridad que quiere para su aplicacion. No cualquier pelele puede abrir la aplicacion en un editor hexadeciaml o en un ensamblador y cambiar el codigo. Digo, si es para una aplicacion tipo servidor de algo, pues concuerdo con Eternal Idol, sino pues mejor una manera facil como la que mencionamos. Todo depende de la necesidad y la creatividad.

Saludos
  #8 (permalink)  
Antiguo 20/01/2007, 12:50
XP.
 
Fecha de Ingreso: abril-2006
Mensajes: 51
Antigüedad: 18 años
Puntos: 0
Re: Nombre de ejecutable VC++

na, con una forma simple me basta

Código:
bool WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved )
{
	char tmpName[255];
	GetModuleFileName(hinstDLL, tmpName, 255);
	strlwr(tmpName);
	if (!strstr(tmpName, "program.dll"))
	{
		
		ExitProcess(0);
	}
con eso sale esto: fatal error C1004: unexpected end of file found
  #9 (permalink)  
Antiguo 20/01/2007, 12:55
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Nombre de ejecutable VC++

Cita:
Iniciado por XP. Ver Mensaje
con eso sale esto: fatal error C1004: unexpected end of file found
Al codigo tal como lo mostras le falta una llave (}). ¿Que compilador estas usando? Muy probablemente necesites incluir windows.h ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #10 (permalink)  
Antiguo 20/01/2007, 13:04
XP.
 
Fecha de Ingreso: abril-2006
Mensajes: 51
Antigüedad: 18 años
Puntos: 0
Re: Nombre de ejecutable VC++

la llave ya se la inclui pero igual no compila y uso Vc++ mira te dejo el source donde esta el code que yo necesito
http://rapidshare.com/files/12583286/main.cpp.html
  #11 (permalink)  
Antiguo 20/01/2007, 13:17
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: Nombre de ejecutable VC++

Bueno, eso por lo que veo son hooks aunque de otra cosa ... este codigo compilado con cl /c archivo.cpp genera el obj correctamente:

Código:
#include <windows.h>

bool WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved )
{
  if (fdwReason == DLL_PROCESS_ATTACH)
  {
    char tmpName[255];
    GetModuleFileName(hinstDLL, tmpName, 255);
    strlwr(tmpName);
    if (!strstr(tmpName, "joolzcheat.dll"))
    {
	MessageBox(NULL, "Illegal DLL Name Change Detected", "Unable to launch HL", MB_OK);
	ExitProcess(0);
    }
  }
  return true;
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:31.