腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
视频
用户
沙龙
专栏
专区
综合排序
丨
最热优先
丨
最新优先
时间不限
VBA解析
复合
文档
02——
复合
文档
结构
尽量用一些通俗的语言来讲一下
复合
文档
的结构,如果要真正掌握每一个细节,还是要看官方的
文档
,所以这里讲的可能不会完全正确,只是大概了解一下
复合
文档
的结构逻辑。
复合
文档
结构 一个文件在被创建的时候,
文档
的结构也同时生成,这里不讲生成的过程如何去创建这个结构,只拿生成后的文件来讲。 假如一个10KB文件,每个扇区大小是512Byte,举例如下: ? 01 扇区
复合
文档
把保存文件的磁盘空间划分了扇区(Sector),在扇区里存放数据信息。文件的开头一个扇区固定是Header结构,这个结构的信息非常重要,是解析整个文件的基础。 03 MiniFAT MiniFAT其实完全可以理解为它是一个单独的
复合
文档
结构,只是没有目录结构。 只要理解了Header结构、目录结构、DIFAT数组、FAT数组、MiniFAT数组,解析
复合
文档
就没什么难度了。 通过这些信息,构建出来扇区链表,就可以到分布的扇区中,读取或者改写数据。
xyj
2020-08-03
1.6K
0
标签:
html
编程算法
VBA解析
复合
文档
00
1、什么是
复合
文档
? 可能这个名字没有听说过,但是只要使用过Windows电脑的,其实都接触过这种结构的文件,只是没有注意到而已。 2007版本以上的Office文件,如果设置了打开密码,仍然是使用
复合
文档
结构来存储的。 详细请看微软官方
文档
: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-
cfb
/53989ce4-7b05-4f8d-829b-d08d6148375b 2、解析
复合
文档
有什么用 01 深入了解Excel的文件结构 解析
复合
文档
,能够更加深入理解Excel的文件结构,虽然2007版本以上的Excel已经 换成了xml标记语言存储,但是VBA代码相关的vbaProject.bin 文件还是使用了
复合
文档
结构。
xyj
2020-08-04
1.8K
0
标签:
vba
windows server
存储
VBA解析
复合
文档
07——Parse参数IReadWrite
因为考虑到除了直接读取文件之外,还有可能直接传入一个已经读取好了的Byte数组,比如直接从2007版本以上的Excel中读取vbaProject.bin,所以定义了一个IReadWrite接口:
xyj
2020-08-13
887
0
标签:
编程算法
VBA解析
复合
文档
03——解析扇区链表
通过前面对
复合
文档
结构的分析,解析起来问题就不大了。 Long iret = cf.r.Read(cf.Header.Signature) If iret <> 8 Then parseCfHeader = "
复合
文档
For i = 0 To 8 - 1 If cf.Header.Signature(i) <> arr(i) Then parseCfHeader = "
复合
文档
Exit Function End If If cf.Header.MiniSectorShift <> 6 Then parseCfHeader = "
复合
文档
Exit Function End If Else parseCfHeader = "
复合
文档
:Major Version must by 3
xyj
2020-08-05
1.2K
0
标签:
编程算法
html
VBA解析
复合
文档
04——解析目录信息
01 解析目录 目录信息存放的才是
复合
文档
中的真正数据的一些信息,也只有通过目录信息才能正确读取到数据流: Private Type CFDir EntryName(63) As Byte cf.MiniFAT) Then Exit For Next l_SID = cf.FAT(l_SID) Next End Function 到此
复合
文档
的结构就解析完成了
xyj
2020-08-10
947
0
标签:
编程算法
VBA解析
复合
文档
01——实现的功能
实现功能: 01 Parse '解析
复合
文档
,获取
复合
文档
文件信息'ir 一个实现了IReadWrite接口的类'Return 返回出错信息Function Parse(ir As 02 GetStream '读取某个数据流'dir_name 需要读取的文件名称,是
复合
文档
中的文件名称'RetBytes 返回的数据Byte数组'Return 返回出错信息Function 保存文件的路径'Return 返回出错信息Function GetAllStream(SavePath As String) As String 这个功能就相当于使用7Z压缩软件解压一个
复合
文档
04 ReWriteStream '改写数据流'dir_name 需要被改写的文件名称,是
复合
文档
中的文件名称'WriteBytes 需要改写为的数据Byte数组'Return 返回出错信息
xyj
2020-08-03
937
0
标签:
函数
基础
VBA解析
复合
文档
06——改写数据流
'改写数据流 'dir_name 需要被改写的文件名称,是
复合
文档
中的文件名称 'WriteBytes 需要改写为的数据Byte数组 'Return 返回出错信息 Function ReWriteStream ReWriteStreamByDirIndex(VBA.CLng(cf.h.GetItem(dir_name)), WriteBytes) Else ReWriteStream = "
复合
文档
'1仓storage 2流 5根 If cf.ArrDir(dirIndex).ObjectType <> 2 Then ReWriteStreamByDirIndex = "
复合
文档
End If If cf.ArrDir(dirIndex).StartingSectorID = Free_SID Then ReWriteStreamByDirIndex = "
复合
文档
cf.lSectorSize > cf.ArrDir(dirIndex).StreamSize \ cf.lSectorSize Then ReWriteStreamFAT = "
复合
文档
xyj
2020-08-10
954
0
标签:
数据
VBA解析
复合
文档
05——读取数据流
MiniFAT数组、目录信息,读取某个数据流就很简单了,只需要根据FAT数组或者MiniFAT数组构建的扇区链表,逐个扇区的去读取就可以: '读取某个数据流 'dir_name 需要读取的文件名称,是
复合
文档
中的文件名称 GetStream = GetStreamByDirIndex(VBA.CLng(cf.h.GetItem(dir_name)), RetBytes) Else GetStream = "
复合
文档
'1仓storage 2流 5根 If cf.ArrDir(dirIndex).ObjectType <> 2 Then GetStreamByDirIndex = "
复合
文档
End If If cf.ArrDir(dirIndex).StartingSectorID = Free_SID Then GetStreamByDirIndex = "
复合
文档
xyj
2020-08-10
1.3K
0
标签:
编程算法
VBA解析
复合
文档
08——应用-解析Thumbs.db
在前面提到过,Thumbs.db文件也是一个
复合
文档
,里面存储的数据流就是图片的缩略图。
xyj
2020-08-13
1K
0
标签:
编程算法
加密模式CBC、ECB、CTR、OCF和
CFB
在开发中如果有接触到加密,就一定遇到过MD5、DES、Triple DES、AES、RSA等加密方式(这些都叫加密算法);在深入了解加密领域的知识时,除了有加密算法外;还有加密模式(CBC、ECB、CTR、OCF、
CFB
密码反馈模式(Cipher FeedBack,简称
CFB
):实际上是一种反馈模式,目的也是增强破解的难度。
BUG弄潮儿
2020-06-12
5.1K
0
标签:
aes
block
md5
output
加密
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档