Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - linkcode

#1
Hola una pregunta respecto a c++, una ventana en librería dinámica.
El codigo siguiente abajo encargado de manejar los mensaje o eventos de mi ventana, tengo una duda.
Necesito que después que ya se muestre la ventana se ejecute este hilo.
********************************************************************************************
CreateThread(NULL, NULL,&(LPTHREAD_START_ROUTINE) DestruirVentana, (LPVOID)Ventana, NULL,NULL);
********************************************************************************************
El hilo antes mesionado se ejecuta cuando cuando cierro la aplicación manualmente eso no es lo que necesito, yo necesito que después que se muestre la ventana inicie el hilo.
****************************************************************************************************************************************************************************************
LRESULT CALLBACK WindowProcedure
(HWND Ventana,UINT Mensaje,WPARAM wParam,LPARAM lParam){
case ?????????:{
CreateThread(NULL, NULL,&(LPTHREAD_START_ROUTINE) DestruirVentana, (LPVOID)Ventana, NULL,NULL);
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
break;
}
}
return DefWindowProc(Ventana,Mensaje,wParam,lParam);
}


Gracias por cualquier sugerencia.!
#2
Muy buenos dias comunidad, tengo el siguiente problema.
En c++ e creado una ventana usando WINAPI librería dinámica .dll

la cuestion es en esta parte

Código (cpp) [Seleccionar]
DWORD WINAPI  DestruirVentana(LPVOID Ventana){
   ALGUN CODIGO
}

LRESULT CALLBACK WindowProcedure
(HWND Ventana,UINT Mensaje,WPARAM wParam,LPARAM lParam){
switch(Mensaje)
{

                           case WM_CREATE:
                           {
                               DestruirVentana((LPVOID)Ventana);                  
                           return 0;
                               break;
                           }
                           case WM_DESTROY:
                           {
                           PostQuitMessage(0);
                           return 0;
                           break;
                           }
}
return DefWindowProc(Ventana,Mensaje,wParam,lParam);
}


 DestruirVentana((LPVOID)Ventana); Con esta linea funciona si llama a la funcion
Si cambio la linea anterior por un thread la dll sigue funcionando pero el hilo no se ejecuta.
CreateThread(NULL,  NULL, DestruirVentana, (LPVOID)Ventana, NULL,NULL); no ejecuta el hilo

Mod: los códigos deben ir en etiquetasGeSHi... no escribas en maysuculas, hay muchas formas de resaltar texto en el foro
#3
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.
#4
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.

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;
}



        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
#5
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.!