C#加载内嵌exe资源并运行,类似于加壳

  • Post author:
  • Post category:其他



C#加载内嵌exe资源并运行,类似于加壳

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {


        [STAThread]//需要标记现场模型为STA,否则程序可能报错
        static void Main(string[] args)
        {
			string resourceName = "ConsoleApp1" + ".AiFace.exe";//命名空间+内嵌资源名称
			
            Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);//内嵌资源转换成stream
            
            byte[] buffer = new byte[stream.Length];//资源数据缓存数组
            
            stream.Read(buffer, 0, (int)stream.Length);//读取数据到缓存数组
            
            Assembly asm = Assembly.Load(buffer); //加载数据
            
            MethodInfo pointInfo = asm.EntryPoint;//获取程序入口点
            
            pointInfo.Invoke(null, (object[])args);//运行
            
             Console.ReadLine();
        }


    }
}


需要注意资源文件生成操作选择”嵌入的资源”


选项说明



版权声明:本文为weixin_43836903原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。