当前位置: 首页 > 图文教程 > 网络安全 > 黑客技术 > 软件狗[Dongles]的加密与解密技术(7)

黑客技术
教你建立和删除系统隐藏帐号的方法
ARP欺骗和ICMP欺骗催生全新DOS工具
不一样的挂马方式:TXT挂马
详解跨站脚本攻击
Public权限下的列目录
无需密码照样看有密码的优酷视频
黑客攻击式的掐架导致5·19六省区的网络瘫痪
黑客产业链:揭秘黑客培训内幕
上网查旅游出国信息留神网站“挂马”
自拍网站被挂马 可能造成隐私照片泄露
木马病毒罪恶的产业链:木马制作和分销
80后男孩向黑客买QQ号和密码诈骗3万
黑客入侵知识:提权的21种方法
木马最基本的隐藏:不可见窗体和隐藏文件
黑客入侵知识:简单识别服务器操作系统
如何利用HTML格式化你的硬盘
详解BMP木马
新欢乐时光代码分析
跨站式脚本(Cross-SiteScripting)XSS攻击原理分析
攻击方式学习之SQL注入(SQL Injection)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-29   浏览: 39 ::
收藏到网摘: n/a

二、硬件加密

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

  在讲第二代软件狗时,我们说它其实就是几个简单的与或逻辑门,目前已经被淘汰。现在我们将要把它跟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   d