关于API HOOK的一个问题,灌水者免入

alphapiao 2005-04-08 06:08:59
我想拦截系统的MessageBox函数。
我写了一个测试程序,发现只能HOOK 自己程序,不能HOOK其它进程的MessageBox的调用。
我的测试程序流程如下:
利用GetProcess获得系统user32.dll中MessageBox的地址,
修改它的前8个字节为jmp MyMessageBox。
INT WINAPI MyMessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType)
{

做我HOOK时需要的事情
恢复系统MessageBox函数的前8个字节
bret=调用MessageBox函数
再次修改系统MessageBox使其跳到MyMessageBox
return bret;
}

我的疑问是,user32.dll在内存中应该只有一份拷贝(DLL的特性),那么我的测试程序对系统MessageBox函数的修改应该会影响其它进程才是,为什么对其它进程没有影响呢?

另外,如果有好的可以全局拦截MessageBox的方法,也可以告诉我。
谢谢
...全文
177 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
fecat 2005-04-12
  • 打赏
  • 举报
回复
高手呢?
howyougen 2005-04-11
  • 打赏
  • 举报
回复
关注

是不是因为dll的那部分内存是write-on-copy属性呢?
就是虽然dll在整个系统中是共享的,但因为属性是write-on-copy
所以在你修改这块内存的内容的时候,系统自动复制了另一块映射给你的进程
Kudeet 2005-04-11
  • 打赏
  • 举报
回复
Q180936:How To Position a MsgBox Using a Windows Hook Procedure
eEriEs 2005-04-11
  • 打赏
  • 举报
回复

进入ring0,

"你自己寫的dll是否應該用memory-mapped files 技術,提醒並關注"

hook函数体 放到2g以上空间

具体见 -- 变速齿轮

ps: 如果是想搞个类似的就别干了,太多!
zhjie374 2005-04-11
  • 打赏
  • 举报
回复
全局HOOK.
这方面资料满多的
alphapiao 2005-04-11
  • 打赏
  • 举报
回复
顶!
amitabha 2005-04-11
  • 打赏
  • 举报
回复
你自己寫的dll是否應該用memory-mapped files 技術,提醒並關注
alphapiao 2005-04-11
  • 打赏
  • 举报
回复
全局的HOOK与普通HOOK的做法有什么不同?
fecat 2005-04-11
  • 打赏
  • 举报
回复
fecat 2005-04-11
  • 打赏
  • 举报
回复
我觉得楼上的回答可能正确。
NOMADBLUE 2005-04-09
  • 打赏
  • 举报
回复
要实现你想要的功能,你:
1,做一个全局地hook
2,检查每个调用进程
NOMADBLUE 2005-04-09
  • 打赏
  • 举报
回复
你的DLL在执行的时候COPY到你的进程空间,其实与其他进程是独立的。
oyljerry 2005-04-08
  • 打赏
  • 举报
回复
做成一个全局地hook
krfstudio 2005-04-08
  • 打赏
  • 举报
回复
在 Win32 下每个进程的地址空间都是独立的,修改一个进程的内存不会影响到其他进程的内存。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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