Chinaunix首页 | 论坛 | 博客
  • 博客访问: 660530
  • 博文数量: 151
  • 博客积分: 3498
  • 博客等级: 中校
  • 技术积分: 1570
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-28 18:10
文章分类

全部博文(151)

文章存档

2014年(12)

2013年(17)

2012年(17)

2011年(5)

2010年(12)

2009年(2)

2007年(26)

2006年(22)

2005年(38)

分类: Windows平台

2013-01-19 04:02:51

需求:

  有几个exe文件或者msi等等文件,需要打成一个包,将这个打好的包放到某台电脑上运行,能够自动执行打在包里面的exe程序;

方案1:

     打成一个包,很显然用RAR压缩成一个包就可以了,那么解压后如何运行被打在包里面的exe程序呢,rar也提供了这个功能哦!

   1)在“常规”页,勾选“创建自解压格式压缩文件”;

   2)在“高级”页,点击按钮“自解压选项”,可以在“常规”tab中设置,解压的目标路径,已经解压后运行的exe文件等;

  详细使用请参考网上教程;

方案2:

    自己写的,思路如下:

    1)首先是如何把要发布的程序打包进宿主程序来:宿主程序把要打包的文件按照二进制全部读入内存(方式可以自己定),然后把把宿主程序做一个拷贝,

     使用BeginUpdateResource->UpdateResource(RT_RCDATA)->EndUpdateResource,就可以把exe文件写到宿主拷贝文件中了;

  2)打开宿主的拷贝程序,点击Unpack,则从宿主程序的resource节读取内容,之后将内容写入一个新的exe文件就实现了解包的过程;

    使用的API如下:FindResource->LoadResource->LockResource->FreeResource;

 3)还可以实现其它更高级的功能,注意杀毒软件会报告安全问题;


 有兴趣的可以看附件:package_unpack_fun


阅读(640) | 评论(0) | 转发(0) |
0

上一篇:C/C++格式化字符串说明

下一篇:number 1

给主人留下些什么吧!~~