【发布时间】:2012-01-12 09:02:31
【问题描述】:
我想从另一个进程卸载 DLL。是否可以? 如果是,该怎么做? (我使用的是 Win32 API)
非常感谢。
【问题讨论】:
-
因为我想阻止其他进程的DLL执行
-
执行的不是DLL,而是整个地址空间中的进程本身。 DLL 不是“执行”而是“加载”。
-
是的,一些线程使用了这个 DLL 中的一些函数,我想阻止它们运行这些函数。 (我想如果我卸载 DLL 可能会崩溃 ^^!)
-
不要费心尝试这样做。只需终止进程即可。
-
如果你懂一点汇编程序,你可以修改这个 *.dll 并改变这个函数,让它什么都不做——例如只返回 0。但这需要一些逆向工程知识和良好的调试器(如 ollydbg)。这是一种更安全的方式,不会导致崩溃。甚至可以使用 WriteProcessMemory API 对正在运行的应用程序进行此类修改,但这种方式或其他方式您必须知道要更改什么。