c#从内存中运行一个vb程序exe ?

frog20130415 2013-12-02 02:36:15

FileStream fileStreamSoftware = new FileStream(softwarePath, FileMode.Open, FileAccess.Read);
BinaryReader binaryReadSoftware = new BinaryReader(fileStreamSoftware, encoding);
//streamRead.BaseStream.Seek(0, SeekOrigin.Begin);// 从数据流中读取每一行,直到文件的最后一行
byte[] buffer = new byte[1024 * 1024];
int countRead = 0;
while (binaryReadSoftware.PeekChar() != -1)
{
countRead = binaryReadSoftware.Read(buffer, 0, buffer.Length);
}
byte[] arrSoftwareData = new byte[countRead];
for (int i = 0; i < countRead; i++)
{
arrSoftwareData[i] = buffer[i];
}

binaryReadSoftware.Close();//关闭流
fileStreamSoftware.Close();


读出来的arrSoftwareData 字节流来自于服务器上,现在要求是直接在内存中运行,而不是转为exe文件再打开,有什么好的办法

网上查了资料,用的方法是{“借尸还魂”,启动一个僵尸进程(NT下可以是自身程序启动的另一个进程),然后在它运行前将其整个替换成内存中的exe内容,待正式运行后执行的就是你的目标代码},不过用的是dephi或c++,求高手生成一个c++的dll文件,以便调用上面的buffer字节流可以直接运行在内存中!!!
...全文
194 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2013-12-04
  • 打赏
  • 举报
回复
如果是VB.NET程序,可以直接用Stream加载:Assembly.LoadForm(Stream)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧