1

我想知道是否可以使用windbg在内存进程中注入二进制文件?将 windbg 挂接到进程上以潜在地替换原始二进制文件的指令或添加其他二进制指令以由进程运行?(以及注入 dll?)可以编写脚本吗?

基本上我想知道使用windbg可以对一个进程做多少以及可以修改多少进程。(我可以在技术上使用 windbg 将整个二进制文件及其 dll 映射到现有进程中吗?)

4

3 回答 3

1

使用 windbg 挂接进程,您可以修改该进程拥有的几乎所有内存,例如指令、堆栈、堆内存等。

于 2012-06-19T06:12:47.493 回答
0

你可能甚至不需要 WinDbg 来做这个。您可以执行以下操作:

  • 调用OpenProcess以获取目标进程的句柄
  • 使用在目标进程中分配一些内存VirtualAlloc
  • 将代码写入内存WriteProcessMemory
  • 调用CreateRemoteThread执行代码
于 2012-06-21T21:23:04.040 回答
0

我没有尝试过,但理论上这是可能的(至少是你所要求的一些)。

您可以存储当前指令,通过调用重写它们LoadLibrary并将您的 DLL 名称存储在堆栈中。加载 DLL 后,您需要恢复重写的指令并执行它们(或者您可以通过手动执行这些指令的操作在 windbg 中模拟它们)。

你也可以为windbg编写扩展来做复杂的事情。

于 2012-06-19T06:58:50.667 回答