单片机程序运行加密

发布者:SereneDreamer最新更新时间:2014-01-22 来源: dqjsw关键字:单片机  程序运行加密  RAM 手机看文章 扫描二维码
随时随地手机看文章

众所周知, 有一些公司或个人专门做单片机的解密服务,另外,单片机的指令不论怎样加密最终它还要在明文的方式下才能运行, 而且解密者可以使用单片机开发系统单步调试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

……

该程序是将RAM地址为20H开始的数据组(设有5个)进行动态变换, 因为初始的数据组是密码形式的, 它需要在程序运行中改变,在程序的其他段中要使用改变后的数据。这里是用SUB1程序段中的指令代码(代码为:24H,94H,63H,54H,13H)与55H进行动态解码,数据55H是加密数据,它"异或"指令代码后得到正确的数据存入20H开始的单元中(结果为:71H,C1H,36H,01H,46H)。为了说明动态数据解码过程, 这个例子比较简单, 实际在转入该程序段时, 可以由某些运算生成数据单元地址, 以增强程序的抗分析能力。[page]

2 程序段防修改

在加密程序中, 所设置的障碍不会只有一处。为了使加密措施完善, 在一些关键地方程序的前后呼应是反破译的有效方法。解密者为了一些目的, 必然要修改某段程序指令;而程序段防修改就是针对这种解密方法所采用的技术手段。为了达到加密程序的完整性, 可以在程序的关键处取指令或数据代码参加某种运算, 其结果作为判断程序是否被变动的依据。下面是程序防修改的程序段:
 

……

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

关键字:单片机  程序运行加密  RAM 引用地址:单片机程序运行加密

上一篇:单片机及CPLD在多间隔脉冲产生电路中的应用
下一篇:单片机开发过程中的硬件调试步骤

推荐阅读最新更新时间:2024-03-16 13:34

基于ATMEGA8单片机数字功率跟随技术
  引言   目前地球的五大问题,包括能源失衡、产油国独裁、失控的气候变迁、能源匮乏、生物多样性消失等,都是因为人类大量使用并依赖传统的能源所造成,而且五大问题环环相扣、迫在眉睫,再不积极采取行动,全人类都将陷入无法想像的浩劫,所以发展替代能源已不仅仅是解决高油价的方案,而是人类能在地球上永续生存下去的最关键要素。煤炭、石油是我国利用的主要能源,它们的巨量消费不仅是大气污染的主要来源,还有其不可再生性,使得它们会逐渐被可再生能源所代替。我国大部分地区有着丰富的风能和太阳能资源,但限于科技的发展程度,它们一直未能得到有效地利用。近些年,随着电子技术和硅材料研究的不断进步,促进了对风能、太阳能的开发利用,市场前景相当广阔。在此前提
[单片机]
基于ATMEGA8<font color='red'>单片机</font>数字功率跟随技术
东芝与西部数据旗下SanDisk商讨共同投资内存生产线
  北京时间10月13日下午消息, 东芝 集团芯片业务部门表示,该公司正在与西部数据旗下的 SanDisk 进行协商,双方讨论在 东芝 位于日本四日市的工厂内共同投资一条新的内存产品生产线。下面就随网络通信小编一起来了解一下相关内容吧。    东芝 闪存芯片业务部门主管成毛康雄(Yasuo Naruke)表示,东芝与三星在芯片业务上为直接竞争对手,因此与Sandisk联手,成为了东芝最好的选择。   西部数据方面并没有对此消息立即做出回应。   西部数据是当前世界上最大的硬盘制造商之一,该公司去年以160亿美元的价格收购了 SanDisk 。自2000年以后, SanDisk 就一直是东芝芯片业务的合资伙伴。     以上是关于
[网络通信]
HOLTEK新推出HT45FH3T Tinypower™ 3D眼镜MCU
HOLTEK 继已推出的 HT45F3T 3D 眼镜 MCU 后,再度推出整合 3D 眼镜所需的高压电路的 MCU HT45FH3T。除了原有 HT45F3T 的功能外,整合了1个 3V LDO 输出及4个 Level Shift 功能,除了可节省外部的零件外,更进一步缩减 PCB 面积。 HT45FH3T 具备 2K x 16 Flash Program ROM、128 Byte Data RAM、工作电压来自 LDO 输出3.0V、LDO 输入电压来自于锂电池、系统频率 4MHz,内建精准 RC Oscillator (HIRC 4MHz),内建4个通道 12-bit ADC、1个 10-bit PTM 用
[单片机]
HOLTEK新推出HT45FH3T Tinypower™ 3D眼镜<font color='red'>MCU</font>
价格不断上涨 “疯狂内存条”背后的隐忧
  近日,一篇名为《 内存 的战争,疯狂涨价 内存 背后的产业故事》的文章在技术圈流传。自去年开始,固态硬盘、 内存 条及闪存卡等存储产品的价格开始疯涨,一根8GB DDR4内存条已经从2016年上半年的200元左右疯涨到现在的900多元。即便是饱受诟病的房价上涨速度,也无法和内存条的涨价速度相比。下面就随网络通信小编一起来了解一下相关内容吧。   涨价背后,是三星、SK海力士等韩国企业的强势上扬。今年第二季度,三星在芯片销售业绩上一举击败美国芯片巨头英特尔。与此同时,韩国另一家企业SK海力士营业利润率也达到45.59%,在韩国30家市值最大的上市公司中位列榜首。   韩国企业的高歌猛进,反衬出中国企业在存储芯片领域的黯淡。由于
[网络通信]
基于PIC16F877A的混沌信号发生器的设计
  混沌科学得到广泛研究应该得益于20世纪60年代洛伦兹(Lorenz)的“蝴蝶效应”。混沌信号具有初值敏感性、内随机性、遍历性和有界性等特点,近几年得到深入的研究和探索,并开始广泛应用于信号处理、保密通信、生物医学等领域,特别是在医疗器械的应用,有着重大的突破。科学研究表明:生物体是一个高度的非线性系统,而非线性系统的运动通常表现出混沌现象,人体的生理活动呈现众多的混沌现象。所以,研究混沌信号源的产生对生物医学的研究有着极其重要的意义。    1 混沌信号产生的数学建模与仿真   1.1 混沌信号系统数学模型的选用   该设计中,考虑到人体生理活动本身也是一个混沌系统,主要是要产生一个具有混沌特性的信号源,来调节人体的生
[单片机]
单片机设计现场总线转换网桥
    摘要: 讨论工业控制系统设备连接转换网桥的基本概念和工业控制系统对网桥的基本要求。在此基础上,提出转换网桥和网络转换的概念,并给出工业控制系统和现场总线技术对网桥和网络转换的基本要求。通过讨论,提出用MC68HC05C8设计的三种总线系统连接类型,并针对这三种连接类型,提出网桥模块和网络转换的基本结构。     关键词: 现场总线 通信 工业控制 网桥 近年来随着现场总线技术的进步与发展,出现了工业控制系统连接网桥的概念以及相应的产品。应当说,网桥概念和产品的出现标志着解决“开放式”系统问题的开始,同时也是彻底实现信息化现场总线技术的开始。 目前,工业控制现场总线中的网桥设备所起的作用,是实现不同信
[应用]
家居监控:如何选择内存技术以适应新型系统架构
近年来,人工智能(AI)和机器学习(ML)技术产品需求激增。但研究发现,在自动驾驶等应用中,让机器学习人类与生俱来的技能和判断力,简直难若登天。尽管在部分领域,有关AI的炒作已经超越现实,仍有不少采用ML功能的真实产品开始逐渐吸引消费者的目光。例如采用智能视觉的安防和家居监控系统,就拥有巨大的潜力:分析公司Strategy Analytics预测,2019年至2023年间,家居安防摄像头市场的增长率将超过50%,市值将从80亿美元增至130亿美元。 由于影像和场景识别被认为是最适合发展ML技术的功能之一,智能摄像头得以蓬勃发展。家居监控系统中的智能功能可用于: 看护老年人或弱势群体 监测婴儿睡眠时呼吸是否正常 识别住
[嵌入式]
家居监控:如何选择<font color='red'>内存</font>技术以适应新型系统架构
AD574与8031单片机及前置电路的一种实用接口电路
  AD574是美国核拟器件公司Analog Devices) 生产的12 位逐次逼近型快速A/D 转换器。其转换35us,转换误差为土0.05%,是前我国应用广泛,价格适中的A/D转换器。其内部含三态电路,可直接与各种微处理器连接,且无须附加逻辑接口电路,便能与CMOS 及TTL 电平兼容。内部配置的高精度参考电压源和时钟电路,使它不需要任何外部电路和时钟信号,就能实现A/D转换功能,应用非常方便。   许多文献有关于AD574与8031单片机接口技术的介绍, 但其控制功能引线基本局限于单一的AD574与8031的连接。由于8031无内部程序存贮器, 其内部数据存贮器也有限, 因而8031构成的测控系统, 往往都需外扩存贮器
[单片机]
AD574与8031<font color='red'>单片机</font>及前置电路的一种实用接口电路
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved