我一直在尝试使用MSDN社区Goodies中的一些代码和我自己的C ++注入代码来加载.NET运行时。我注入了一个从MSDN调用.NET加载代码的C ++ DLL。这两个组件(DLL注入和.NET加载)分别工作正常。但是,当我把它们放在一起时,我无法在之后恢复远程过程。事件查看器显示clr.dll是“错误模块”。故障偏移始终为0x001acfa2,异常代码为0xc0000005。我的C ++注入方法是codecave方法。
有没有人对远程进程崩溃的原因有任何想法?远程进程是用C#,FYI编写的(因此,clr.dll损坏=崩溃)。
Process Explorer告诉我第一次创建目标远程进程时没有加载clr.dll。我可以加载clr.dll并运行C#代码。然后当我退出并尝试恢复时,我注意到仍然加载了clr.dll。