当前位置:首页 > 单片机 > 单片机
[导读]众所周知, 有一些公司或个人专门做单片机的解密服务,另外,单片机的指令不论怎样加密最终它还要在明文的方式下才能运行, 而且解密者可以使用单片机开发系统单步调试ROM中的程序。 当解密者了解了指令的运行过程之后

众所周知, 有一些公司或个人专门做单片机的解密服务,另外,单片机的指令不论怎样加密最终它还要在明文的方式下才能运行, 而且解密者可以使用单片机开发系统单步调试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)。为了说明动态数据解码过程, 这个例子比较简单, 实际在转入该程序段时, 可以由某些运算生成数据单元地址, 以增强程序的抗分析能力。

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

全新原生集成方案实现企业短信服务的简化、强化与规模化升级 马来西亚吉隆坡2025年9月11日 /美通社/ -- 全球云通信平台Infobip宣布扩展与微软Azure通信服务的集成合作,通过其先进的短信接口,助力企业与全...

关键字: 微软 通信 IP AZURE

-CAS推出CAS IP Finder,旨在改进知识产权搜索 AI增强解决方案深化搜索功能,优化用户体验  俄亥俄州哥伦布2025年9月9日 /美通社/ --...

关键字: FINDER IP ST AI

开创中国文旅产业AI深度应用新样本 北京2025年8月22日 /美通社/ -- 以下为来自亿欧的报道: 8月22日,桂林旅游股份有限公司旗下银子岩景区联合合作伙伴正式发布全球首款AI伴游财神玩具 —— "五...

关键字: AI IP 数字化 硬件

济南2025年8月12日 /美通社/ -- 近年来,国家大力推进信创产业发展,明确要求关键行业信息系统实现 "自主可控、安全可靠",老年教育领域作为民生服务的重要阵地,其信息化建设的国产化适配已成为行...

关键字: 全栈 BSP 数据库 加密

马来西亚吉隆坡2025年8月14日 /美通社/ -- 全球云通信平台Infobip今日发布最新报告《AI优势:领先品牌如何在全天候客户世界中蓬勃发展》(The AI Advantage: How Leading...

关键字: 人工智能 IP 智能体 IDC

马塞诸塞州剑桥2025年8月6日 /美通社/ -- 8 月 5 日,晶泰科技(2228.HK)宣布与 DoveTree 完成总订单规模约 470 亿港元(59.9 亿美元)的...

关键字: 泰科 AI OV VERDI

 - CAS SciFinder集成变革性的新型科学智能AI功能,以提高研发效率和促进创新 开创性的解决方案能够更快速地为科学家提供可操作的答案,从而加速科学发现 俄亥俄...

关键字: 集成 AI FINDER IP

RISC-V生态的快速发展源于业界对这一开放指令集体系结构的共同信念,然而其发展并非一帆风顺。企业在推广RISC-V时面临诸多现实问题,包括来自客户客户的质疑、与Arm的差异化价值、软件移植的难度等等。但这些挑战正在逐步...

关键字: RISC-V CPU 香山 昆明湖 IP AI

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和I...

关键字: TCP IP

北京 2025年7月9日 /美通社/ -- 在人工智能行业竞争日益白热化的当下,思必驰科技股份有限公司(下称"思必驰")重启科创板 IPO的消息一出,便引发了广泛关注。这家成立于2007年的企业,堪...

关键字: 思必驰 IP AI 模型
关闭