什么是网络协议?网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合,是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通......
文件分割技术浅析
所谓文件分割就是指把一个较大的文件,分割成多个较小的文,在一次上传或下载该大文件下载不完的情况下,就可以分次上传或下载这些分割后的小文件,winrar压缩工具中就有实现文件分割的功能。
以个人的理解,一般的分割,其实就是把文件的二进制码,分成数份分别存储,然后在实际要用时,再按照分割后小文件的前后顺序,组合回原文件,这些操作并不复杂,只要把小文件的位置准确放回,不要把位置弄错,就应该不会出什么问题。
一个小程序,实现文件分割,然后将它们合并,基本上可以认为没有什么难度(和上几篇hook的程序比起来),明白原理就行了。
分割的目标文件依然是calc.exe(计算器程序)
上面的代码就是设置分割后的子文件以及子文件的大小,一共把文件分成了10份,每份大小为原大小十分之一,而最后一个子文件大小为 nFilesize - nFilesonsize[0] * 9,它是做收尾工作,所以特别对待。
这个就是循环即是实现根据子文件的大小进行二进制码写入,如果对文件打开为什么要分为字符模式以及二进制模式的设置还不怎么清楚的朋友看到这里应该可以有所收获了吧,b 的意义就是当想要这样打开一个程序文件时,体现读写流的形式是二进制,从而可以直接对这些非文档文件进行操作。
图中的一个循环写入已经完成了一切的分割,我也没有必要多解释了。而重新合并也和分割操作差不多,找到所有的分给后子文件,将其按照分割的顺序写成分割前的文件。
还是循环写入,方向只不过变为由子文件到原文件。结果测试:
运行第一个程序进行分割。
这些就是分割后的子文件,当运行第二个程序时就会合并如初。
计算器正常运行。
标签: 文件分割技术
相关文章
- 详细阅读
-
区块链核心技术体系架构的网络层主要包括什么详细阅读
区块链核心技术体系架构的网络层主要包括:A、网络管理B、P2P网络C、HTD、发现节点E、心跳服务网络管理网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视......
2022-04-28 328 区块链核心技术
-
软件调试的目的是什么详细阅读
软件调试的目的是:改正错误。软件调试的概念软件调试是泛指重现软件缺陷问题,定位和查找问题根源,最终解决问题的过程。软件调试通常有如下两种不同的定义:定义1:软件调试是为了......
2022-04-28 359 软件调试
- 详细阅读
- 详细阅读