用windbg改变内存进程?

时间:2012-06-19 06:02:39

标签: debugging architecture process binary windbg

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

此外,您可以编写windbg的扩展来执行复杂的操作。

答案 2 :(得分:0)

你可能甚至不需要WinDbg。你可以按照以下方式做点什么:

  • 致电OpenProcess以获取目标流程的句柄
  • 使用VirtualAlloc
  • 在目标流程中分配一些内存
  • 将代码写入内存WriteProcessMemory
  • 致电CreateRemoteThread执行代码