[发明专利]一种单片机核心代码防破解的方法有效
申请号: | 201310475562.7 | 申请日: | 2013-10-12 |
公开(公告)号: | CN103761456A | 公开(公告)日: | 2014-04-30 |
发明(设计)人: | 沈秀清;陈维哲;王鲁克;储祝君;陈冰 | 申请(专利权)人: | 利尔达科技集团股份有限公司 |
主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F13/28 |
代理公司: | 杭州杭诚专利事务所有限公司 33109 | 代理人: | 王江成 |
地址: | 310011 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 单片机 核心 代码 破解 方法 | ||
技术领域
本发明涉及单片机代码保护技术领域,尤其涉及一种单片机核心代码防破解的方法。
背景技术
现在市面上对单片机的破解技术层出不穷,主要有两种方式:非侵入式和浸入式。非侵入式的方式是利用芯片设计或者芯片编程时序中的某些漏洞对芯片进行破解。当然随着芯片设计行业的发展,该种情况也会越来越少。侵入式的方式是破坏芯片的封装,利用半导体测试设备,显微镜和微定位器等仪器找到芯片保护熔丝的位置并将其修复,使其变成未经加密的芯片,然后用专用编程器将程序读出,或者直接将探针放在芯片内部总线上读出存储器中的程序。
中国专利公开号CN1971470A,公开日2007年5月30日,发明的名称为一种采用多用途辅助单片机的系统加密方法,该申请案公开了一种采用多用途辅助单片机的系统加密方法,它是在多位处理器系统中,取功能相对简单、软件程序量小的辅助微处理器用带内置烧死程序存储器的单片机替代,在主处理器程序和辅助单片机程序中增加按照约定加密协议算法的密码校验,使得程序不能够被读出而无法复制,从而达到系统加密的目的。其不足之处是,该单片机内的代码是明码,破解者可通过侵入式的方式进行破解,将单片机内的明文代码读取出来,从而还原成高级语言,掌握核心技术。
发明内容
本发明的目的是克服目前单片机容易被侵入式方式破解的技术问题,提供了一种单片机核心代码防破解的方法,其使单片机内的核心代码以密文的形式存在,即使破解者使用侵入式方式破解了单片机,将单片机内核心代码读出,也无法将密文形式的核心代码翻译成明文,从而保护了核心代码。
为了解决上述问题,本发明采用以下技术方案予以实现:
一种单片机核心代码防破解的方法,所述单片机带有MPU内存保护模块、AES便件加速模块、DMA模块和CRC模块,包括以下步骤:
S1:预先对单片机内需要保护的核心代码进行初始加密,将核心代码通过AES加密算法加密成密文代码,同时将该密文代码进行备份,备份的密文代码存储在单片机的非易失性存储器上;
S2:单片机执行代码过程中,当执行到一段密文代码所在的特定存储区域时,MPU内存保护模块产生一个中断;
S3:单片机当前执行的代码进入中断,DMA模块将该密文代码传输到单片机的易失性存储器上的指定区域,AES便件加速模块将指定区域的密文代码解密成明文代码,CRC模块校验明文代码,如果校验错误,则执行步骤S4,如果校验正确,则执行步骤S5;
S4:原密文代码保持不变,DMA模块不会将明文代码回传到原密文代码所在的特定存储区域,单片机当前执行的代码一直处于中断中,中断无法返回;
S5:DMA模块将明文代码回传到原密文代码所在的特定存储区域将原密文代码覆盖,明文代码全部回传完毕后,中断返回,单片机执行明文代码;
S6:明文代码执行完毕后,DMA模块将该明文代码传输到单片机的易失性存储器上的指定区域,AES便件加速模块将指定区域的明文代码加密成密文代码,CRC模块校验密文代码,如果校验错误,则执行步骤S7,如果校验正确,则执行步骤S8;
S7:DMA模块将备份的密文代码传输到原密文代码所在的特定存储区域将明文代码覆盖,密文代码传输完毕后单片机执行后面的代码;
S8:DMA模块将密文代码回传到原密文代码所在的特定存储区域将明文代码覆盖,密文代码全部回传完毕后单片机执行后面的代码;
在执行步骤S2至S8的过程中,如果单机片掉电,DMA模块将备份的密文代码传输到原密文代码所在的特定存储区域将当前该特定存储区域内的代码覆盖。
在本技术方案中,MPU(MemoryProtectionUnit;内存保护单元)内存保护模块:能配置特定区域内存读、写以及代码执行,当单片机芯片执行特定区域的密文核心代码时,MPU产生一个中断。AES(AdvancedEncryptionStandard;高级加密标准)便件加速模块:AES便件加速模块能便件运算AES算法,大大减少AES加/解密时间,AES可采用128/192/256bits密钥。DMA(DirectMemoryAccess;直接内存访问单元)模块:数据传输模块,能在CPU睡眠情况下传输数据,减少功耗与传输数据时间。CRC(CyclicRedundancyCheck;循环冗余校验码)模块:数据校验模块,能校验AES模块加/解密后的数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于利尔达科技集团股份有限公司,未经利尔达科技集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310475562.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种生产四氢噻吩的方法
- 下一篇:一种麻花机的中空旋转扭股密封结构