我继续阅读 this blog sysinernals 使用 CreateRemoteThread()
注入(inject)ExitProcess
进入另一个进程以终止它。这是真的吗?而且,如果是的话,有人可以告诉我如何在我的 Delphi 应用程序中执行此操作吗?我想终止启动我的应用程序的进程。
最佳答案
您在此处提出的问题已在此博客文章中得到解答:http://private-storm.de/2009/08/11/case-terminateprocess/
这包括 Delphi 源代码。出于某种原因,该代码启用了 SE_DEBUG_NAME
特权,这不是必需的。
这种方法的难点在于定位ExitProcess
的地址。在目标应用程序中。本文中的代码假定它与您自己的进程中的地址相同。这很可能是真的,但并非总是如此。例如,如果您的进程是 64 位进程而目标进程是 32 位进程,那么它就不是真的。或者,如果目标进程的基地址不允许 kernel32 在其首选地址加载。
另一个问题是如果您的进程是 32 位,而目标进程是 64 位。在那种情况下,我相信 CreateRemoteProcess
伎俩根本失败。
总而言之,我会使用 TerminateProcess
.
关于multithreading - 在 Delphi 中使用 CreateRemoteThread 将代码注入(inject)另一个进程的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12194216/