|
抱歉,兄弟们
不知道要附件默认要扣10金,特将《识数寻踪》目录和序言粘贴出来。这本书还很年轻,也许有很多不足,不过我承诺会用心将它打造成一本经典。
从个人喜好来说,数据恢复是一项很有趣的工作——成功会带给你喜悦,失败会带给你思考。当你帮助他人解决了数据丢失带来的痛苦之后,荣耀的光环会让你感到肩头使命的沉重与职业意义的严肃,而这些不是可以用金钱来衡量的。
以行业发展而论,作为计算机产业中的小股力量,经历数十年的跌宕起伏,数据恢复在今天能呈现出“门派林立,百花齐放”的局面,的确令人感到鼓舞。可以看到,无论是声名鹊起的行业骄子,还是初出茅庐的技术学徒,他们都在以自己的热情和智慧为这个行业的持续发展尽力。尽管在当前,数据恢复行业还存在一些良莠不齐的现象,但这些都无碍行业的整体发展与进步。
在这个行业摸爬滚打了十几年,我一直致力于数据恢复技术的推广和教育工作,一手创办了“中国硬盘基地”论坛。今天,它已经成为广大数据恢复爱好者交流技术、展示创新的乐园。能亲眼看到一批批高手的成长历程,是多么惬意的事情。
我认识“困惑的浪漫”是在2008年,那时他在论坛发表的“国内最强winhex教程”引起了不小的波澜,随后两年里,他乐此不疲地撰写了一系列“WinHex高级专题”文章,以通俗易懂、深入浅出的方式赢得了相当数量会员的青睐。
当我得知WinHex教程即将出版的消息时,先是惊讶,而后是喜悦——数年磨一剑,必定锐不可当。令我欣慰的是,该书从数据存储介质分析切入,系统地将WinHex功能与数据恢复实际操作结合在一起,并且通过对脚本编程及API函数的深入讲解,极大地拓展了WinHex的用武之地。
其实,任何一个数据恢复技术高手的成长之路,不外乎两条,即“学习”与“解决”。“学习”不仅是通晓、掌握知识,而是要反复思考、反复研究;而“解决”则促使我们在实践中更深入地领会数据恢复的精髓,掌握数据恢复的思维方法,它直接影响到数据恢复的质量和成功率。我敢肯定,本书既可以成为大家“学习”中的良师益友,又能成为大家主动“解决”问题的精神源泉。
更难能可贵的是,本书从不同的角度和视野,力图展示“数据恢复之美”,以激发大家对数据恢复研究的兴趣,而不是将枯燥乏味的专业知识,简单机械地堆砌在人们眼前,平添阅读难度。作者以很低的姿态,以生动有趣的文笔,为迷失在“数据森林”中的读者指明了方向。
学习完本书,相信大家会明白:数据恢复技术的价值绝不仅仅是最后的“工作成果”,而是学习、研究、实践中所付出的心血。只有站在一定高度的人,才可以看到那片美丽的天地!相信“识数寻踪”也必将成为数据恢复行业又一个诗情画意的代名词!
最后,对国内数据恢复先驱者们的无私奉献精神致以崇高的敬意,正是有了他们,整个数据恢复行业才得以不断前行。
中国硬盘基地创始人、站长 八喜(田茂帅)
山东鑫开天数据恢复研究中心总经理
前 言
三百万魂湮荒冢,六千枯载征战延;
醉生梦死朝上客,血染狂沙关外人。
恍惚只闻刀剑笑,依稀可辨赤兔吟;
辰卯但求金乌美,奈何呓语秦汉年。
2004年我还是学生,和同学搭伴去玉门游玩,眼见一路戈壁广袤、沙海连天,长城在朦胧中蜿蜒,心潮澎湃却欲语词穷,直到大漠观日,被壮美之景震慑得似醒非醒,秦汉之风、边关战阵跃然于眼,这才按捺不住,仿效古来墨客,写下开篇蹩脚诗一首,表达激动心情,虽然那时的我尚未体会人生之路的曲折艰辛,却也迸发出报效民族的热血豪情,使我在后来的成长中时刻保持一种乐观向上的活力。今天的我在21世纪的中国社会中犹如沧海一粟,但是我希望用自己仅有的一点营养,去滋润这片崛起中的土地。
仔细想想,我接触数据恢复行业已经将近7年,今天的我,虽尚未立业,但也幸福成家,工作稳定,回忆当年初涉职场之忐忑心情,亦可甘之如饴。至于说自身技术,虽有蜕变,仍不足为高人道也。
我常闻关羽自负败亡于蒙,祢衡狂傲获罪于操。乘此英雄辈出之季,我又何尝敢以英雄自居,大放厥词于天下?原只求游弋于论坛社区之腹地,徘徊在论文专利之隘口,写些琐碎文字,期盼同道中人登门指教,以图双赢之效。创作此书,实乃乾坤机缘妙到颠毫所致,更有编辑松峰,愿为伯乐,提携之恩,实不敢忘。厦门虽弹丸之地,却乃藏龙卧虎之城。我所识志伟、云峰、王炜皆良师益友,特邀三人,共谋此出版之事。此刻斗胆提笔,只求别班门弄斧,贻笑大众尔。回忆职业生涯之往昔,北京求学之情景,犹如深痕在脑,历历于目。七日虽短,所学有限,但实有雏鸭下水、幼虎初食之效,在此对当年众恩师三扣愚首,聊表谢意。
“梦里回廊彩幔轻,佳人凝望,白藕衬花裳。珠帘窸窸檀香婉,朱唇戚戚玉剪愁。孤星难黯痴夜色,暖风细语,似嗔寡情郎。天水幽幽君何往,热盼艾艾聚首时。”最近频繁和业内朋友聚餐,发现许多人都过着夫妻两地分居的生活。正如这首《蝶恋花》所述,老婆“棉被冷,空闺寂”,思之切时,难免埋怨。正所谓“忍耐方显伟大”,在此对我们背后默默奉献的家属们表示敬意。
古人云,“既来之,则安之。”选择了某个行业,就要为其穷毕生精力,以求无怨无悔,随之而来的颠沛流离都不在话下。所以同行的兄弟,你们为了崇高的事业理想,天南海北奔波,为了追求更高层次的技术境界,不惜牺牲正常的个人生活,换来的是一页页包罗万象的文字、一行行满富诗意的代码和一个个智慧化成的经济产品。在我眼里,你们是真正的侠士。因为你们都认定:信念才是软化苦涩的蜜糖。
我要说,这本书是众多数据恢复研究人员的智慧果实,我只是把这些成果用恰当的语言总结出来而已,正所谓“尽绵薄之力,全浩瀚之义”,能与大家共勉,是我的责任,更是我的心愿。
主要内容
本书虽以WinHex功能模块为主线,实为数据恢复学习、工作、研究经验之谈,估计难登大雅,权当诸位读者闲暇之时翻看之杂谈随笔,即便无用,也可催眠。
本书共13章,以WinHex菜单为主线,从左到右、从上到下讲述其功能,偶尔穿插一些代码和论述,都是对功能实现原理之揣测,错漏之处,万望海涵,敬请指正,以利修改提高。
第1章:主要讲述一些平时想说却没有平台去说的话,还介绍了两款数据恢复软件及一些数据恢复技术的研究方法。
第2章:从WinHex主界面入手,讲述了一些我们经常用到的功能。
第3章:讲述“文件”菜单包含的各种功能。
第4章:讲解“编辑”菜单中一些特殊功能的用法。
第5章:介绍“搜索”菜单中相关子功能的使用方法。
第6章:简单阐述“位置”菜单的用途。
第7章:重点讲述WinHex模板的语法,并介绍一些范例。
第8章:介绍“工具”菜单中的数据恢复、文件处理功能。
第9章:介绍WinHex的一些高级功能。
第10章:讲解WinHex的各种设置方法。
第11章:学习WinHex的脚本编程方法。
第12章:讲述WinHex API函数的使用方法。
第13章:讲述关于MDF文件的案例。
致谢
本书得以出版,感谢厦门大学吴顺详老师的大力支持;感谢中国硬盘基地网站创始人、山东鑫开天数据恢复研究中心总经理八喜大力推荐;感谢挚友王炜对本书所做的审校、排版工作;感谢厦门大学杨伟健、周佳林、张洪国、赵鑫同学为本书提供的部分章节内容和代码;感谢本书作者的亲属,没有你们的支持,我们将无所适从。
注意:全书代码均为实验代码,并非商业程序,旨在描述功能、阐明原理,考虑不周全之处在所难免,恳请广大读者批评指正。
目 录
第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章 运筹帷幄决千里——让WinHex更强大的脚本
开发技术 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 WinHex API函数列表 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
|
|