Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从字节数组中打开.exe文件_C#_.net_Process_Byte - Fatal编程技术网

C# 从字节数组中打开.exe文件

C# 从字节数组中打开.exe文件,c#,.net,process,byte,C#,.net,Process,Byte,我可以使用以下方法运行.net exe: Assembly a = Assembly.Load(bytes); MethodInfo method = a.EntryPoint; if (method != null) method.Invoke(a.CreateInstance(method.Name), null); 如何对非.NET exe执行相同的操作?我不想编写.exe文件并像Process.Start()那样运行它 如何实现这个?< p>如果程序是非托管代码,例如C或C

我可以使用以下方法运行.net exe:

  Assembly a = Assembly.Load(bytes);
MethodInfo method = a.EntryPoint;
if (method != null)
    method.Invoke(a.CreateInstance(method.Name), null);
如何对非.NET exe执行相同的操作?我不想编写.exe文件并像
Process.Start()那样运行它


如何实现这个?

< p>如果程序是非托管代码,例如C或C++程序,则不能直接从.NET内存中启动它。您可以将其打包为资源,将其流式传输到磁盘(临时文件夹),然后使用System.Diagnostics.Process类启动它。但它会出现在流程列表中


如果您的程序是dll,您可以使用p/invoke来执行其入口点方法。

您想做什么?也见,;您是在尝试启动内存中包含字节的EXE,还是也需要将其注入应用程序?在您的示例中,您本质上是在将exe加载到应用程序中。这是可能的,但非常困难。要做到这一点,您需要模拟操作系统加载程序,而它将是脆弱的。提取一个临时目录可能更好。@vcsjones可以解释更多关于“模拟操作系统加载程序”?!你已经问过的这个问题对你所问的问题有更多的背景知识: