process.start()嵌入式exe而不先提取到文件c#

bru*_*rux 10 .net c# process

我的应用资源中嵌入了可执行文件.ATM我使用程序集反射将可执行文件提取到自己的文件,然后使用进程START()启动执行程序.是否可以直接从流中运行嵌入式可执行文件而不是先将其写入文件?请有人请告诉我最有效的方法.

ang*_*son 8

以下是我从您的问题中收集的内容以及您的意见:

  1. 您想知道是否可以执行嵌入到程序中的可执行文件,而无需先将其提取到磁盘
  2. 您的程序是.NET程序
  3. 您要执行的可执行文件不是.NET程序

答案是:是的

然而,答案也是非常非常困难的

你需要做的是,并注意我不知道所有关于此的细节,因为我不这样做,但无论如何:

  1. 将可执行代码加载到内存中
  2. 重新映射二进制映像中的所有地址,以使它们与您加载可执行文件的基址相对应
  3. 可能加载外部引用,即.可执行文件需要的其他DLL
  4. 重新映射这些引用的地址
  5. 可能加载刚刚加载的引用DLL所需的引用
  6. 重写那些 dll的
  7. 重复3到6直到完成
  8. 调用代码

我假设你的问题是"我可以做1和8",答案是否定的.

  • 你不是,只有操作系统的人.将图像提取到磁盘. (2认同)