例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 ...... ...... ...... ......
第四代软件狗加密技术
前面我们介绍了从第一代软件狗到第三代软件狗的使用和制作,但是,这些软件狗都是着眼于别人想不到这样的做法这个基础上的,一旦被人解密,散发出来,那么它的保护效果就要大打折扣了。任何人只要搞得到相同的芯片,便能仿制出一模一样的软件狗。即使你在加上一些TTL和CMOS等逻辑器件,甚至加上PAL、 PEEL、GAL,或者在加上一些无用的电阻、电容,但毕竟都是局限于一些简单的逻辑变化和干扰手段,对于那些“专业解密高手”来说,仍然可以轻易地把它当作一个黑盒子,找一台储备示波器或者逻辑分析仪、逻辑分析卡,然后把电脑和软件狗之间的所有操作信号都记录下来,再用单片机将所有操作信号一五一十加以模拟就成了。甚至还可以设计出学习式的软件狗,像市场上那种学习式万用遥控器一样,去学习原版软件狗的操作信号,真正是道高一尺,魔高一丈。
这种情况是否以为这软件狗已经没有什么用了呢?那倒也不是,只不过还需要再往上提高一个层次—采用单片机来设计软件狗。目前已经有不少软件公司在他们的一系列软件上都采用了这种新的软件狗作加密保护用。
采用单片机制作软件狗有什么优点呢?主要在于主机存放程序与加密盒之间的沟通方式可以任意设计,不像第三代软件狗那样比较固定。这样,解密、破译的难度就成倍增加了。譬如,对于想用模拟方式仿制软件狗的做法,我们可以采用用特定的算法来沟通的方法予以解决,让示波器或逻辑分析仪每次记录的信号都不一样,别人就难以模拟您的软件狗了。再如,为对付学习式软件狗,我们可以设定若干种沟通方式,平时只用一种方式沟通,在某种条件下、才出现特别的沟通方式,过一阵子也会失效,很难把所有的沟通方式都记录下来。
说了那么多,那么好,这种软件狗到底该如何制作呢?是不是采用任何一种单片机都行呢?不是。前面说过,软件狗是靠“偷电”来获得电源的,所以,在选择单片机时,首先要保证它的功耗比较低,适合在并口上工作。其次单片机的指令要简单,功能要较强,适合做软件狗,最后一点,单片机本身带内置ROM,并有加密功能,以简化电路和防止被非法复制。符合这些条家的单片机是很多的,如NEC的MPD7554,Microchip的PIC16C5X系列等等。
1、第四代软件狗硬件设计思想
现在,我们给出第四代软件狗的一个实例,供大家参考。我们采用PIC16C54结合93C46来设计。
以并行口(DP25)的第9脚DATA7作为主电源,而以16脚—INIT为辅助电源。这样做,可以避免PIC16C54的电源因DATA7的变化而时有时无。-INIT脚的输出是很弱的,所以为了降低功耗,当DATA7为LOW时,就令PIC16C54的振荡频率降低到100kHz以下。这是通过对电阻 R2的控制实现的。DATA 7为HIGH时,R1与R2并联,总的电阻小于100K欧,振荡频率大于100kHz;当DATA7变为LOW时,R1就与R2断开,总的电阻等于 100K欧,振荡频率就小于100kHz,使得PIC16C54处于低功耗状态。PIC16C54的RTCC脚是用来监视并行口的-STROBE脚。因为当-STROBE出现负脉冲时,表示并行口有数据要送入打印机,所以此时软件狗不能工作。而RA0是用来监视并行口的-SLCTIN脚的,当- SLCTIN为HIGH时,打印机不会工作,这时候与软件狗通讯比较合适。
在我们的电路中采用了93C46,但它并不是必须的。因为它的用途是来记录一些密码,序号等数据,如果采用OTP型,每一个芯片本身就可以存储不同的密码,是用不着外接存储器的;但在大批量生产MASK时,它是必须的,要不然,所有的软件狗就一个样了,这不符合加密原则。
第四代软件狗在硬件电路方面没有什么好变化的,最多也就仿照第三代软件狗的做法,但是在软件方面,由于采用了单片机,尽可以根据各人的巧心思,进行自由的发挥。
共13页: 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 11 [12] [13] 下一页
|