第1篇 硬盘结构与文件系统 1
第1章 硬盘基础知识 1
1.1 闲话硬盘——从最大到最小 1
目录 1
1.2 硬盘的物理结构 2
1.3 硬盘的逻辑结构 4
2.1 磁盘编辑软件 7
2.1.1 Diskedit 7
第2章 硬盘的数据存储结构 7
2.1.2 WinHex 8
2.2 硬盘数据存储总体结构 8
2.3 主引导扇区 12
2.3.1 主引导扇区的结构 12
2.3.2 硬盘分区表 13
2.3.3 扩展(虚拟)主引导扇区 15
第3章 FAT文件系统 18
3.1 引导扇区的结构 18
3.1.1 引导扇区数据结构 19
3.1.2 一个体现引导扇区重要性的实验 23
3.2 磁盘文件分配表 25
3.2.1 簇与FAT链 25
3.2.2 分区中的扇区定位 28
3.2.3 磁盘的容量限制 29
3.3 目录项的结构 30
3.3.1 FAT16文件系统中的目录项 31
3.3.2 FAT32文件系统中的目录项 38
3.3.3 树型目录结构的实现 40
第4章 NTFS文件系统 42
4.1 NTFS分区的总体结构 43
4.2 NTFS分区引导扇区分析 45
4.2.1 引导分区的BPB参数 47
4.2.2 NTLDR区域 50
4.3 主控文件表与元数据 50
4.3.1 主控文件表的头信息 51
4.3.2 元数据文件 53
4.4 文件属性 55
4.4.1 属性头信息 56
4.4.2 10H类型属性 63
4.4.3 20H类型属性 64
4.4.4 30H类型属性 66
4.4.5 40H类型属性 69
4.4.6 50H类型属性 70
4.4.7 60H类型属性 75
4.4.8 70H类型属性 76
4.4.9 80H类型属性 78
4.4.10 90H类型属性 83
4.4.11 A0H类型属性 87
4.4.12 B0H类型属性 88
4.4.13 C0H类型属性 89
4.4.14 D0H类型属性 91
4.4.15 E0H类型属性 91
4.4.16 100H类型属性 91
4.5 NTFS元数据文件分析 92
4.5.1 $MFT 92
4.5.2 $MFTMirr 94
4.5.3 $LogFile 95
4.5.4 $Volume 96
4.5.5 $AttrDef 98
4.5.6 根目录 101
4.5.7 $Bitmap 103
4.5.8 $Boot 104
4.5.9 $BadClus 105
4.5.10 $Secure 106
4.5.11 $UpCase 109
4.5.12 $Extend 110
4.5.13 $ObjId 112
4.5.14 $Quota 113
4.5.15 $Reparse 115
4.5.16 $UsnJrnl 117
4.6 NTFS的树型目录 117
4.6.1 目录的MFT 118
4.6.2 文件索引的结构 119
5.1.1 管理员自身的因素 121
5.1 来自互联网络的攻击 121
第2篇 数据安全与恢复 121
第5章 谁在威胁数据安全 121
5.1.2 系统漏洞 123
5.1.3 防范黑客攻击 134
5.2 几种常见计算机病毒的清除 139
第6章 数据恢复技术 145
6.1 漫谈数据恢复 145
6.2 恢复主引导扇区遭到破坏的硬盘 146
6.2.1 主引导程序和引导标识遭到破坏 146
6.2.2 恢复分区表被破坏的硬盘 150
6.3 恢复FAT区被破坏的分区 159
6.4 恢复被误格式化的分区 161
6.4.1 反格式化的原理 161
6.4.2 利用EasyRecovery对误格式化的磁盘进行恢复 162
6.4.3 利用FinalData对误格式化的磁盘进行恢复 166
6.5 恢复引导记录和BPB参数 169
6.5.1 恢复FAT卷的引导扇区 169
6.5.2 恢复NTFS卷中的引导记录和BPB参数 172
6.6.1 文件恢复原理 174
6.6 恢复误删除的文件 174
6.6.2 手工恢复FAT卷中误删除的文件 179
6.6.3 手工恢复NTFS卷中误删除的文件 187
6.6.4 利用工具恢复误删除的文件 194
6.6.5 恢复文件目录项或MFT已经丢失的文件 196
6.7 数据备份 200
6.7.1 备份主引导扇区 201
6.7.2 备份引导扇区 204
6.7.3 备份FAT区 205
6.7.4 备份根目录区 207
6.7.5 备份MFT 208
第3篇 数据安全程序设计 210
第7章 数据安全程序设计基础 210
7.1 在实模式中对硬盘与文件的操作 210
7.1.1 调用INT 13H对硬盘的读写 210
7.1.2 通过DOS功能调用对文件的操作 213
7.1.3 扩展INT 13H的调用 219
7.2.1 与文件、磁盘操作相关的API 223
7.2 在Win32环境中对硬盘与文件的操作 223
7.2.2 在Windows NT等系统下的扇区操作 227
7.2.3 在Windows 9x系统下对逻辑硬盘的操作 229
7.2.4 在Windows 9x系统下对物理硬盘的操作 235
7.3 Windows引导代码分析 239
7.3.1 Windows的MBR程序分析 240
7.3.2 NTFS卷的DBR代码分析 244
第8章 数据备份与恢复程序设计实例 249
8.1 备份主引导区的16位代码 249
8.2 恢复主引导区的16位代码 250
8.3 NTFS文件系统中恢复误删除文件的程序 252
8.3.1 程序设计思路 252
8.3.2 程序资源文件 255
8.3.3 程序完整代码 256
第9章 数据安全的矛与盾 268
9.1 最具破坏力的病毒 268
9.1.1 释放出一个COM程序抢占引导权进行破坏 268
9.1.2 在保护模式下用多线程写硬盘进行破坏 271
9.2 利用“江民逻辑炸弹”原理写的一个硬盘保护程序 273
9.2.1 硬盘保护程序中用来替代MBR的部分 273
9.2.2 hdlock.exe源代码 279
9.3 虚拟还原技术实现原理及其安全性 287
9.3.1 虚拟还原技术的原理 287
9.3.2 个人计算机的中断机制 288
9.3.3 硬盘读写端口的具体含义 289
9.3.4 一个通过对硬盘输入输出端口操作来读写硬盘的实例 290
9.3.5 可以穿透还原卡或者还原软件保护的代码 291
9.3.6 Windows 98系统下实现卸载“还原精灵”软件的程序 292
9.4 编程实现多操作系统引导 296
9.4.1 用于安装SYSGUIDE.DAT的模块二 297
9.4.2 实现多引导的模块一 300
9.5 利用硬盘绝对读写技术保护知识产权 304
9.5.1 通过硬盘技术编写注册代码模块的三种方法 304
9.5.2 利用随机数写入硬盘计算注册码的思路及代码 304
附录 Windows NT下卸载“还原精灵”的源程序 311