在下载应用程序时,我们会发现一些特殊的EXE应用程序。当我们运行EXE程序时会同时下载或生成若干个其他应用程序,并自动运行。这个过程通常会以一种静默的方式悄悄地进行。我们将这一技术称之为EXE捆绑。之所以这样做,好的方面是简化程序下载安装的过程。坏的方面是一些流氓软件可以借此牟利,侵犯用户的选择权。本章介绍两种常用的EXE捆绑的实现方法。
本章学习知识概要:
资源捆绑
补丁捆绑
15.1 资源捆绑
是否还记得第七章资源表的内容?我们可以将其他文件以自定义资源的形式添加到EXE文件的.rsrc节区中。当然我们也可以将EXE文件中的资源文件释放到本地磁盘。如果释放的资源文件是一个EXE可执行文件,我们还可以自动运行这个EXE文件。本节我们将介绍EXE资源捆绑的方法。
本节必须掌握的知识点:
资源捆绑实现思路
补丁捆绑示例
15.1.1 资源捆绑实现思路
为了将多个文件以资源的形式添加到一个EXE文件中,我们需要编译一个EXE程序。编译时,以自定义资源的方式将要捆绑的文件添加到EXE的.rsrc资源节区。EXE程序的功能代码为:找到并释放资源节区指定的资源文件到磁盘指定目录,并自动运行该目录中的EXE可执行文件。
■实现EXE资源捆绑的步骤:
●编写EXE程序。
●添加资源文件。
●运行EXE程序,并释放资源文件。
●自动运行释放的可执行文件。
接下来我们将分步骤测试一些基本的功能模块。
■测试一
实验一百零三:测试执行多个进程的文件
示例程序设置了一个文件列表结构数组,并添加了3个文件,其中包含"notepad.exe"和"mspaint.exe"两个EXE文件,和一个配置文件"config.ini"。然后创建一个子线程执行两个EXE程序。
■测试二
实验一百零四:遍历指定目录文件并执行其中的EXE文件
示例程序遍历指定目录文件,并执行其中的EXE文件。
●Resource.h
●searchFile.rc
15.1.2 资源捆绑示例
■测试三
实验一百零五:资源绑定EXE文件
示例程序编译EXE宿主程序时,以自定义资源的方式捆绑了5个资源文件,其中包含helloworld.exe和notepad.exe两个可执行文件。当点击菜单项"释放文件(&R)..."时,在C盘根目录创建“C: est”目录,并将5个捆绑的资源文件释放到该目录。当点击菜单项"遍历文件(&O)..."时,遍历“C: est”目录下的所有文件,在窗口显示资源文件信息,并自动执行两个可执行文件。
●bindResource.c
●Resource.h
●bindResource.rc
●运行结果:
图15-1 资源捆绑EXE文件
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/do-yfwjc/23504.html