You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从运行中的MyLittleProggy.exe进程实例化Class1类?

可行性与实现方案

可行性结论

完全可行,但无法通过常规本地反射直接跨进程创建对象实例,必须借助.NET的远程调用机制或CLR进程注入技术,让目标进程(MyLittleProggy.exe)的CLR执行对象创建逻辑。

实现方向指引

方案1:使用.NET Remoting(原生轻量方案)

这是.NET Framework原生支持的跨进程通信/对象共享方案,适合可控的同架构进程间操作:

  • 在Class1上标记[Serializable]或继承MarshalByRefObject,使其支持跨进程传递
  • 在MyLittleProggy.exe启动时注册一个远程通道(推荐IPC通道,适合本地进程通信),并将Class1注册为可远程访问的服务类型
  • AnotherProggy.exe通过相同的通道连接到MyLittleProggy,通过Activator.GetObject获取远程Class1实例

代码片段(C#)
MyLittleProggy端注册通道:

using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Ipc;

// 启动时执行
var ipcChannel = new IpcChannel("MyLittleProggy_Ipc_Channel");
ChannelServices.RegisterChannel(ipcChannel, ensureSecurity: false);
System.Runtime.Remoting.RemotingConfiguration.RegisterWellKnownServiceType(
    typeof(Class1), 
    "Class1_Create_Service", 
    WellKnownObjectMode.SingleCall);

AnotherProggy端获取实例:

using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Ipc;

var ipcChannel = new IpcChannel();
ChannelServices.RegisterChannel(ipcChannel, ensureSecurity: false);
var class1Instance = (Class1)System.Activator.GetObject(
    typeof(Class1), 
    "ipc://MyLittleProggy_Ipc_Channel/Class1_Create_Service");

方案2:CLR进程注入(更灵活但复杂度高)

如果无法修改MyLittleProggy的代码(或需要无侵入式操作),可以通过Windows API将反射逻辑注入到目标进程:

  • 通过Process.GetProcessesByName获取目标进程对象,使用Process.Modules定位目标进程中的CLR核心模块(如clr.dll)
  • 借助P/Invoke调用Windows API(VirtualAllocEx、CreateRemoteThread等)将自定义的.NET反射代码注入到目标进程内存
  • 注入的代码会在目标进程的CLR环境中执行,通过反射加载MyLittleProggy的程序集并创建Class1实例

核心思路代码片段(C#)

using System.Diagnostics;

Process targetProc = Process.GetProcessesByName("MyLittleProggy")[0];
// 省略P/Invoke声明(需导入CreateRemoteThread、VirtualAllocEx等Windows API)
// 1. 在目标进程分配可执行内存
// 2. 将编译好的反射逻辑字节码写入内存
// 3. 创建远程线程触发CLR执行该逻辑,完成Class1实例创建

关于Modules与Reflection的使用

  • System.Reflection:两种方案都必须用到——方案1是远程反射调用,方案2是注入后在目标进程内通过反射创建实例
  • Process.Modules:仅方案2需要,用于定位目标进程中的CLR模块,确保注入的代码能正确触发.NET运行时执行逻辑

内容的提问来源于stack exchange,提问作者DinahMoeHumm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:26:20