UnhookWindowsHookEx 函数调用之后 explorer.exe程序 就崩溃 ,我做的是hook api

MFCClass 2005-09-07 11:28:34
same
...全文
249 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodboyws 2005-09-07
  • 打赏
  • 举报
回复
HOOK API替换了
IMAGE_THUNK_DATA中对应函数的地址,卸载时没有还原
MFCClass 2005-09-07
  • 打赏
  • 举报
回复
程序已经实现了,但是就是卸载的时候出现了问题
MFCClass 2005-09-07
  • 打赏
  • 举报
回复
我截获的是createproess 函数
MFCClass 2005-09-07
  • 打赏
  • 举报
回复
我又测试了以下,发现有的时候就好用,有的时候卸载之后,启动别的程序时explorer就会出现了错误
布学无数 2005-09-07
  • 打赏
  • 举报
回复
问题出在你的API钩子DLL里了
调用UnhookWindowsHookEx后,所有曾经加载过你的API钩子DLL都会被释放
这时你要还原进程的API调用地址,否则肯定会出错
之所以别的进程没有出错,估计问题出在了EXPLORER进程是基于多线程的,而你的DLL可能不是基于多线程安全的
再仔细检查一下代码吧
快乐鹦鹉 2005-09-07
  • 打赏
  • 举报
回复
主要要看代码了。这个函数不可能直接会有问题阿。
DentistryDoctor 2005-09-07
  • 打赏
  • 举报
回复
什么钩子?钩子代码?
MFCClass 2005-09-07
  • 打赏
  • 举报
回复
被注销的就是被替换掉的,换掉之后就好用了.
MFCClass 2005-09-07
  • 打赏
  • 举报
回复
pfCreateProcessW = GetProcAddress(GetModuleHandle("kernel32.dll"),"CreateProcessW");
hProc = GetCurrentProcess();
DWORD dwOldFlag;
if(VirtualProtectEx(hProc,pfCreateProcessW,5,PAGE_READWRITE,&dwOldFlag))
{
if(ReadProcessMemory(hProc,pfCreateProcessW,OldMessageBoxACode,5,0))
{
if(VirtualProtectEx(hProc,pfCreateProcessW,5,dwOldFlag,&dwOldFlag))
{
NewMessageBoxACode[0]=0xe9;
DWORD*pNewFuncAddress;
pNewFuncAddress=(DWORD*)&NewMessageBoxACode[1];
*pNewFuncAddress=(DWORD)NewMessageBoxACode-(DWORD)pfCreateProcessW-5;
return TRUE;
}
}
}
return FALSE;

// hModule=LoadLibrary("kernel32.dll");// kernel32user32
// pfCreateProcessW=GetProcAddress(hModule,"CreateProcessW");
//// hProc = GetCurrentProcess();
//
//
// if(pfCreateProcessW==NULL)
// return false;
// _asm
// {
// lea edi,OldMessageBoxACode
// mov esi,pfCreateProcessW
// cld
// movsd
// movsb
// }
// //jmp MyMessageBoxA的相对地址的指令
// NewMessageBoxACode[0]=0xe9;
// _asm
// {
// lea eax,myCreateProcessW
// mov ebx,pfCreateProcessW
// sub eax,ebx
// sub eax,5
// mov dword ptr [NewMessageBoxACode+1],eax
// }
// dwIdNew=GetCurrentProcessId(); //得到所属进程的ID
// dwIdOld=dwIdNew;
// HookOn();//开始拦截
// return(true);
oyljerry 2005-09-07
  • 打赏
  • 举报
回复
如何?
MFCClass 2005-09-07
  • 打赏
  • 举报
回复
问题已经解决了
MFCClass 2005-09-07
  • 打赏
  • 举报
回复
说的明白一些行不

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧