【发布时间】:2013-05-29 10:13:37
【问题描述】:
我想知道是否可以将线程注入到在单独进程中运行的远程应用程序域中。
我的猜测是我可以使用调试接口 (ICorDebug) 来做到这一点,但我想知道是否还有其他方法?
【问题讨论】:
标签: c# .net appdomain code-injection
我想知道是否可以将线程注入到在单独进程中运行的远程应用程序域中。
我的猜测是我可以使用调试接口 (ICorDebug) 来做到这一点,但我想知道是否还有其他方法?
【问题讨论】:
标签: c# .net appdomain code-injection
最近宣布了 Mono 提供的一项新设施来执行此操作。请参阅assembly injection 上的这篇文章。
【讨论】:
Mike Stall 有一个interesting sample,介绍了如何使用 CreateRemoteThread 在托管应用程序中注入远程线程。
这个答案仍然不完整,因为我想在远程 appdomain 中运行新代码。我想我可以尝试创建一个为我加载库的新线程,另一个将调用我的新库中的一个位置来完成这项工作。
【讨论】:
这可以在snoop 中的示例代码中完成。它设置了一个钩子,并使用托管 c++ 告诉 appdomain 加载程序集。真是令人印象深刻……
【讨论】:
还有另一种方法是使用SetThreadContext,并通过更改目标进程的EIP。
但是我不知道你会如何在 C# 中做到这一点。
【讨论】: