为了账号安全,请及时绑定邮箱和手机立即绑定

加载EXE文件并从内存中运行

加载EXE文件并从内存中运行

明月笑刀无情 2019-10-19 14:28:07
我想在概述运行从内存这样的可执行此文章。我可以很容易地运行任何.net /托管exe。但是我无法运行诸如notepad.exe或的可执行文件calc.exe。如何获取它,以便我也可以运行非托管exe?
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

如果从内存中运行.NET可执行文件,则库和CLR本身会为您带来很多负担。对于诸如notepad.exe和calc.exe之类的本机可执行文件,您必须进行大量手动工作才能使其实现。基本上,您必须像Windows加载程序一样工作。


这里可能有一些警告说明,但是这篇深入的文章提供了将PE Wiki,msdn加载到内存中并执行正确的变基和修复所需的步骤。然后,您应该能够找到入口点(如本文中所述)并运行它。


如果您真的只想运行notepad.exe和calc.exe,那么最简单的方法当然就是在Process.Start磁盘上使用和运行它们。否则,如果您将可执行文件作为资源嵌入到您的进程中,那么下一个最简单的方法就是将内容写到临时位置的磁盘(请参阅参考资料Path.GetTempFileName),然后从那里执行。


查看完整回答
反对 回复 2019-10-19
?
慕仙森

TA贡献1827条经验 获得超7个赞

如果您正在寻找使用C#运行Exe文件的方法,则此链接提供了一个很好的解释,并提供了一个简单但易于遵循的示例,说明如何使用Process和Process.Start应如何使用。


简而言之,您可以


Process.Start("notepad.exe")


运行非托管的exe /应用程序。


如果这样不起作用,请提供应用程序的完整路径,例如


Process.Start(@"c:\windows\system32\notepad.exe")


(我只是假设notepad.exe该文件夹中存在该文件夹,但您知道了。


查看完整回答
反对 回复 2019-10-19
  • 3 回答
  • 0 关注
  • 1208 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信