Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设一个挂钩给定 DLL 的函数。是否所有使用该特定 DLL 的特定功能的进程都受挂钩影响?
例如,如果要挂断MessageBoxA,user32.dll而不是弹出消息框,它会播放披头士乐队的黄色潜水艇作为系统声音。所有进程调用都会MessageBoxA遇到这种相当奇怪的行为吗?
MessageBoxA
user32.dll
——若昂席尔瓦
一般来说,它会处理特定的。
当您加载 DLL 时,窗口会将 dll 加载到您的内存空间中。如果 dll 已经加载到内存中(并映射到某个进程的空间),那么 windows 只会将内存映射到您的进程空间。
但是,当您应用挂钩时,内存会更改,因此 Windows 将为您的进程制作所述内存的副本。
阅读内存映射文件(这方面的技术是 windows 用来加载代码的技术)