c#从内存中运行一个vb程序exe ?
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字节流可以直接运行在内存中!!!