or if you like trampolinesCode://Punkbuster used GetSystemTimeAsFileTime for PBSS you know .idata:0045D0E4 ; void __stdcall GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime) .idata:0045D0E4 extrn GetSystemTimeAsFileTime:dword ; CODE XREF: _time+9p void CleanVisuals( LPFILETIME lpSystemTimeAsFileTime ) { cvar.on=0;//Clean out visuals cvar.pbmade=false;//Punkbuster Screenshoot notifications Sleep(2000);//2 Sek Time before visuals goes back On cvar.pbmade=true;//Punkbuster Screenshoot notifications cvar.on=1;//Clean out visuals } void (WINAPI*orig_PunkbusterClean_Screenshoots)( LPFILETIME lpSystemTimeAsFileTime ); void WINAPI hook_PunkbusterClean_Screenshoots( LPFILETIME lpSystemTimeAsFileTime ) { _beginthread((void (__cdecl *)(void *))CleanVisuals, 0, lpSystemTimeAsFileTime ); orig_PunkbusterClean_Screenshoots( lpSystemTimeAsFileTime ); } detour it DetourFunction( ( PBYTE )GetSystemTimeAsFileTime, ( PBYTE )&hook_PunkbusterClean_Screenshoots ); __asm mov [ orig_PunkbusterClean_Screenshoots ], eax;
hahaCode:void CleanVisuals( LPFILETIME lpSystemTimeAsFileTime ) { cvar.on=0;//Clean out visuals cvar.pbmade=false;//Punkbuster Screenshoot notifications Sleep(2000);//2 Sek Time before visuals goes back On cvar.pbmade=true;//Punkbuster Screenshoot notifications cvar.on=1;//Clean out visuals } DETOUR_TRAMPOLINE(DWORD WINAPI orig_PunkbusterClean_Screenshoots( LPFILETIME lpSystemTimeAsFileTime ), GetSystemTimeAsFileTime); void WINAPI hook_PunkbusterClean_Screenshoots( LPFILETIME lpSystemTimeAsFileTime ) { _beginthread((void (__cdecl *)(void *))CleanVisuals, 0, lpSystemTimeAsFileTime ); orig_PunkbusterClean_Screenshoots( lpSystemTimeAsFileTime ); } DetourFunctionWithTrampoline((PBYTE)orig_PunkbusterClean_Screenshoots, (PBYTE)hook_PunkbusterClean_Screenshoots);
Credits:deadnesser,ida,rcontool(for testing is rly work),gamedeception.net and GetSystemTimeAsFileTime Function (Windows)


LinkBack URL
About LinkBacks

Reply With Quote



Bookmarks