Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: linkcode en 25 Agosto 2014, 03:23 am



Título: Problema leer memoria de un proceso en 64 bits anti dump
Publicado por: linkcode en 25 Agosto 2014, 03:23 am
Buenas tarde amigo, gracias por este nuevo un saludo a toda esta comunidad.
bueno.
Estoy desarrolando un anti dump en c++ que seria una dll para integrarla al game.exe, consite en ecojer un bloque de un hack ejecutable opuntero 0x424548 que tiene en bits estos datos 0x20, 0x30, 0x40 es solo un ejemplo

Ahora uso una maquina windows 8 de 64 bits
ya obtengo todos los proceso me funciona de marabilla
ahora me interesa abrir cada uno de esos procesos y ver si en alguno de esos existe opuntero 0x424548 que tiene en bits estos datos 0x20, 0x30, 0x40.

AQUI EL problema.
me reconoce todos los procesos
pero esta parte del codigo
=============================
 HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);
      //////////
   if(hProcess != NULL)
   {
         }
=============================
No esta reconociendo algunas aplicaciones aplicaciones, me funciona perfecto revisando la estructura de cada proceso que pudo leer, el OpenProcess es el que no esta abriendo todas aplicaciones, pero cuando ejecuto mi game.exe como administrador hay ya puede reconocer todas. no se si tenga que ver la version de los proccesos corriendo sean de 32 o 64bits como solucionar para que pueda abrir todos gracias.!


Título: Re: Problema leer memoria de un proceso en 64 bits anti dump
Publicado por: Eternal Idol en 25 Agosto 2014, 09:44 am
No esta reconociendo algunas aplicaciones aplicaciones, me funciona perfecto revisando la estructura de cada proceso que pudo leer, el OpenProcess es el que no esta abriendo todas aplicaciones, pero cuando ejecuto mi game.exe como administrador hay ya puede reconocer todas. no se si tenga que ver la version de los proccesos corriendo sean de 32 o 64bits como solucionar para que pueda abrir todos gracias.!

Ejecuta tu programa como administrador y habilita los privilegios de depruacion.


Título: Re: Problema leer memoria de un proceso en 64 bits anti dump
Publicado por: linkcode en 25 Agosto 2014, 16:02 pm
Claro eso lo entiendo perfecto, cuando lo ejecuto como administrador funciona perfecto, el problema es quien ejecute el game.exe osea el jugador con el anti-dump no lo ara si fuera yo tampoco lo aria para usar ejemplo quiero usar el cheatengine 6.4, no lo detecta cuando no ejecuta como administrador, por eso ando buscado la forma de cambiar los privilegios intente esto pero tampoco me funciono.
Código:
BOOL SetPrivilege(
    HANDLE hToken,          // access token handle
    LPCTSTR lpszPrivilege,  // name of privilege to enable/disable
    BOOL bEnablePrivilege   // to enable or disable privilege
    )
{
TOKEN_PRIVILEGES tp;
LUID luid;
 
if ( !LookupPrivilegeValue(
        NULL,            // lookup privilege on local system
        lpszPrivilege,   // privilege to lookup
        &luid ) )        // receives LUID of privilege
{
    printf("LookupPrivilegeValue error: %u\n", GetLastError() );
    return FALSE;
}
 
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
if (bEnablePrivilege)
    tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
else
    tp.Privileges[0].Attributes = 0;
 
// Enable the privilege or disable all privileges.
 
if ( !AdjustTokenPrivileges(
       hToken,
       FALSE,
       &tp,
       sizeof(TOKEN_PRIVILEGES),
       (PTOKEN_PRIVILEGES) NULL,
       (PDWORD) NULL) )
{
      printf("AdjustTokenPrivileges error: %u\n", GetLastError() );
      return FALSE;
}
 
if (GetLastError() == ERROR_NOT_ALL_ASSIGNED)
 
{
      printf("The token does not have the specified privilege. \n");
      return FALSE;
}
 
return TRUE;
}

Código:
        HANDLE th = 0;
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES , &th);
SetPrivilege(th, SE_DEBUG_NAME, true);

me parece que tu mismo publicaste esto.

si me da privilegios, pero sigo con el problema, en OPENPROCCES me retorna ERROR 5. y aqui la pregunta como hago que los jugadores ejecuten el game.exe como administrador.

Gracias Por Responder


Título: Re: Problema leer memoria de un proceso en 64 bits anti dump
Publicado por: Eternal Idol en 25 Agosto 2014, 16:16 pm
Claro eso lo entiendo perfecto, cuando lo ejecuto como administrador funciona perfecto, el problema es quien ejecute el game.exe osea el jugador con el anti-dump no lo ara si fuera yo tampoco lo aria para usar ejemplo quiero usar el cheatengine 6.4, no lo detecta cuando no ejecuta como administrador, por eso ando buscado la forma de cambiar los privilegios intente esto pero tampoco me funciono.

No se puede hacer de otra forma, tenes que tener los privilegios de depuracion, y los podes HABILITAR pero no AGREGAR, una vez que tu proceso arranca sin los privilegios no podes hacer nada.

si me da privilegios, pero sigo con el problema, en OPENPROCCES me retorna ERROR 5. y aqui la pregunta como hago que los jugadores ejecuten el game.exe como administrador.

Lo mas sencillo es comprobar y en el caso de no tener privilegios de depuracion mostrar un MessageBox y terminar el programa; tambien esta la opcion de generar un archivo manifest embebido en tu programa. Ej.: http://manojkulandaivel.blogspot.com/2011/07/administrator-privilege-for-vc.html


Título: Re: Problema leer memoria de un proceso en 64 bits anti dump
Publicado por: linkcode en 25 Agosto 2014, 16:35 pm
Rayos me diste una tremenda idea cuando se ejecute el game pero no en modo depuracion cierre, gracias amigo XD, me diste una tremenda solucion y sencilla.


Título: Re: Problema leer memoria de un proceso en 64 bits anti dump
Publicado por: Eternal Idol en 25 Agosto 2014, 19:40 pm
De nadas  ::)