exe文件合并原理请问以前用过一
如果仅是比较简单的合并两个文件,然后运行后执行两个文件。
1。 实现合并功能
1。EXE、2。EXE 是要合并的文件,3。EXE 是合并后的文件
首先做一个可以能解并运行解并后的文件的功能模块。 (Core。exe)
二进制方式新建文件(或清空) 3。EXE。
读取 Core。EXE 内容并且写入到 3。EXE 中,记住 Core。exe 文件长度 lCoreFileLen。
读取 1。 EXE 内容并且写入到 3。EXE 中(记住是增加,在文件写入Core。EXE 当前文件指针处开始写入),记住 1。exe 开始写入的位置 lOneFilePoint 和 文件长度 lOneFileL...全部
如果仅是比较简单的合并两个文件,然后运行后执行两个文件。
1。 实现合并功能
1。EXE、2。EXE 是要合并的文件,3。EXE 是合并后的文件
首先做一个可以能解并运行解并后的文件的功能模块。
(Core。exe)
二进制方式新建文件(或清空) 3。EXE。
读取 Core。EXE 内容并且写入到 3。EXE 中,记住 Core。exe 文件长度 lCoreFileLen。
读取 1。
EXE 内容并且写入到 3。EXE 中(记住是增加,在文件写入Core。EXE 当前文件指针处开始写入),记住 1。exe 开始写入的位置 lOneFilePoint 和 文件长度 lOneFileLen。
按上面方法 将 2。EXE 增加到 3。EXE 中,记住 2。EXE 开始写入的位置 lTwoFilePoint 和 文件长度 lTwoFileLen
最后在文件当前位置增加一个结构体:
{
第一个文件在合并的文件的位置(即 lOneFilePoint)
第一个文件的长度(即 lOneFileLen)
第二个文件在合并的文件的位置(即 lTwoFilePoint)
第二个文件的长度(即 lTwoFileLen)
魔术字符串(判断是否是合并成功的文件,可以用长度为4的字符串,那样可以用long比较,例如 "Bind" )
}
2。
实现Core。
EXE
二进制方式打开自身文件,读取最后四个字符串跟自身定义的魔术字符串是否相等,否则退出
将文件指针指向文件大小 - 上面结构的大小,然后将文件读入到一个结构里面,按照结构中保存的各个文件位置和文件长度分别解并那些文件到临时文件夹中
运行解并的文件
这上面说的是很简单的方法,你可以在这个方法上添加更符合你自己的。收起