HookCode = { 51, 192, 194, 8, 0 }
函数地址 = GetProcAddress (GetModuleHandleA (Dll), Func)
.如果真 (函数地址 = 0)
信息框 (“获取地址失败!”, #系统等待 + #错误图标, )
返回 (假)
.如果真结束
OldCode = 取空白字节集 (5)
ReadProcessMemory_字节集 (hPro, 函数地址, OldCode, 5, 0)
代码地址 = VirtualAllocEx (hPro, 0, 5, 位或 (4096, 8192), 64)
.如果真 (代码地址 = 0)
信息框 (“申请内存失败!”, #系统等待 + #错误图标, )
返回 (假)
.如果真结束
WriteProcessMemory_字节集 (hPro, 代码地址, HookCode, 5, 0)
tmp = 取空白字节集 (4)
RtlMoveMemory_字节集 (tmp, 代码地址 - 函数地址 - 5, 4)
NewCode = { 233 } + tmp ' jmp
WriteProcessMemory_字节集 (hPro, 函数地址, NewCode, 5, 0)
下一篇 软件靠边自动隐藏