有些MCU的程序是放置在外挂的nor flash存储器上,比如: ESP32
那如何对程序进行加密呢?
用唯一ID 还是 AES 单元?大家有什么经典的程序保护方案或者参考例程吗?
现在很多nor flash都有UID和OTP区,可以利用来加密
写个boot ,烧写程序的时候,通过boot配合上位机写入加密后的程序 ,可以做到每个单片机程序都不同运行的时候解密单片机程序到内存中,如果不是频繁开关机的 也可以解压到指定flash中,最后跳转运行有些单片机本身内置了上面类似功能
如果是放在外部 FLASH ,Memory Map 方式读取FLASH,直接在外部 FLASH 运行,这个要看芯片支持的加密方式。如果是通过Boot加载到内部 RAM 运行,Boot 程序可以自己实现自定义的加密算法。
1. 自制烧写工具,根据芯片ID,每个芯片生产不同的已加密二进制文件,烧写到flash2. MCU上,从flash读取数据,解密加载到内存运行
开眼