保护卡如何破解?

havelife 2002-04-21 08:58:43
有没有通过软体的办法破解使其失效?
...全文
29 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
adaptor85 2002-04-22
  • 打赏
  • 举报
回复
给一种BIOS向量保护的解决办法:
比如被保护的INT13的地址为0040:1000。原INT13的地址为F000:EEC0。那么,
不要改INT13的入口地址,而使用:

;>debug
-a 0040:1000
pushf
call far ptr f000:eec0
iret


-q

大部分能骗过去。
roy_hu 2002-04-22
  • 打赏
  • 举报
回复
attention
wowocock 2002-04-21
  • 打赏
  • 举报
回复
保护卡是一种硬件芯片,插在主板上与硬盘的MBR协同工作。在说明原理前,我想先提 一种技术“BIOS映射地址搬移”。这种技术在前几年,大行其道,但均秘而不喧。诸位 以前玩解密的时候可能都用过龚成宾的SIMU97吧。它能在只读的BIOS地址区实现写入, 因而能拦截到CALL F000:EC59等调用。这种调用在以软盘为载体的加密方案中,有重要 意义[后来为了躲过它,王江民没办法使用了UPD765。不过,据我分析UPD765 照样可以 拦截]。刚才提的那种拦截方式的原理是这样的[跟踪所得]:通过调用Int15h子功能[其 他也可以,只要能切入保护模式],切入保护模式,改掉BIOS所在段的段描述符。这种方 法可以实现BIOS段的重定位,当然就可以让它可写入了。用Int13H读软盘时Int13H会调 用F000:EC59,这是拦截Int13h 的一种高级手段。其实围绕硬盘保护的加密解密关键就看 谁拦截的位置更底层。但对与硬盘保护卡来说,只要恢复Int13的BIOS级中断向量就够了
。具体如何破解呢?找到Int13h的BIOS解中断向量值,填入中断向量表。[有些部份如果
觉得简单请跳过看 ^_^]
下面是找Int13入口的方法,我常用的几种:
1。手工运行Debug,如下:
  Debug
- a100
- xor ax,ax
- int 13
- int3
然后输入t回车,不断的重复,直到显示的地址形如 F000:xxxx。 记下这一地址,按q 回
车退出。
在(0:13H*4)=0:4cH 处填入这个地址。
例如得到的地址是F000:1234
运行debug
-e 0:4c 34 12 00 F0
-q
注意:
填的时候要仔细,填错的话会死机。有些经过针对性处理的机器,要进一步鉴别。如在 int13内部调用Int1ch. 如果在trace过程中发现如下代码 CMP DL,80,修改成 CMP DL,FF 别的都不要修改.试试硬盘可写吗?如果可以的话万事大吉。另外,不能在Windows的虚拟DOS窗口中使用这种方法。如果在Windows的虚拟DOS窗口运行的话 ,请使用下一种方法。
2。Debug
- s F000:0 ffff 80 fa 80
你可能会发现有好几处。试验一下: 如果U F000:xxxx地址后发现代码类似
    -u F000:xxxx
PUSHF
CMP DL,80
JZ ....
 .
 .
     .
的话,填入向量表试试。通常破解就完成了。
我曾经发现经过以上中断还原后,仍不能写盘的情况。经跟踪发现Int8H,Int 1CH,Int1 5H等向量对
Int13H进行了向量保护。解决办法:把Int8H,Int1cH,Int15H 也改会原始中断点(也是 BIOS中断)。尝试写盘:
copy c:\command.com test.com <Enter>
1 file Copied.
如果想获得保护卡密码的话,可以参考以下步骤:
1。找到Int13h原始点设回中断向量表。
2。读出MBR
可以分析这份MBR,找到存放加密密码的扇区得出解密算法。。。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧