Powerwriter我最看重的就是超级加倍,错了,超级加密。软件支持在线授权、离线授权和IcwKey授权三种加密方式。但是目前只支持离线授权。 其他的两种即将发布,但是还没发布,憨憨技术在线发呆: 这里测评离线授权加密。 一、打开powerwriter软件,选择芯片,选择UID加密设置,选择加密模式为内置离线授权。秘钥地址可以根据编译器自动生成,也可以固定(编译器会从芯片的flash最后给出,可能导致空间不够放置密钥),可使用软件读取Program Memory查看FLASH的空位固定密钥地址。步奏参看下图。 二、生成Matrix编码 导出源码后记得保存,导出的源码是一个完整的工程,这里我们只需要两个文件,cortex_chipid_binding.c和cortex_chipid_binding.h文件。将这两个文件包含进自己的需要加密的项目中。 在需要加密的部分进行如下操作,我是全部加密,不通过验证,所有代码功能都不执行。 在main.c中包含cortex_chipid_binding.h头文件。 主函数中进行UID验证,验证通过才执行循环里面的代码,否则主循环代码不执行。如果别人通过读取你的flash直接烧录到新的芯片中,代码不会执行。 到此可以直接编译下载到芯片中,烧录时注意将powerwriter断开连接。此时代码不运行。我的代码是串口数据返回,收到数据会返回数据。此时无数据返回。 此时回到powerwriter,切换到Program Memory选项卡,添加之前的keil工程的HEX文件,之后应用固件。 三、编程加密。 此时点击执行-智能自动编程,会自动编译加密文件并烧录进芯片。如果选择保存并离线加载,软件会把所有的数据配置好之后 作为一个package 加载到Power Writer。断开与软件的连接,就可以当做离线烧录器使用了。美滋滋。小量产品直接离线烧录,爽翻天。 此时运行代码,代码可以运行。 此时切换到Program Memory选项卡,读取当前页,然后保存为bin文件,烧录到其他芯片,程序不起作用,达到加密目的。 至此,powerwriter离线加密就测试结束,整个布置过程很简单,但是我第一次做的时候一头雾水,感觉好难。理解做完之后过程相当简单,在产品量产前对程序进行加密,一次设置可以离线烧录,非常方便。当然,因为手头设备和本人技术限制,具体加密程度本人无法做出判断。但是根据手册的介绍此加密会大大提高**的难度和成本,提高代码安全。在线授权和IcwKey授权的加密方式会更加安全。但是创芯工坊还未发布,坐等秃头程序员熬夜发布再做后续测评。
|
"安全"无止境 。。。。PowerWriter 希望为保护程序开发者权益出一份力!