Fetch the repository succeeded.
#pragma once
#include <Windows.h>
#include "TSRuntime.h"
//XP系统下挂钩位置偏移
//77D184AE __stdcall NtUserCallOneParam(x, x)
#define NtUserCallOneParam_XPOffset 0x84AE
//77D298A6 __stdcall NtUserGetThreadState(x)
#define NtUserGetThreadState_XPOffset 0x198A6
//77D29F5E __stdcall NtUserGetKeyState(x)
#define NtUserGetKeyState_XPOffset 0x19F5E
//77D2A822 __stdcall NtUserGetAsyncKeyState
#define NtUserGetAsyncKeyState_XPOffset 0x1A822
//77D2A93A __stdcall NtUserCallTwoParam(x, x, x)
#define NtUserCallTwoParam_XPOffset 0x1A93A
//77D184AE __stdcall NtUserCallOneParam(x, x)
#define NtUserCallOneParam_Win2003Offset 0x1b626
//77D298A6 __stdcall NtUserGetThreadState(x)
#define NtUserGetThreadState_Win2003Offset 0x1cb3c
//77D29F5E __stdcall NtUserGetKeyState(x)
#define NtUserGetKeyState_Win2003Offset 0x16348
//77D2A822 __stdcall NtUserGetAsyncKeyState
#define NtUserGetAsyncKeyState_Win2003Offset 0xED3A
//77D2A93A __stdcall NtUserCallTwoParam(x, x, x)
#define NtUserCallTwoParam_Win2003Offset 0x755F
//WIN7X86系统下挂钩位置偏移
//77D184AE __stdcall NtUserCallOneParam(x, x)
#define NtUserCallOneParam_WIN7X86Offset 0x1D8F7
//77D298A6 __stdcall NtUserGetThreadState(x)
#define NtUserGetThreadState_WIN7X86Offset 0x13A20
//77D29F5E __stdcall NtUserGetKeyState(x)
#define NtUserGetKeyState_WIN7X86Offset 0x12D17
//77D2A822 __stdcall NtUserGetAsyncKeyState
#define NtUserGetAsyncKeyState_WIN7X86Offset 0xA2F4
//77D2A93A __stdcall NtUserCallTwoParam(x, x, x)
#define NtUserCallTwoParam_WIN7X86Offset 0xDBCC
//WIN8X86系统下挂钩位置偏移
//77D184AE __stdcall NtUserCallOneParam(x, x)
#define NtUserCallOneParam_WIN8X86Offset 0x7470
//77D2A93A __stdcall NtUserCallTwoParam(x, x, x)
#define NtUserCallTwoParam_WIN8X86Offset 0x8FA7
//77D298A6 __stdcall NtUserGetThreadState(x)
#define NtUserGetThreadState_WIN8X86Offset 0xb9d7
//77D29F5E __stdcall NtUserGetKeyState(x)
#define NtUserGetKeyState_WIN8X86Offset 0x24F08
//77D2A822 __stdcall NtUserGetAsyncKeyState
#define NtUserGetAsyncKeyState_WIN8X86Offset 0xC08D
//WIN7X64系统下挂钩位置偏移
//77D184AE __stdcall NtUserCallOneParam(x, x)
//#define NtUserCallOneParam_WIN7X64Offset 0x160cd
//77D298A6 __stdcall NtUserGetThreadState(x)
#define NtUserGetThreadState_WIN7X64Offset 0x20DCE
//77D29F5E __stdcall NtUserGetKeyState(x)
#define NtUserGetKeyState_WIN7X64Offset 0x229AE
//77D2A822 __stdcall NtUserGetAsyncKeyState
#define NtUserGetAsyncKeyState_WIN7X64Offset 0x3EC48
//77D2A93A __stdcall NtUserCallTwoParam(x, x, x)
#define NtUserCallTwoParam_WIN7X64Offset 0x17426
//WIN8X64系统下挂钩位置偏移
//77D184AE __stdcall NtUserCallOneParam(x, x)
//#define NtUserCallOneParam_WIN7X64Offset 0x160cd
//77D298A6 __stdcall NtUserGetThreadState(x)
#define NtUserGetThreadState_WIN8X64Offset 0x8040
//77D29F5E __stdcall NtUserGetKeyState(x)
#define NtUserGetKeyState_WIN8X64Offset 0x9c12
//77D2A822 __stdcall NtUserGetAsyncKeyState
#define NtUserGetAsyncKeyState_WIN8X64Offset 0x17ad5
//77D2A93A __stdcall NtUserCallTwoParam(x, x, x)
#define NtUserCallTwoParam_WIN8X64Offset 0x8012
DWORD EAX_NtUserCallOneParam=0;
DWORD EAX_NtUserGetThreadState=0;
DWORD EAX_NtUserGetKeyState=0;
DWORD EAX_NtUserGetAsyncKeyState=0;
DWORD EAX_NtUserCallTwoParam=0;
DWORD NtUserCallOneParamRet=0;
DWORD NtUserGetThreadStateRet=0;
DWORD NtUserGetKeyStateRet=0;
DWORD NtUserGetAsyncKeyStateRet=0;
DWORD NtUserCallTwoParamRet=0;
BYTE NtUserCallOneParamUnhookByte[5]={0};
BYTE NtUserGetThreadStateUnhookByte[5]={0};
BYTE NtUserGetKeyStateUnhookByte[5]={0};
BYTE NtUserGetAsyncKeyStateUnhookByte[5]={0};
BYTE NtUserCallTwoParamUnhookByte[5]={0};
void VIPHookandUnhookAPI(void *para);
__declspec(naked) ULONG __stdcall NtUserCallOneParam(DWORD Param, DWORD Routine)
{
_asm{
mov eax,EAX_NtUserCallOneParam
//mov eax,0x1143
jmp NtUserCallOneParamRet
ret
}
}
__declspec(naked) ULONG_PTR __stdcall NtUserGetThreadState(DWORD Routine)
{
_asm{
mov eax,EAX_NtUserGetThreadState
jmp NtUserGetThreadStateRet
ret
}
}
__declspec(naked) SHORT __stdcall NtUserGetKeyState(int nVirtKey)
{
_asm{
mov eax,EAX_NtUserGetKeyState
jmp NtUserGetKeyStateRet
ret
}
}
__declspec(naked) SHORT __stdcall NtUserGetAsyncKeyState(int nVirtKey)
{
_asm{
mov eax,EAX_NtUserGetAsyncKeyState
jmp NtUserGetAsyncKeyStateRet
ret
}
}
__declspec(naked) ULONG __stdcall NtUserCallTwoParam( DWORD Param1,DWORD Param2,DWORD Routine)
{
_asm{
mov eax,EAX_NtUserCallTwoParam
jmp NtUserCallTwoParamRet
ret
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。