1 Star 1 Fork 5

yenmuse / TSPlug

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
TSVIPHookFuntion.h 4.45 KB
Copy Edit Raw Blame History
GJX authored 2017-08-10 10:29 . 天使插件
#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
}
}
C++
1
https://gitee.com/yenmuse/TSPlug.git
git@gitee.com:yenmuse/TSPlug.git
yenmuse
TSPlug
TSPlug
master

Search