OK, Ive been having some problems trying to hook an OpenGL table within a process only to recieve crashing. I believe its due to my cast conversions and such, but I am clueless on how to fix it.
Code:glViewport_t pglViewport; //OpenGL function to hook void APIENTRY hooked_glViewport( GLint x, GLint y, GLsizei width, GLsizei height ) { return pglViewport( x, y, width, height ); } //Keeps crashing here void CodeWalk( DWORD dwStartAddress, DWORD dwEndAddress ) { for ( DWORD dwCurrentAddress = dwStartAddress; dwCurrentAddress <= dwEndAddress-0x6; dwCurrentAddress+=0x6 ) { PDWORD pdwTempAddress = ( PDWORD ) dwCurrentAddress + 0x2; PDWORD pdwTableAddress = ( PDWORD ) *pdwTempAddress; HMODULE hmOpenGL = LoadLibrary( "opengl32.dll" ); if ( *pdwTableAddress == ( DWORD ) GetProcAddress( hmOpenGL, "glViewport" ) ) { pglViewport = ( glViewport_t ) *pdwTableAddress; *pdwTableAddress = ( DWORD ) &hooked_glViewport; } } } //Hooked with CreateThread after sleeping for 2 seconds void SetupOpenGLHooks( void ) { DWORD dwImportCode = (DWORD)0x01D7AFA0; if(dwImportCode != NULL) { CodeWalk(dwImportCode,dwImportCode + 0x870); //Lets go through the table } else { MessageBox(NULL,"Couldnt Find the TLS","newhook",NULL); } }



LinkBack URL
About LinkBacks


