-
-
[求助]为什么64位键盘hook把32位的hook覆盖
-
发表于:
2015-12-17 10:58
3983
-
[求助]为什么64位键盘hook把32位的hook覆盖
同样的代码,做了一份x32,一份x64。
先开x32的键盘hook,正常;
再开x64的键盘hook,64位的程序正常,32位的hook失去作用。
exe设置hook的代码,32位为AH2013x32.dll,没有弹出对话框,证明SetWindowsHookEx是成功的:
HINSTANCE hMod = LoadLibrary(L"AH2013x64.dll");
if ( hMod )
{
dll_MyKbFilter lpfn;
dll_Stupid stupid;
lpfn =(dll_MyKbFilter)( GetProcAddress(hMod, "dll_MyKbFilter"));
stupid=(dll_Stupid)(GetProcAddress(hMod, "dll_Stupid"));
hhk = SetWindowsHookEx(WH_KEYBOARD, lpfn, hMod, 0);// WH_KEYBOARD
if ( hhk )
{
stupid(hhk);
}
else{
MessageBox(_T("hook失败,检查一下是否已经运行过同一程序或32位的Autohook"));
return FALSE;
}
}
然后启动调试32位的dll:
发现无法在dll_MyKbFilter中断。但SendInput的可以,SendMessage(hWndAcad,WM_COPYDATA,NULL,(LPARAM)&cmdMsg)的代码不起作用。何解?
[培训]科锐逆向工程师培训第53期2025年7月8日开班!