论坛: 编程破解 标题: C语言问题! 复制本贴地址    
作者: xuehu [xuehu]    论坛用户   登录
请问C语言怎么编写捆绑程序?

地主 发表时间: 05/12 23:26

回复: 山鸡 [duck_chen]   论坛用户   登录
很简单,你可以编写两个读文件的函数,然后把读出的两个文件首尾相连。再寻找一个目录下是否还有其它文件如果有就继续执行连接文件的函数,最后以判定目录下只剩下一个文件为标准,然后把内存中的文件写如磁盘关闭此文件即可。

B1层 发表时间: 05/14 01:58

回复: xuehu [xuehu]   论坛用户   登录
举例说明

B2层 发表时间: 06/01 19:16

回复: xiean [xiean]   论坛用户   登录
你的问题是捆绑软件怎么读取还是问怎么捆绑?

先说怎么捆绑吧,如果你要写自解的软件(比如 winzip 的自解压),则比较典型的思路是。。。打比方吧,现在写好并编译完成的执行文件为 link.exe,可带的命令行参数不限,比如输入
link file1 file2 file3
此时 link 创建新文件 linked.exe,并把自身复制过去,然后再依次读入 file1,file2,file3,并依次复制,每新复制一个文件后在文件列表增加记录,等全部写完后再把文件列表记录写上,再写上文件列表记录长度,最后写上文件结束 EOF.

这样就差不多了,图示。。。

linked 文件结构依次为
| link.exe | file1 | file2 | file3 | 文件列表 | 文件列表长度 |

解绑时。。。文件指针移到未尾,读取最后一个字节,取得文件列表长度 N
然后指针移到 [文件未尾 - N - 1] 处开始读取文件列表至 [文件未尾 -1]
再依记录依次计算文件指针偏移,读出文件并创建新文件。

嗯。。。语法写得不够流畅,只能说能看懂。。。还有,我说的没有加上长度溢出等判断,不过思路写得差不多了。。。如果还没懂就跟帖。。


[此贴被 邪安(xiean) 在 6月6日22时0分 编辑过]

B3层 发表时间: 6/6 22:36

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号