SCI论文(www.lunwensci.com)
摘 要:WINHEX 是一款非常实用的数据恢复软件,受到了专业数据恢复人士的青睐。本文介绍了 WINHEX 底层数据 被“先异或后加”破坏的三种恢复方法,对于恢复被人为或病毒破坏的底层数据有所帮助。
Research on Three Recovery Methods of WINHEX Underlying Data Damaged by
"Exclusive or Additive"
LIU Qintao
(Xiamen Industrial and Commercial Tourism School, Xiamen Fujian 361021)
【Abstract】:WINHEX is a very practical data recovery software, which is favored by professional data recovery professionals. This paper introduces three recovery methods of WINHEX underlying data damaged by "exclusive or additive", it is helpful to recover the underlying data damaged by human or viruses.
【Key words】:WINHEX;data recovery;exclusive or additive;55AA law;Excel method; script method
0 引言
WINHEX 是一款非常实用的数据恢复软件,它面向 文件的底层数据以十六进制编辑器为核心,专门用来检查 和恢复因误删除、误格式化、误 Ghost 所带来的数据丢 失等问题,受到了专业数据恢复人士的青睐 [1]。为了培养 电子信息行业急需的计算机检测维修与数据恢复方面的专 业人才,自 2015 年来,教育部每年都举办全国职业院校 计算机检测维修与数据恢复赛项, 用的数据恢复软件主要 就是 WINHEX[2]。可见,对于职业院校学生来说,学好 WINHEX 数据恢复技术既可在比赛场上争金夺银,又可 具备较强的就业竞争力,具有很重要的意义。
1 “先异或后加”简介
WINHEX 底层数据被人为或病毒破坏较为常见 的一种类型是“先异或后加”,就是对底层某个或某些 扇区中的每个字节数据进行了两步破坏,第一步是对 原有的每个字节数据与一个 0-FF 之间的十六进制随机 数(即 0-255 之间的十进制随机数)进行异或处理,之后将处理的结果再与一个 0-FF 之间的十六进制随机数 (即 0-255 之间的十进制随机数)进行加法运算。本文 中我们将原本没有被破坏的字节数据称为明文,将经过 “先异或后加”两步破坏后的字节数据称为密文。
以 NTFS 文件系统的 DBR 扇区为例。没有被破坏 的底层数据如表 1 所示,其中每个字节如 EB、58、90、 55、AA 等都是明文。明文被十六进制数 CD 异或后再 加十六进制数 85 后的 DBR 数据如表 2 所示,表 2 中每 个字节数据如 AB、24、E2、1D、EC 是密文。
从表 1、表 2 可以看出,因异或相加的数据都是 0-255 之间的十进制随机数,原始的底层数据经过这两 次的随机破坏,使得数据也经过了两次变化,密文和明 文之间出现相差很大的问题,如 EB 变成了 AB、58 变成 了 24、90 变成了 E2、55 变成了 1D、AA 变成了 EC。
要想从密文逆向推导出加密的算法值,恢复出来原 本的明文难度不小。掌握这类问题地解决技术和方法, 是数据恢复初学者孜孜以求的。笔者经深入研究,归纳总结出三种恢复方法。
2 WINHEX 底层数据被“先异或后加”破坏的三种恢复 方法
2.1 55AA 法
这种方法就是巧妙利用明文 55、AA 的恢复方法。55 AA 是 WINHEX 数据恢复软件某些特殊扇区的结束标志。 由表 1 和表 2 可以看出,原始数据 55、AA 两个字节(明 文)经过两次破坏后分别变成了 1D 和 EC(密文)。
假设先异或十六进制数 X,后再加十六进制数 Y, 那么我们可以得出这样的两个等式:
55 ⊕ X+Y=ID (1)
AA ⊕ X+Y=EC (2)
我们把式 (1)+ 式 (2) 得出:55 ⊕ X+Y+AA ⊕ X+Y= ID+EC,即:
55 ⊕ X+AA ⊕ X+2×Y=109 (3)
因 为 55+AA=FF, 所 以 55 ⊕ X+AA ⊕ X=FF, 即 55 与 AA 异或任何数的和恒等于 FF,因此等式 (3) 可转 换为 FF+2×Y=109.2×Y=109-FF, 得出 Y=5. 再将 Y=5 带入式 (1) 或式 (2) 中,即可得出 X=4D。知道了 X 和 Y 的值我们就可以利用 WINHEX 软件的〖修改数据〗功 能通过逆运算来还原数据,从而恢复出原有的明文。
密文是经过了先异或 CD 再加 85 得到的, 怎么用上 述方法计算出的答案是先异或 4D 再加 5 呢?其实并不 矛盾。因为上述的计算并没有考虑到式 (1) 和式 (2) 两个等 式中的进位问题,如果考虑进位问题,式 (1)+ 式 (2) 得出 的式 (3) 就应该是 55 ⊕ X+AA ⊕ X+2×Y=209.2×Y= 209-FF, 得出 Y=85. 再将 Y=85 带入式 (1) 或式 (2) 中, 即可得出 X=CD。
因为 WINHEX 底层数据都是以单个字节为单位进 行计算的,在计算过程中如果一个字节的值超过 FF, 数据将自动进位显示进位后的数据,进位也将自动溢出 消失。因此在恢复数据的计算过程中,可不必考虑数据 的进位或借位问题。也正因为如此,恢复数据的答案并 不是唯一的,一切以能否恢复出数据为准。
55AA 恢复方法的使用场合是被破坏的原始数据 扇区有 55 和 AA,即明文中含有 55AA,才可利用 55 ⊕ X+AA ⊕ X ≡ FF 的特点,巧妙地将二进制的逻辑 运算转换成算术运算,使问题由复杂变为简单。
2.2 Excel 法
该法就是设计利用 Excel 软件的函数公式功能的 恢复方法。Excel 软件有着强大的数据计算功能,它不 仅可以进行算术运算而且可以进行逻辑运算,正好符合 WINHEX 底层数据被“先异或后加”破坏的恢复。只 要我们精心设计,就可以利用软件中的函数计算、公式 复制等功能把复杂的数据恢复计算的工作交给计算机。 只需我们把明文及对应的密文输入在相应的单元格中, 匹配的结果瞬间出现。最后我们一一验证,可将破坏的 数据恢复出来。如表 3 所示的 Excel 表格为证来说明。
从表 3 来看, 此表格设计的思路是:先假设“先异 或后加”的加值为十六进制数 Y(C 列),那么从密文中 减去 Y 后再异或明文就可得到异或的 X 值(E、I、M 列)。 表 3 中设定的明文和密文的个数为 3.个数越多, 结果 越准确。如果通过 3 个明文和密文得到的 3 个 X 值都相 等的话,那么假设的 Y 和通过计算得到的 X 值就可能是 破坏数据的算法值,我们通过设定 IFS 或 IF 函数就可自 动在结论列得出匹配结果。知道了 X 和 Y 的值我们就可 以利用 WINHEX 软件的〖修改数据〗功能通过逆运算 来还原数据,从而恢复出原有的明文。可以看出, 表 3 中假设“先异或后加”的加值是从十六进制数 1 开始到 FF(十进制数 255)的,逐一进行计算 X 值再逐一进 行比照判断,最终筛选出可能的匹配结果,可以看出该 法得出的结果和利用 55 AA 恢复方法得出的结果一模一 样。这种方法比利用 55AA 的恢复方法复杂一些,但应 用的场合比较宽泛自由,可以把 55、AA 作为明文进行计算,也可以利用其他明文进行计算,结果是一样的。
2.3 脚本法
该法就是要编写利用 WINHEX 脚本的方法。WINHEX 脚本是运行于 WINHEX 的一种脚本语言,用于数据的 批量搜索、定位、修改。对用户来说,它就是将原本 复杂繁琐的手工数据分析修改恢复过程智能化,它是 WINHEX 内部函数功能的高度浓缩, 我们只需一次告 诉 WINHEX 要干什么, 剩下的由 WINHEX 自动执行。 将表 3 Excel 软件的各个计算函数转换成程序语言,就 变成了 WINHEX 的脚本程序。设定明文为 t1、t2、t3、 t4. 密文 m1、m2、m3、m4 后, 运行编写脚本即可, 可能的答案就会一一列出供我们验证,最终恢复出原有 数据。笔者编写的恢复 WINHEX 底层数据被“先异或 后加”破坏的脚本核心内容如下:
assign add 1 // 定义变量 add 为数值 1(假设的加 值是 1)
assign a 1 // 定义变量 a 为数值 1
{
assign xor ((m1-add)^t1) (根据密文 1 求出异或值)
IfEqual m2 (((t2^xor)+add)&0xff) (判断这个异 或值是否满足密文 2.满足往下判断)
IfEqual m3 (((t3^xor)+add)&0xff) (判断这个异 或值是否满足密文 3.满足往下判断)
IfEqual m4 (((t4^xor)+add)&0xff) (判断这个异 或值是否满足密文 4.满足就列出)
inttostr str a
write str
write " 先异或 "
inttostr str xor
write str
write " 后加 "
inttostr str add
write str
write 0x0D0A
inc a
endif
endif
endif
inc add
}[256] // 循环 256 遍
在 WINHEX 恢复软件中运行脚本,根据提示输入 4 个密文和 4 个明文,可能的结果就会一一列出,最后 需要我们一一验证,即可将破坏的数据恢复出来。利用 脚本恢复数据的方法是较为高级,脚本命令适用的环境 也比较多,只要在 WINHEX 软件中一次输入,可以多 次使用,对利用 WINHEX 恢复数据来说方便又实用。
3 结语
利用 WINHEX 软件恢复数据是一项较为复杂的工 作,需要我们认真研究专研。数据恢复的实践证明,对 于 WINHEX 底层数据被人为或病毒“先异或后加”这 一类别的破坏,从上述三种方法入手,可以得出合理的 恢复答案。只要我们共同努力,刻苦专研,就能够在数 据恢复领域取得更大的成功。
参考文献
[1] 刘伟.数据恢复技术深度揭秘[M].北京:电子工业出版社,2010.
[2] 乔英霞,孙昕炜 .计算机数据恢复技术与应用[M].北京:机械 工业出版社,2018.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/62551.html