本发明涉及嵌入式芯片的核心代码保护领域,具体涉及一种嵌入式芯片的核心代码保护方法。
背景技术:
1、目前,对于嵌入式终端基本软件保护手段较少,如果核心代码编译后直接烧写到芯片中,很容易被别人逆向破解,造成巨大损失;而目前的解决方案是通过外接加密芯片的方法实现,此举大大增加了硬件成本。
技术实现思路
1、本发明的目的是提供一种嵌入式芯片的核心代码保护方法,极大地降低了固件被逆向破解的风险。
2、本发明采取如下技术方案实现上述目的,嵌入式芯片的核心代码保护方法,包括:
3、步骤1、根据产品或者硬件信息,通过随机算法生成加解密所需的密钥;
4、步骤2、将所述密钥通过转译算法生成密文,并将该密文保烧写到芯片的设置存储区域;
5、步骤3、配置链接脚本文件,在脚本文件中添加核心代码编译后存放的位置以及核心代码在运行环境时对应的ram(randomaccessmemory,随机存取存储器)区域位置;
6、步骤4、在软件开发过程中,根据脚本文件的配置,在需要加密的核心代码函数前添加关键字,以实现指定该函数的存放位置和运行位置;
7、步骤5、编译整个工程代码,根据链接脚本文件,将所有程序代码和数据打包为一个二进制文件;
8、步骤6、找到配置的核心代码存放位置;
9、步骤7、使用密钥对核心代码存放位置处的核心代码编译生成的固件进行加密;
10、步骤8、将加密后的密文数据重新烧写回二进制文件中,覆盖该二进制文件中原来的明文数据;
11、步骤9、将加密处理后的固件烧写到芯片固件存放区域。
12、进一步的是,该方法还包括:
13、步骤10、芯片上电后,对芯片时钟初始化;
14、步骤11、读取芯片设置存储区域中密钥的密文,并使用对应的转译算法将密钥还原;
15、步骤12、根据配置链接脚本文件中核心代码存放区域,读出加密后的固件内容;
16、步骤13、使用还原后的密钥对读出加密后的固件内容进行解密处理;
17、步骤14、将解密后的数据写入脚本文件配置的核心代码运行ram区域;
18、步骤15、非核心代码需要调用核心代码时,直接调用ram区域解密后内容,实现其原有功能。
19、通过对生成的固件加密,烧写到芯片中后,在解密到内存区域执行代码,大大降低了固件被逆向破解的风险。
20、进一步的是,所述设置存储区域为efuse或flash固定区域,提高了密钥的安全性。
21、进一步的是,步骤2具体包括:使用芯片厂家提供的烧写工具,将所述密钥通过转译算法生成密文,并将该密文保烧写到芯片的设置存储区域。提高了烧写效率,降低出现不兼容情况的概率。
22、进一步的是,步骤6具体包括:使用打包软件工具找到配置的核心代码存放位置,提高寻找核心代码存放位置的效率。
23、进一步的是,步骤9具体包括:使用芯片厂家提供的烧写软件,将加密处理后的固件烧写到芯片固件存放区域。提高了烧写效率,降低出现不兼容情况的概率。
24、本发明的有益效果为:
25、本发明使用的密钥通过转译存放到芯片efuse(即一种可编程的存储单元,只可编程一次)区域,密钥转译保存,提高密钥安全性,烧写到芯片中的固件,其核心代码已通过加密算法处理,这样即使固件被别人获取后也很难逆向破解,保护了核心代码安全性;再次核心代码是芯片每次上电后解密到芯片ram区域,断电后丢失,大大提高安全性。本发明在未增加硬件成本的基础上实现了对软件核心代码的保护。
1.嵌入式芯片的核心代码保护方法,其特征在于,包括:
2.根据权利要求1所述的嵌入式芯片的核心代码保护方法,其特征在于,该方法还包括:
3.根据权利要求1或2所述的嵌入式芯片的核心代码保护方法,其特征在于,所述设置存储区域为efuse或flash固定区域。
4.根据权利要求1所述的嵌入式芯片的核心代码保护方法,其特征在于,步骤2具体包括:使用芯片厂家提供的烧写工具,将所述密钥通过转译算法生成密文,并将该密文保烧写到芯片的设置存储区域。
5.根据权利要求1所述的嵌入式芯片的核心代码保护方法,其特征在于,步骤6具体包括:使用打包软件工具找到配置的核心代码存放位置。
6.根据权利要求1所述的嵌入式芯片的核心代码保护方法,其特征在于,步骤9具体包括:使用芯片厂家提供的烧写软件,将加密处理后的固件烧写到芯片固件存放区域。