新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 对单片机及其程序的运行上加密解析方案

对单片机及其程序的运行上加密解析方案

作者: 时间:2012-06-01 来源:网络 收藏

……

SUB2: ADD A,#35H

SUBB A,#05H

……

MOV DPTR,#SUB2

MOV R0,#30H

MOV A,#1

MOV R1,#3

MOV @R0,#24H ;SUB2段第一个指令代码为24H

LOOP2: PUSH A

MOVC A,@A+DPTR

XRL 30H,A ;异或运算

POP A

INC A

DJNZ R1,LOOP2

MOV A,30H

……

CJNE A,#80H,ERR ;结果与80H比较

……

ERR: MOV A,#0 ;错误出口

……

在SUB2段, 是通过指令计算某些数据的,如收费的算法等。解密者总要修改部分指令, 达到某种目的。然而, 反解密的工作是在后面的LOOP2段中,是用到了SUB2段中的指令字节(这里是用了4个字节)进行运算(这里是用异或运算),它的结果将直接影响下面程序的正确执行(正确的运算结果为80H)。如果改变该SUB2程序段,则在LOOP2程序段中将程序引入歧途, 会不知不觉地走入迷途。如果在硬件设计上有电擦除EEPROM,可以进一步将程序中的数据修改(或删除),使跟踪者造成设备的损坏,无法重新分析程序。

上面介绍的方法,是阻止解密者非法获得ROM中的程序或者使ROM中的程序无法在复制的系统中。在实际应用中,判断程序正常与被跟踪是有很多方法的。例如,可以根据时钟计时断定某个程序段运行的时间, 以便作出不同的反应, 因为单步与连续运行在时间上是有很大差别的。另外, 对不能仅限于上述的一种方法,而且反跟踪的方法也不能单一, 要几种方法配合使用才能达到好的效果。如软件与硬件加密相结合,动态解码可与程序防修改相结合等,充分利用新技术、新方法(如可编程逻辑器件等)使单片机的加密保护更有效。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭