[转]将C#程序嵌入资源中(C# 调用嵌入资源的EXE文件方法)
1. 我们有一个test.exe的WinForm程序,这是我们要加壳的目标程序。
2. 新建一个WinForm工程,删除Form1,然后新建一个类。如下。
3. 将test.exe 拷贝到该工程目录,作为嵌入式资源。
编译后的程序会自动将资源中的目标文件加载运行。继续发挥一下,我们可以增加启动密码;将目标程序进
2 using System.Windows.Forms;
3 using System.Resources;
4 using System.Reflection;
5 using System.IO;
6 namespace test
7 {
8 staticclass Program
9 {
10 [STAThread]
11 staticvoid Main(string[] args)
12 {
13 Stream stream = Assembly. GetExecutingAssembly_r(). GetManifestResourceStream_r("test.Code.exe");
14 byte[] bs =newbyte[stream.Length];
15 stream.Read(bs, 0, (int)stream.Length);
16 Assembly asm = Assembly.Load(bs);
17 MethodInfo info = asm.EntryPoint;
18 ParameterInfo[] parameters = info. GetParameters_r();
19 if ((parameters !=null) && (parameters.Length >0))
20 info.Invoke(null, (object[])args);
21 else
22 info.Invoke(null, null);
23 }
24 }
25 }
26
---------------------------------------------------------------------------------------------------
2
3 byte[] b =newbyte[streamObj.Length];
4 streamObj.Read(b, 0, b.Length);
5
6 Assembly a = Assembly.Load(b);
7 Type[] mytypes = a. GetTypes_r();
8 BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public |
9 BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);
10
11 foreach(Type t in mytypes)
12 {
13 MethodInfo[] mi = t. GetMethods_r(flags);
14 Object obj = Activator.CreateInstance(t);
15
16 foreach(MethodInfo m in mi)
17 {
18 if (m.Name =="Main")
19 {
20 MainDelegate md = (MainDelegate)Delegate.CreateDelegate(typeof(MainDelegate), m);
21 md.BeginInvoke(null, null);
22 }
23 }
24 }
25
解决
转载于:https://www.cnblogs.com/root7/archive/2010/03/31/1701302.html
[转]将C#程序嵌入资源中(C# 调用嵌入资源的EXE文件方法)相关推荐
- geany php,ubuntu 中geany调用浏览器展示php文件
ubuntu 中geany调用浏览器显示php文件 1.网站根目录为:/var/www 先要获取根目录的读写权限:sudo chmod 777 /var/www 2.打开geany 1)Project ...
- html不同显示器布局全乱了,不同显示器分辨率,调用不同的css文件方法[经验总结]...
根据分辨率不同,调用不同的css文件方法不同浏览器调用不同CSS文件 将以下JS代码放入 和标签内,此段JS代码作用是辨别浏览器分辨率 解释: var IE1024=""; var ...
- vscode 快速调到定义处_vim技巧:在程序代码中快速跳转,在文件内跳转到变量定义处...
本篇文章介绍 vim 的一些使用技巧: 在程序代码中快速跳转 在文件内跳转到变量定义处 在程序代码中快速跳转 在 vim 中查看代码文件时,可以使用下面命令在程序代码中快速跳转,提高效率. % 跳转到 ...
- python在多继承中子类调用某个父类的同名方法之 super讲解(mro机制)***
目录 2. 钻石继承遇到的难题 3. 针对钻石问题各语言的解决方法 3.1. C++ 3.2. Java 3.3. Ruby 3.4. Python 4. super的内核:mro 5. ...
- c语言启动程序句柄无效,U盘上打开EXE文件提示句柄无效
句柄无效 在WINDOWS编程中是一个很重要的概念,在许多地方都扮演着重要的角色.但由此而产生的句柄概念也大同小异,比如:>(Microsoft Press,by Richard Wilton) ...
- MATLAB【五】———— matlab 调用C++生成exe文件,高斯核函数
两种方式调用C++生成的exe文件, 语法: status = system(command) [status,cmdout] = system(command) [status,cmdout] = ...
- matlab调用q外部exe文件,Matlab GUI调用外部程序生成exe,DOS窗口输入问题
本帖最后由 gouliang 于 2019-12-23 09:37 编辑 主程序: clc;clear import java.awt.Robot import java.awt.event.* ke ...
- C#调用C++的dll文件方法
首先我们介绍一下原理: C#与C++的转换会经过以下几层转换 1. C# APP 2. C#接口类:C#数据 -> 纯C数据结果包装 3. C接口包装:纯C数据 -> ...
- Mac系统如何运行Windows exe程序?mac打开exe文件方法教程
使用了Mac系统之后,总会惦记着Windows系统的软件,无奈两个系统的程序文件不一样,所以也互不相通.为了让MacBook能够使用上Windows的应用程序,许多人都会给电脑安装一个Windows系 ...
最新文章
- 获取oracle数据库war报告,Oracle 数据库开发及SQL基础实战
- python读数据-Python如何读写字节数据
- GDCM:gdcm::ByteValue的测试程序
- C#中判断系统的网络连接状态的方法
- Acer 4750 安装黑苹果_黑苹果系统安装通用教程图文版
- Windows Hook
- java 怎么获取形参名_获得方法形参名称列表 -- 哦也,搞定!!
- 大O,您如何计算/近似?
- win7科学计算机的用法,Win7自带计算器使用功能介绍
- 如何用Goldwave读取保存CD歌曲
- 直流电源_稳压管稳压电路
- 李丰新年展望 | 一张图看清2020中国机会
- Git(2)-Git常用的操作和概念
- 支持同步的Todo软件
- 五种方法教你预防ddos攻击
- Android获取手机屏幕像素大小
- smarty 的安装与使用
- 825. Friends Of Appropriate Ages**
- c语言程序设计数组实验报告,c语言程序设计实验报告(数组).doc
- linux下discus/apache服务器,局域网内无法访问--解决办法
热门文章
- 计数时钟和滚动汉字显示c语言程序,MSP430F449单片机RTC时钟C语言程序(带闹钟)...
- 关于int main( int argc, char* argv[] ) 中arg和argv参数理解
- opt eclipse jre bin java_Linux下安装JDK和Eclipse的配置方法
- linux线程池实现多线程并发,基于Linux的多线程池并发Web服务器设计-电子设计工程.PDF...
- swift使用cocoapods导入oc三方库
- 久其软件怎么样_久其软件助力中国电信顺利完成网络攻防演练
- Python之匿名函数
- mac安装mysql8.0.11_【MySQL】Mac安装MySQL(V8.0.15)蹚坑记录
- matlab s% d%,matlab中var函数的翻译For N-D arrays, VAR operates along the first
- java pdf转swf_pdf转换成swf的代码