没有合适的资源?快使用搜索试试~ 我知道了~
pst解析程序说明(内嵌项目).docx
需积分: 0 0 下载量 96 浏览量
2024-01-04
10:54:53
上传
评论
收藏 6.14MB DOCX 举报
温馨提示
试读
26页
pst解析程序说明(内嵌项目).docx
资源推荐
资源详情
资源评论
1
PST 解析程序说明
目录
1.整体结构的说明......................................................................................................................................2
1.1Node Database (NDB) Layer........................................................................................................2
1.2.Lists, Tables, and Properties (LTP) Layer .................................................................................3
1.3.Messaging Layer.............................................................................................................................4
2.Header 的解析.........................................................................................................................................4
2.1 编码方式 ...........................................................................................................................................5
2.2 root 结构...........................................................................................................................................5
3.数据块的获取 ..........................................................................................................................................7
3.1 NBT .....................................................................................................................................................8
3.2 BBT......................................................................................................................................................9
3.3 解析数据块里的数据.................................................................................................................12
4.PC 的实现及数据存储 ........................................................................................................................13
4.1 HN.....................................................................................................................................................14
4.1.1 封装 HNBlock 类 .................................................................................................................14
4.2 BTH...................................................................................................................................................14
4.2.1 BTHHEADER...........................................................................................................................15
4.2.2 BTHNode(非 PST 结构)................................................................................................15
4.3 Properties .......................................................................................................................................17
5.构建 MailStore 对象 ............................................................................................................................17
5.1 MailStore 的 PC ...........................................................................................................................17
5.2 MailStore 的 EntryID ..................................................................................................................18
6.TC 结构的实现及数据存储 ...............................................................................................................19
6.1 TC_INFO..........................................................................................................................................20
6.2 TCRowMatrix .................................................................................................................................20
7.构建 MailFolder 对象 ..........................................................................................................................22
8.构建 message 对象..............................................................................................................................24
8.1 message 对象的结构..................................................................................................................24
8.2 message 对象里相关内容存储位置.......................................................................................25
2
8.3 附件.................................................................................................................................................26
1.整体结构的说明
测试程序:
CMakePst2.zip
PST 文件是 OUTLOOK 个人文件夹文件,它是独立的、结
构化的二进制文件,不需要任何的外部依赖。每一个 PST 文件代
表一个消息存储器,包含有任意层次结构的文件夹对象 Folder ob
jects,下面又包含消息对象 Message objects,消息对象下面又
包含附件对象 Attachment objects。文件对象、消息对象、附件
对象都存储在属性中,包含有特定邮件项目的所有信息。
PST 文件在逻辑上分为三层:
NDB (Node Database) layer
LTP(Lists, Tables, and Properties) layer
Messaging layer
1.1Node Database (NDB) Layer
NDB 层代表数据库结点,是 PST 文件最低层的存储结构。NDB
层包括头部(header)、文件分配信息(fileallocation informatio
3
n)、块(blocks)、结点(nodes)、两颗 B 树:结点 B 树和块 B 树(the
Node BTree (NBT)and the Block BTree (BBT).)
NBT 包含了指向 PST 文件中所有可访问结点的指针,B 树的高
效搜索方式能够快速的定位任意结点。每一个结点由四个属性集
组成:NID,parent NID, data BID(指向与该结点关联的数据块),
subnodeBID.
BBT 包含了指向 PST 文件中所有数据块的指针,每一个块也是
由四个属性集组成:BID,IB, CB, and CREF。
其中 IB 是该块在文件内的偏移量,CB 是存储在该数据块内的
字节数,CREF 是该数据块的引用次数。
NBT and BBT 树根的位置的都能从 PST 文件头部相关字段获得。
1.2.Lists, Tables, and Properties (LTP) Layer
LTP 层是构建 NDB 结构顶部的一个高级概念,LTP 层的核心元
素是属性上下文 thePropertyContext (PC) 和 表上下文 TableCo
ntext(TC).每一个 PC 或 TC 也存放在一个单一的结点中,LTP 层使
用 NIDS 去标识 PC 和 TC。
为了有效地实现 PC 和 TC,LTP 层在每个 NDB 节点顶层采用以
下两种类型的数据结构。
(1).Heap-on-Node(HN)
HN 是在结点之上实现的一个堆数据结构,HN 能够将一个结点
的数据流细分为小的、大小可变的片段,它的主要用途是将各种
4
字符串存储到数据块中。
(2).BTree-on-Heap(BTH)
BTH 是 HN 内部的一个数据结构。HN 提供快速访问 B-树的方法,
而 BTH 提供一种快速搜索数据的方法。PC 就被实现为 BTH。
1.3.Messaging Layer
Messaginglayer 包含有让 LTB 结构和 NDB 结构组合起来被解
释为文件对象、消息对象、附件对象和属性的高级规则和业务逻
辑。该层的规则使得修改后的 PST 文件能够被成功的读取。
注:1.本解析程序需 BlowSnow 的环境下编译运行。
2.本解析说明可以配合 doc/[MS-PST].pdf 文件一起查阅。在
doc/[MS-PST].pdf 文件中可以查到 pst 的全部结构的说明、所有
字段和相关图表。
3.PST 文件的字节序用的是小端模式。
4.测试解析程序部分变量名和文档中的变量名不同,但意思
相同。
2.Header 的解析
Header 结构位于 PST 文件的开头(绝对文件偏移量 0),包含关于
PST 文件的元数据,以及访问 NDB 层数据结构的根信息。详情查看[MS-
PST].pdf 的 2.2.2.6-HEADER 章节
5
2.1 编码方式
Header结构的部分字段的大小受编码方式的影响,应先读取pst
文件的编码方式。读取偏移量为10,大小为2字节的wVer的值。如果
文件是ANSI PST文件,那么这个值必须是14或15;如果文件是Unicode
PST文件,那么这个值必须是23。
Outlook 1997-2002版本的pst文件类型,2003版本以上的默认编
码方式为Unicode。
outlook 2019可以把ANSI编码的pst文件成转换Unicode编码,文
件类型为ANSI的情况暂未处理,本解析目前只能解析Unicode编码的ps
t文件。
2.2 root 结构
root结构在Header结构中偏移量为180(Unicode编码)处开始,
大小为72个字节
root结构如图所示:
剩余25页未读,继续阅读
资源评论
白开水。
- 粉丝: 98
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- mysql语句大全及用法
- Online Maps v3 3.7.15版本
- OpenGL渲染引擎-设计与实践
- meta-llama-3-8b-instruct 的 model-00001-of-00004.safetensors 的1/3
- C# yolov8 TensorRT +ByteTrack Demo.rar
- WX小程序源码无后台同城拼车(完整带PHP后台)
- 基于Swift的空气质量监测应用设计源码 - BadAir
- java开发的基于kafka、xlog的web日志实时分析storm topology
- k8s1.20.4-高可用集群部署-新增项目-kubernetes安装包和详细文档笔记整理
- 基于UC3842-S开关电源PDF原理图+反激开关电源全套学习教程资料.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功