本来以前就要写这一篇的,有事耽误了,现在写出来竽充数吧! 还原卡也称硬盘保护卡,学校等单位采用较多,可以保护硬盘数据不被恶意修改,删除。保护卡是一种硬件芯片,插在主板上与硬盘的MBR协同工作。在说明原理前,我想先提一种技术“BIOS映射地址搬移”。这种技术在前几年,大行其道,但均秘而不喧。
下面是找Int13入口的方法,我常用的几种:
1。手工运行Debug,最好在纯DOS下:
Debug
- a100
- xor ax,ax 注意: 前面要加上功能号以选择Int13H内部的流程,避免进入其他不经过原始入口的流程
- int 13
- int3
然后输入t回车,不断的重复,直到显示的地址形如 F000:xxxx。记下这一地址,按q 回车退出。 这里假设了第一个F000:xxxx就是要找的入口,实际上可以在第2,3,4,。。。。出现,要自己判断一下,通常认为就是第一个。
在(0:13H*4)=0:4cH 处填入这个地址。
例如得到的地址是F000:1234
运行debug
-e 0:4c 34 12 00 F0 =======>把得到的原始入口填入Int13H的中断向量表
- q
注意:
如果在踪迹过程中发现如下代码 CMP DL ,80[意思是判断是否针对硬盘操作],可以尝试修改成不存在的硬盘号,比如改成 CMP DL , FF .其他的都不要修改.试试 硬盘可写吗?如果可以的话就万事大吉了.另外,不能在窗口的虚拟 DOS窗口的虚拟倏????迮趸除甭??墓哗觞阀??菱芋 P DL ,80[意思是判断是否针对硬盘操作],可以尝试修改成不存在的硬盘号,比如改成 CMP DL , FF .其他的都不要修改.试试 硬盘可写吗?如果可以的话就万事大吉了.另外,不能在窗口的虚拟 DOS窗口的虚拟
2。Debug
- s F000:0 ffff 80 fa 80 强行搜索BIOS区,通过比较入口代码找到原始入口点
你可能会发现有好几处。根据我的多次破解经验,通常这个地址在F000:8000以后。试验一下: 如果U F000:xxxx地址后发现代码类似
-u F000:xxxx
PUSHF
CMP DL ,80
JZ ......
.
.
.
[有些不是这样,要注意鉴别。] 的话,填入向量表试试。通常破解就完成了。
我曾经发现经过以上中断还原后,仍不能写盘,或者死机的情况。经跟踪发现Int8H,Int 1CH,Int15H等向量对Int13H进行了向量保护。解决办法:把Int8H,Int1cH,Int15H 也改会原始中断点(也是BIOS中断)。尝试写盘成功
如果想获得保护卡密码的话,可以参考以下步骤:
1。找到Int13h原始点设回中断向量表。
2。读出MBR
3,分析读出的MBR,找到密码算区和加密算法
4,推算出密码