新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 对单片机程序的动态加密措施

对单片机程序的动态加密措施

作者: 时间:2012-11-15 来源:网络 收藏

众所周知, 有一些公司或个人专门做的解密服务,另外,的指令不论怎样加密最终它还要在明文的方式下才能运行, 而且解密者可以使用开发系统单步调试ROM中的程序。当解密者了解了指令的运行过程之后, 也就获得了加密的程序, 如某些智能计价器的运算方法等,通过修改程序并仿制新的ROM芯片, 就可以达到解密的目的。因此,对单片机的加密还要在程序的运行上进行加密处理, 也就是程序的措施。

  1 程序的动态解码

  动态解码是对加密程序的指令或数据代码进行动态恢复。在程序运行时, 有一段指令是专门对某一区域的指令或数据代码解密, 而且当解密后的代码使用完毕, 还要将其重新加密, 使存储器中不存在完整的程序代码。这种方法对防程序的静态分析很有效, 因为从加密程序的清单上很难看出程序的真实面目。然而,在程序的反跟踪方面, 动态解码又有其独到之处, 在阻止带断点调试跟踪方面, 由于程序在执行之前是以密文方式出现的, 解密者很难确定断点设置的位置, 稍有不慎就会因解密失败造成系统的破坏(电擦除EPROM中的数据)。下面是程序动态解码的具体例子:

  ……

  SUB1: ADD A,#94H ;虚设的程序段

  XRL 54H,#13H

  ……

  MOV R0,#20H

  MOV R1,#5

  MOV R2,#55H

  MOV DPTR,#SUB1

  MOV A,#00H

  LOOP1: PUSH A

  MOVC A,@A+DPTR

  XRL A,R2 ;异或运算

  MOV @R0,A ;存入实际数据

  POP A

  INC A

  INC R0

  DJNZ R1,LOOP1


上一页 1 2 3 下一页

关键词: 单片机 动态加密

评论


相关推荐

技术专区

关闭