硬盘保护卡克星和小哨兵8.22(防破解)
答案:1 悬赏:40 手机版
解决时间 2021-11-28 17:37
- 提问者网友:了了无期
- 2021-11-28 10:11
硬盘保护卡克星和小哨兵8.22(防破解)
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-11-28 10:51
DEBUG 才是王道
用debug破解还原卡
还原卡也称硬盘保护卡,学校等单位采用较多,可以保护硬盘数据不被恶意修改,删除。保护卡是一种硬件芯片,插在主板上与硬盘的MBR协同工作。在说明原理前,我想先提一种技术“BIOS映射地址搬移”。这种技术在前几年,大行其道,但均秘而不喧。诸位以前玩解密的时候可能都用过龚成宾的SIMU97吧。它能在只读的BIOS地址区实现写入,因而能拦截到CALL F000:EC59等调用。这种调用在以软盘为载体的加密方案中,有重要意义,后来为了躲过它,王江民没办法使用了UPD765。不过,根据我的分析UPD765读写软盘时照样可以拦截。刚才提的那种拦截方式的原理是这样的[跟踪所得],通过调用Int15h子功能,其他方法也可以,只要能切入保护模式,切入保护模式后,改掉BIOS所在段的段描述符。这种方法可以实现BIOS段的重定位,当然就可以让它可写入了。用Int13H读软盘时Int13H会调用F000:EC59,这是拦截Int13h 的一种高级手段。其实围绕硬盘保护的加密解密关键就看谁拦截的位置更底层。但对与硬盘保护卡来说,只要恢复Int13的BIOS级中断向量就够了。具体如何破解呢?找到Int13h的原始BIOS中断向量值,填入中断向量表。这样修改以后其他对Int13H 的钩子通常就被绕过了
面是找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
注意:
填的时候要仔细,填错的话会死机。有些经过针对性处理的机器,要进一步鉴别。如在Int13内部调 用Int1ch. 如果在trace过程中发现如下代码 CMP DL,80[意思是判断是否针对硬盘*作] ,可以尝试修改成不存在的硬盘号,比如改成CMP DL,FF。其他的都不要修改.试试
用debug破解还原卡
还原卡也称硬盘保护卡,学校等单位采用较多,可以保护硬盘数据不被恶意修改,删除。保护卡是一种硬件芯片,插在主板上与硬盘的MBR协同工作。在说明原理前,我想先提一种技术“BIOS映射地址搬移”。这种技术在前几年,大行其道,但均秘而不喧。诸位以前玩解密的时候可能都用过龚成宾的SIMU97吧。它能在只读的BIOS地址区实现写入,因而能拦截到CALL F000:EC59等调用。这种调用在以软盘为载体的加密方案中,有重要意义,后来为了躲过它,王江民没办法使用了UPD765。不过,根据我的分析UPD765读写软盘时照样可以拦截。刚才提的那种拦截方式的原理是这样的[跟踪所得],通过调用Int15h子功能,其他方法也可以,只要能切入保护模式,切入保护模式后,改掉BIOS所在段的段描述符。这种方法可以实现BIOS段的重定位,当然就可以让它可写入了。用Int13H读软盘时Int13H会调用F000:EC59,这是拦截Int13h 的一种高级手段。其实围绕硬盘保护的加密解密关键就看谁拦截的位置更底层。但对与硬盘保护卡来说,只要恢复Int13的BIOS级中断向量就够了。具体如何破解呢?找到Int13h的原始BIOS中断向量值,填入中断向量表。这样修改以后其他对Int13H 的钩子通常就被绕过了
面是找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
注意:
填的时候要仔细,填错的话会死机。有些经过针对性处理的机器,要进一步鉴别。如在Int13内部调 用Int1ch. 如果在trace过程中发现如下代码 CMP DL,80[意思是判断是否针对硬盘*作] ,可以尝试修改成不存在的硬盘号,比如改成CMP DL,FF。其他的都不要修改.试试
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯