6-C++实现HOOK

C++实现HOOK

1.分配内存函数

LPVOID			//返回值:分配的内存地址
WINAPI
VirtualAllocEx(
_In_ HANDLE hProcess, //要分配内存的进程
_In_opt_ LPVOID lpAddress, //要申请的地址(不指定填NULL)
_In_ SIZE_T dwSize, //要申请分配的大小
_In_ DWORD flAllocationType,//内存分配的类型
_In_ DWORD flProtect //内存保护属性
);

2.跳转的机器码计算公式

jmp 跳转地址 == E9 (跳转地址-当前地址-5)

例如:jmp 40000

当前地址为0041FD61

40000-41FD61-5 == FFC2029A

由于是小端存储,所以倒一下:9A02C2FF

最终机器码为:E9 9A02C2FF