第1章 学海茫茫孤帆冷——数据恢复概述 1
1.1 给所有数据恢复工程师的话 1
1.1.1 为什么选择数据恢复这个行业 1
1.1.2 学习数据恢复需要什么基础 2
1.1.3 数据恢复行业的现状 3
1.2 学习规划 3
1.2.1 勤奋 3
1.2.2 机遇 4
1.2.3 自爱 4
1.3 数据恢复技术未来的发展方向 5
1.3.1 FLASH数据提取技术 5
1.3.2 数据恢复与残余数据分析并存 5
1.3.3 数据恢复“云” 6
1.3.4 数据恢复与人工智能 6
1.4 我们的“闺蜜”——数据恢复工具 6
1.4.1 易学易用的R-Studio 6
1.4.2 “闪电侠”Handy Recovery 9
1.5 数据恢复研究过程 10
1.5.1 七个问题 10
1.5.2 一个案例 13
1.5.3 以Ext2为饵 17
1.5.4 一个开源数据恢复软件项目 21
第2章 柳叶弯刀锋芒现——WinHex初探 27
2.1 面由心生——WinHex启动中心 27
2.1.1 你是否对它一见钟情 27
2.1.2 功能猜猜看 28
2.2 WinHex主界面 29
2.2.1 叫谁谁回答的窗口标题栏 29
2.2.2 一次疯狂的点菜——WinHex菜单栏和工具栏 30
2.2.3 第一次编辑小心伤了自己——编辑窗口 32
2.2.4 口若悬河的信息面板 33
2.2.5 谁动了我的“地址”——地址跳转栏 35
2.2.6 芝麻开门——分区快捷入口 38
2.2.7 家有“贤妻”——快捷文件管理 45
第3章 开天辟地清浊辨——WinHex文件管理 51
3.1 新建文件 51
3.1.1 我们需要多胖的“MM” 52
3.1.2 眼前全是“0” 53
3.2 打开文件 54
3.2.1 选择一个打开对象 54
3.2.2 文件原来是这样的 55
3.2.3 碎片分类初探 58
3.2.4 从头到尾都别放过 59
3.3 保存和另存为 59
3.4 镜像功能 60
3.4.1 孪生数据 60
3.4.2 一些镜像格式 61
3.4.3 克隆也可以有选择 61
3.4.4 要体积还是要速度 62
3.4.5 用镜像来恢复自己 62
3.4.6 备份管理器 63
3.5 文件属性功能 64
3.5.1 文件也有属性 64
3.5.2 文件属性调查 65
3.5.3 文件属性修改 65
3.6 批量处理 66
3.7 不得不提的CreateFile 69
3.8 创建文件 72
3.9 读取大作战 75
第4章 移星换斗惊天颜——详解WinHex的编辑功能 78
4.1 撤销 78
4.2 剪切 79
4.3 复制和粘贴 79
4.3.1 数据复制方法也可以多种多样 79
4.3.2 东拼西凑缝缝补补 84
4.4 移除 85
4.5 粘贴0字节 85
4.6 转换 85
4.7 修改数据 90
4.7.1 给数据加上或减去某个数 90
4.7.2 站队游戏 94
4.7.3 简单的数学运算 95
4.8 数据填充 97
4.8.1 只想看见0 97
4.8.2 不想让人知道数据被擦除过 98
第5章 金睛火眼识道缘——WinHex的搜索游戏 99
5.1 搜索主菜单 99
5.2 查找文本 99
5.2.1 编码 100
5.2.2 查找文本子项 100
5.2.3 十六进制字节查找 101
5.3 替换文本 102
5.4 替换十六进制 102
5.5 同步搜索 104
5.6 组合搜索 106
5.7 整型和浮点型查找 108
5.7.1 整数和浮点数在计算机内部的表示 108
5.7.2 整数和浮点数查找子项 108
5.8 单词短语搜索 109
5.9 搜索选项 110
5.10 字符串查找代码示例 112
5.10.1 简单匹配算法 112
5.10.2 KMP算法 114
第6章 稳坐泰山傲天险——奇妙的地址管理功能 115
6.1 跳转 115
6.2 前进与后退 118
6.3 管理标记 119
6.3.1 自己设路标 119
6.3.2 位置管理 120
第7章 妙目流盼易妆容——WinHex不为人知的一面 124
7.1 改变编辑区 124
7.2 录制幻灯 125
7.3 模板管理器 126
7.3.1 惊喜 126
7.3.2 设计自己的模板 135
7.3.3 几个模板设计案例 135
7.4 同步比较 151
7.4.1 同步查看很重要 151
7.4.2 让差异显形 152
第8章 神功大展现本元——WinHex与数据恢复 154
8.1 打开磁盘 154
8.2 磁盘工具 157
8.2.1 磁盘克隆 157
8.2.2 展开目录 158
8.2.3 按类型恢复文件 159
8.2.4 初始化空余空间 162
8.2.5 初始化残余空间 163
8.2.6 初始化MFT表 164
8.2.7 寻找丢失的分区 164
8.2.8 分区恢复高级功能 165
8.2.9 设置磁盘参数 165
8.3 文件工具 167
8.3.1 文件合并 167
8.3.2 文件分割 168
8.3.3 整合数据 168
8.3.4 拆分数据 169
8.3.5 比较数据 169
8.3.6 安全擦除 172
8.4 内存编辑器 174
8.5 数据分析 175
8.6 计算哈希值 178
第9章 登峰造极乾坤改——我们渴望的高级功能 180
9.1 玩转文件系统扫描 180
9.1.1 数据恢复就是点鼠标的事 180
9.1.2 花团锦簇的附加功能 181
9.2 一份非常详尽的报告 182
9.3 视镜像文件为磁盘 183
9.4 RAID重组 184
9.5 荒野寻宝——收集空余空间 186
9.6 探索被遗忘的角落——收集残余空间 188
9.7 取出夹缝中的明珠——收集分区间隙 194
9.8 找出人类文明——收集文本信息 195
9.9 文件也需要编号 198
第10章 曲径通幽窥法玄——通过“设置”驯服WinHex 199
10.1 常规设置 199
10.2 目录浏览器 204
10.3 数据解释器 215
10.3.1 解析文件的考勤记录 216
10.3.2 勤俭持家的DOSDate 217
10.3.3 生面孔OLEDate 218
10.3.4 江湖前辈CDateTime 219
10.3.5 简明扼要的IP地址 220
10.3.6 数据库世界的ANSI SQL DATETIME 220
10.3.7 满载荣宠的HFS+DATETIME 220
10.3.8 再谈反汇编 221
10.3.9 唯一标识GUID 224
10.3.10 无处不在的安全标识符SID 225
第11章 运筹帷幄决千里——让Win Hex更强大的脚本开发技术 226
11.1 脚本特性一览 226
11.2 WinHex脚本语法讲解及应用演示 227
11.2.1 用Create命令创建文件 227
11.2.2 用Open命令打开对象 231
11.2.3 用CreateBackupEx命令创建备份 236
11.2.4 用Goto命令进行地址跳转 239
11.2.5 用Move命令移动光标 240
11.2.6 用Write命令写入数据 241
11.2.7 用Insert命令插入数据 243
11.2.8 用Read命令读取数据 244
11.2.9 用ReadLn命令读取一行数据 247
11.2.10 用Close命令关闭访问对象 248
11.2.11 用CloseAll命令关闭所有访问对象 248
11.2.12 用Save命令保存 248
11.2.13 用SaveAs命令另存为 249
11.2.14 用SaveAll命令保存全部数据 249
11.2.15 用Terminate命令中断脚本 250
11.2.16 用Exit命令退出WinHex 250
11.2.17 用ExitIfNoFilesOpen命令干一些心急的事情 251
11.2.18 用Block命令选块 252
11.2.19 用Copy命令复制 253
11.2.20 用Cut命令剪切 254
11.2.21 用Remove命令移除 254
11.2.22 用CopyIntoNewFile命令将选块复制进新文件 254
11.2.23 用Paste命令粘贴 255
11.2.24 用WriteClipboard命令写入 255
11.2.25 用Convert命令进行编码转换 255
11.2.26 用AESEncrypt命令加密 256
11.2.27 用Find命令搜索 257
11.2.28 用ReplaceAll命令替换 258
11.2.29 用IfEqual命令比较 258
11.2.30 用Loop命令循环 259
11.2.31 用Label命令标记脚本行 260
11.2.32 用ForAllObjDo命令做并行 261
11.2.33 用CopyFile命令复制文件 262
11.2.34 用InitFreeSpace命令初始化自由空间 262
11.2.35 用Assign命令声明变量 262
11.2.36 用GetUserInput命令输入数据 263
11.2.37 用Inc命令递增 264
11.2.38 用Dec命令递减 264
11.2.39 用IntToStr命令转换 265
11.2.40 用GetClusterAllocEx命令获取簇分配状况 266
11.2.41 用GetClusterSize命令获取簇大小 266
11.2.42 用InterpretImageAsDisk命令变镜像文件为磁盘 267
11.2.43 用CalcHashEx命令计算哈希值 267
11.2.44 用Turbo命令节约资源 267
11.2.45 用Debug命令调试 267
11.2.46 用UseLogFile命令保存日志文件 268
11.2.47 三个常量CurrentPos、GetSize、Unlimited 268
第12章 深山居士佛光潜——遮遮掩掩的WinHex API函数 269
12.1 佛光朦胧——初窥WinHex API 269
12.2 WinHexAPI函数列表 276
12.2.1 WHX_Init函数 277
12.2.2 WHX_Done函数 279
12.2.3 WHX_Open函数 280
12.2.4 WHX_Create函数 280
12.2.5 WHX_Close函数 281
12.2.6 WHX_CloseAll函数 281
12.2.7 WHX_NextObj函数 281
12.2.8 WHX_Save函数 282
12.2.9 WHX_SaveAs函数 282
12.2.10 WHX_OpenEx函数 282
12.2.11 WHX_Read函数 283
12.2.12 WHX_Write函数 284
12.2.13 WHX_GetSize函数 284
12.2.14 WHX_Goto函数 285
12.2.15 WHX_Move函数 287
12.2.16 WHX_CurrentPos函数 288
12.2.17 WHX_SetBlock函数 289
12.2.18 WHX_Copy函数 289
12.2.19 WHX_CopyIntoNewFile函数 290
12.2.20 WHX_Cut函数 291
12.2.21 WHX_Remove函数 291
12.2.22 WHX_Paste函数 291
12.2.23 WHX_WriteClipboard函数 291
12.2.24 WHX_Find函数 292
12.2.25 WHX_Replace函数 294
12.2.26 WHX_WasFound函数 295
12.2.27 WHX_WasFoundEx函数 295
12.2.28 WHX_Convert函数 296
12.2.29 WHX_Encrypt函数 297
12.2.30 WHX_Decrypt函数 298
12.2.31 WHX_GetCurObjName函数 298
12.2.32 WHX_GetStatus函数 298
第13章 南柯梦醒暗香来——某个关于MDF文件的案例 300
13.1 郁闷 300
13.2 页 301
13.2.1 初探页头 301
13.2.2 深入挖掘 306
13.2.3 实验 309
13.2.4 重点关注 310
13.3 故事后记 314