美好的一天,我试图以某种方式阻止“dll注入”进入我的程序。 这是我到目前为止,但它崩溃我的.exe出于某种原因。 我正在加载此代码,并将.dll附加到我的程序。C++ VirtualProtect PAGE_NOACCESS导致崩溃
声明:
LPBYTE _LdrLoadDll = (LPBYTE)GetProcAddress(GetModuleHandle("ntdll.dll"), "LdrLoadDll");
功能:
void HookNoAccess(LPVOID Offset, int size)
{
HMODULE hand = GetModuleHandle("MYPROGRAM.exe");
DWORD OldProtect;
VirtualProtect(Offset, size, PAGE_NOACCESS, &OldProtect);
VirtualProtect((LPVOID)((DWORD)hand + (DWORD)0x12d1), 6, PAGE_NOACCESS, &OldProtect);
}
称之为:
HookNoAccess(_LdrLoadDll, 2); // tried any size...
应该停止访问,目前procccess,但为什么它崩溃...
有人可以帮我吗?
有权注入代码的攻击者也有权修复页面访问标志。 –