我想知道是否可以将线程注入到在单独进程中运行的远程应用程序域中。
我的猜测是我可以使用调试接口(ICorDebug)来做到这一点,但我想知道是否还有其他方法?
我想知道是否可以将线程注入到在单独进程中运行的远程应用程序域中。
我的猜测是我可以使用调试接口(ICorDebug)来做到这一点,但我想知道是否还有其他方法?
最近宣布了 Mono 提供的一个新工具来做到这一点。请参阅有关程序集注入的这篇文章。
Mike Stall 有一个关于如何使用 CreateRemoteThread 在托管应用程序中注入远程线程的有趣示例。
这个答案仍然不完整,因为我想在远程 appdomain 中运行新代码。我想我可以尝试创建一个为我加载库的新线程,另一个将调用我的新库中的一个位置来完成这项工作。
还有另一种方法是使用SetThreadContext
, 并通过更改目标进程的 EIP。但是我不知道你会如何在 C# 中做到这一点。
这可以在snoop中的示例代码中完成。它设置了一个钩子,并使用托管 c++ 告诉 appdomain 加载程序集。真的很感人...