社区
进程/线程/DLL
帖子详情
UnhookWindowsHookEx 函数调用之后 explorer.exe程序 就崩溃 ,我做的是hook api
MFCClass
2005-09-07 11:28:34
same
...全文
249
12
打赏
收藏
UnhookWindowsHookEx 函数调用之后 explorer.exe程序 就崩溃 ,我做的是hook api
same
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
说的明白一些行不
hook
api
保护进程
hook
api
保护进程 用过卡巴斯基的朋友都知道,卡巴斯基的进程是无法杀掉的,在任务管理器中杀卡巴进程的话,会弹出一个消息框提示拒绝访问!那么这是怎么实现的呢?很简单,就是使用了
HOOK
API
的方法。兄弟门,
做
毒别
做
地根武汉那小子那么傻,有本事你也得搁着点,别去进局子!我用delphi来写
程序
好了,先写个dll。const PRG_NAME = ddos.
ex
e
通过
Hook
API
调用打造进程监控
程序
*(收藏)http://hi.baidu.com/linuxetc/blog/item/1b91c813b017e4035baf53a7.html
Hook
(钩子)是
Windows
消息处理过程中的一个监视点,应用
程序
可以通过
Hook
拦截
Windows
消息,这样就可以捕捉到目标进程的消息,并
做
相应的处理,从而达到修改系统默认行为的目的,另外,在相对封闭的
Windows
世界里,Hoo
Windows
Hook
案例分析与技术探索
Hook
是
Windows
中提供的一种用以替换DOS下“中断“的系统机制,中文译为“挂钩”或“钩子”。在对 特定的系统事件进行
Hook
后,一旦发生已
Hook
事件,对该事件进行
Hook
的
程序
就会收到系统的通知, 这时
程序
就能在第一时间对该事件
做
出响应。 钩子实际上是一个处理消息的
程序
段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有 到达目的
程序
前,钩子
程序
就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理 (改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。..
Visual Studio关于
hook
项目的简单使用
参考 DLL注入_拦截技术之
Hook
方式: 可知 如果我想要使用
hook
的dll注入方式来获取其他
程序
的数据,则关键的对象有: 操作 启动
程序
和给dll传递
程序
线程id 的一个
程序
对目标
程序
的消息进行处理的dll 目标
程序
.
ex
e
dll文件编写 操作dll文件和目标
程序
的 代码编写 新建项目 新建项目->找到 控制台应用(在
Windows
终端运行代码)->填写其他项目后,看到 将解决方案和项目放在同一目录中。 根据 终于理解了解决方案和项目之间的关系了可知:项目和解决方案的关系是:
Windows
-
Hook
键盘和鼠标消息
1.基本概念 从功能层面上讲,钩子(
Hook
)是
Windows
消息处理机制的一个分支,在消息到达窗口处理函数之前,截获任何窗口的消息或特定事件,能完成一般
程序
无法完成的功能。 从代码层面上讲,钩子是一个处理消息的代码函数,通过系统调用该函数,成功挂入系统。当消息发出时,在没有到达目的窗口前,钩子函数先捕获该消息,就是先得到控制权。此时,钩子函数可改变该消息,可以不改变该消息而继续传递,还可
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章