首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图 ┆ 虚拟主机 ┆ 中文域名
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 网络安全 → 安全防范 → 文章内容

软件狗[Dongles]的加密与解密技术(7)

作者:郁郁小蝎  来源:中国站长学院  发布时间:2007-2-9 10:49:32

二、硬件加密

  软件狗的电路不要做的太直接,否则不利于加密。这里我们就来讲讲如何增进软件狗的复杂性,加强硬件电路的机密功能。

  在讲第二代软件狗时,我们说它其实就是几个简单的与或逻辑门,目前已经被淘汰。现在我们将要把它跟EEPROM结合起来,经过变化,组成比较复杂的第三代软件狗,从而增加解密难度。

  CAL芯片由于本身就有加密功能,所以也常被用来与EEPROM结合做成复杂的软件狗,更由于其内部逻辑配置的灵活性,使得解密的难度上涨了很多倍。

  解密者要仿制加密盒,首先必须搞到同型号的EEPROM,所以,我们尽量采用市场上一般购买不到的EEPROM型号,这样也能起到保密的作用。另外,如果采用特殊的93CX6系列,就可以利用不同厂商出品的特殊93CX6,其特性不同这一点来加强硬件的 加密功能。

  下面我们给出两个具体例子来说明(以93C46型为例)

  例1  在电路中加入一个非们,以改变93C46某一管脚的极性,电路中要尽量采用低功耗的芯片,所以这里用了CMOS型的74HC04非门来实现。

  这是在前面例子的基础上把CS信号反了相,读者还可以适当加入一些无用的电阻,电容等器件,以迷惑解密者。同时,我们还需要把相应的程序修改一下,把原来对CS信号的控制也反相才行。

          ......    ......
          ......    ......
;---------------------------------------------[+]
;设置EEPROM的片选CS为高电平,即选中EEPROM(-AUTO FEED线反相
;后接CS)
;硬件电路变化时,本部分程序应作相应改动
;---------------------------------------------[+]
SetCS    macro
       push ax
       CtrlPort          ;选择控制口
       in   al,dx
;       and  al,not,02h   ;令-AUTO FEED线输出
                         ;为高电平
       or   al,02h       ;令-AUTO FEED线输出
                         ;为低电平
       KbdTest_Add_AL    ;检查键盘中断,若被开
                         ;放,则改变al值
       out  dx,al
       _CtrlPort         ;选择数据口
       pop  ax
       endm
;
;--------------------------------------------[+]
;设置EEPROM的片选CS为低电平,即不选中EEPROM(-AUTO FEED线反相
;后接CS)
;硬件电路改变时,本部分程序应作相应改动
;--------------------------------------------[+]
ClearCS    macro
         push  ax
         CtrlPort        ;选择控制器
         in    al,dx
         or    al,02h    ;令-AUTO FEED线输出
                         ;为低电平
         and   al,not 02h;为高电平
         KbdTest_Add_0w  ;检查键盘中断,若被开放
                         ;则改变_const_word_0_值
         out   dx,al
         _CtrlPort       ;选择数据口
         pop   ax
         endm
;
         ......    ......
         ......    ......


  例2  在电路中加入一个或非门,使得必须用两根并行口的信号线来得到一根93CX的控制线,这里采用了COMS型的74HC02或非门。

  这是在前面例子的基础上把CS信号用两根口线(D2和D3)来控制,还可以适当假如一些无用的电阻、电容等器件,以迷惑解密者。同时,我们还需要把相应的程序修改成只有当D2和D3都为低电平时CS才为高电平。

        ......    ......
        ......    ......
;--------------------------------------------[+]
;设置EEPROM的片选CS为高电平,即选中EEPROM(D2D3线或非后接CS)
;硬件电路改变时,本部分程序应作相应改动
;--------------------------------------------[+]
SetCS    macro
       push    ax
       in      al,dx      ;取数据口数据
       and     al,not,0ch ;令D2D3线都输出低电平
       KbdTest_Add_AL     ;检查键盘中断,若被开
                          ;放,则改变al值
       out     dx,al
       pop     ax
       endm
;--------------------------------------------[+]
ClearCS    macro
         push    ax
         in      al,dx    ;取数据口数据
         or      al,08h   ;令D2=0,D3=1
         KbdTest_Add_0W   ;检查键盘中断,若被开放
                          ;则改变_const_word_0_值
         out     dx,al
         pop     ax
         endm
         ......    ......
         ......    ......


[] [返回上一页] [打 印]
  • 上一篇文章:软件狗[Dongles]的加密与解密技术(6)
  • 下一篇文章:软件狗[Dongles]的加密与解密技术(8)

  • 相关文章:
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号