Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ThunderCls en 9 Mayo 2011, 22:18 pm



Título: TLS Callback
Publicado por: ThunderCls en 9 Mayo 2011, 22:18 pm
Hola amigos del foro.
He estado intentando implementar en C++ una TLS Callback. La cuestion es que no logro dar con mi objetivo. He estado buscando en la red algo de info y este es el codigo que encontre y que estoy usando:

Código
  1. #include <windows.h>
  2. char mensaje[] = "Hola desde la TLS Callback";
  3.  
  4. void __stdcall tls_callback(void * /*instance*/,
  5.                        DWORD reason,
  6.                        void * /*reserved*/)
  7. {
  8.  if ( reason == DLL_PROCESS_ATTACH )
  9.  {
  10.    MessageBox(NULL, "Proceso Adherido", "TLS Callback", MB_OK);
  11.    OutputDebugStringA(mensaje);
  12.  }
  13. }
  14.  
  15. DWORD _tls_index = 0;
  16. PIMAGE_TLS_CALLBACK callback = tls_callback;
  17. extern "C" IMAGE_TLS_DIRECTORY _tls_used = {0, 0, (DWORD)&_tls_index, (DWORD) &callback, 0, 0};
  18.  
  19. int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
  20. {
  21.    MessageBox(NULL,"Este es el WinMain!","Hola!",MB_OK);
  22.    return 0;
  23. }

El codigo compila sin problemas, pero al revisar el ejecutable creado, el mismo no contiene ninguna TLS Callback, por lo que no funciona. En la web donde encontre el codigo (no recuerdo bien donde) dicen que ese codigo les funcionaba, pero a mi no :( y no tengo idea de lo que pueda estar mal.
Si alguien sabe que puede estar mal o que falta, o de que otra forma se pudiera implementar una TLS Callback, le agradeceria algunos tips ;) Por cierto, estoy usando el BCBuilder6.
Saludos