DWORD dwES_HOOK = 0x57341E;
DWORD dwES_RESTORE = dwES_HOOK+0x5;
DWORD dwRES_HOOK = 0x570E4E;
DWORD dwRES_RESTORE = dwRES_HOOK+0x7;
DWORD dwPRES_HOOK = 0x65B316;
DWORD dwPRES_RESTORE = dwPRES_HOOK+0x5;
__declspec( naked ) void Present_Hook( )
{
_asm
{
MOV ECX, DWORD PTR DS:[EAX]
MOV EDX, DWORD PTR DS:[ECX+0x44]
PUSHAD
}
//call your shit here
_asm
{
POPAD
JMP[ dwPRES_RESTORE ]
}
}
_declspec( naked ) void Reset_Hook( )
{
_asm
{
MOV ECX, DWORD PTR DS:[EAX]
MOV EDX, DWORD PTR DS:[ECX+0x40]
PUSHAD
}
main->OnLostDevice( );
_asm
{
POPAD
CALL EDX
PUSHAD
}
main->OnResetDevice( );
_asm
{
POPAD
JMP[ dwRES_RESTORE ]
}
}
)