发明名称 |
一种单片机核心代码防破解的方法 |
摘要 |
本发明公开了一种单片机核心代码防破解的方法。它包括以下步骤:在单片机执行代码过程中,当执行到密文代码所在的特定存储区域时,MPU内存保护模块产生一个中断,在中断中,采用AES模块将密文代码解密成明文代码,CRC校验正确后,将明文代码回传到特定存储区域,中断返回,单片机执行特定存储区域的明文代码,代码执行完毕后,AES模块将特定存储区域的明文代码加密成密文代码,CRC校验正确后,将密文代码回传到特定存储区域。本发明使单片机内的核心代码以密文的形式存在,即使破解者使用侵入式方式破解了单片机,将单片机内核心代码读出,也无法将密文形式的核心代码翻译成明文,从而保护了核心代码。 |
申请公布号 |
CN103761456A |
申请公布日期 |
2014.04.30 |
申请号 |
CN201310475562.7 |
申请日期 |
2013.10.12 |
申请人 |
利尔达科技集团股份有限公司 |
发明人 |
沈秀清;陈维哲;王鲁克;储祝君;陈冰 |
分类号 |
G06F21/12(2013.01)I;G06F13/28(2006.01)I |
主分类号 |
G06F21/12(2013.01)I |
代理机构 |
杭州杭诚专利事务所有限公司 33109 |
代理人 |
王江成 |
主权项 |
一种单片机核心代码防破解的方法,所述单片机带有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模块将备份的密文代码传输到原密文代码所在的特定存储区域将当前该特定存储区域内的代码覆盖。 |
地址 |
310011 浙江省杭州市拱墅区和睦院18幢A区1201室 |