(资料图片仅供参考)
作为80后技术员, 我一直很喜欢李玟, 是我们那个时代的偶像, 一直也很喜欢听他的歌, 看到她的噩耗, 还是很那么的无法理解, 一个那么好的人怎么会得抑郁症呢, 心里多少还是无法接受. 不过联想到自己的工作,多少次也都是在被技术难题折磨的快要到抑郁症犯的边缘上.作为数据恢复行业的从业者, 行业的技术发展实在是太快了, 几乎每年都会有新的技术出现, 无论是文件系统还是数据库等等, 每年都在推陈出新, 老旧的技术会被直接抛弃, 绝非是在原有技术上进行改良, 作为数据恢复产品作者, 你必须得更上这种升级速度, 而且前面对所有老旧技术的付出基本上算是白搞, 因为随着时间的发展, 这些老旧的技术会类似winxp系统一样淹没在历史的潮流中.在现如今的三大操作系统windows, linux, mac os现在分别对应的最新的文件系统有refs, zfs, btrfs, apfs, 这些我都在产品中做了支持, 底层技术在我看来基本大同小异. 做这几个文件系统的恢复以及解析结束让我吃尽苦头, 他们与上一代文件系统存储技术是如此的不同, 上一代的文件系统结构例如fat, ntfs, ext234, ufs等等, 他们是如此的百花齐放, 个性分明, 你不太容易找到他们的共同点, 他们充斥着各种奇怪的结构和设计理念.但是新一代的文件系统我能够明显的感觉到他们越来越同质化发展, 我虽然不敢保证他们彼此之间有互相抄袭, 但是我觉得至少在架构思路上互相彼此都在借鉴.这次让我吃尽苦头的文件系统是refs, 作为新一代的桌面系统的文件系统, 我本以为他会跟apfs更加类似, 因此在查阅相关资料后, 我很就对refs的结构进行解析, 并且对相关数据进行定位, 刚开始的途中一直没有发现有什么问题. 并且说实话, 因为做了太多的数据库结构分析, 我很明显感觉到了, 他的MSB+ page结构是如此的类似于sql 的页面结构. 所以刚开始的时候, 我轻车熟路的一路分析下去. MSB+ page结构大致如图:根据下图的结构, 可以从data area结构中提取到数据或者是REF参数跳转到子页面中提取数据.根据下图的结构, 解析当我分析到checkpointer为止, 我都没有遇到问题. 直到到了object id table结构, 我遇到了前所未有的障碍. 居然找不到正确结构的MSB+了.未完待续...