PW200烧写器的特色功能就是拥有多种加密功能。烧写器支持3种加密:在线加密,内置离线加密,ICKEY授权。我们使用烧写器的时候可以用加密,也可以不加密。 本次测试的是体验PW200烧写器的UID加密功能:内置离线加密。软件KEIL MDK5.29。STM32F413ZH开发板2块。因为要验证加密是否成功,所以要用2块。模拟将我们的产品**出来了固件,将**固件烧录到另外一块板子中,固件运行不正常。
首先用STMCUBEMX生成一个STM32F413ZH的测试工程。然后打开烧写器配套软件设置UID加密:内置离线加密。
设置密钥地址,打开矩阵编码。
随机生成矩阵编码,然后导出源码,最后编译并保存。
生成的源码如上,一对.C和.H文件,然后把源码加入测试工程。
在工程中初始化,并加上检测函数。如上图,校验成功则进入主循环,灯闪烁。校验不成功时串口输出,灯灭。实际项目中可以在多处加上检测校验函数,让别人反汇编也不容易看出来。编译整个工程生成烧录固件。
在powerwriter软件中打开刚才编译的固件并应用。
最后离线加载到烧写器中。
断开软件与烧写器通信连接,然后按烧写器烧录键离线烧录代码。可以看到串口输出是证实验证成功的。板上的灯也是闪烁的。
-----------------------------------------------------------------------------------------------------------
下面将开发板中的固件回读出来烧录到另外一块开发板中,验证固件加密。
回读出来的固件在密钥地址处多出来12字节数据。
保存读出来的固件。
加载回读出来的固件,并烧写到另外一块开发板中。
可以看到串口输出信息,验证不通过。板上灯灭的,不会闪。
再次通过烧写器的离线烧录功能烧录之后,串口输出信息,验证通过,板上led灯开始闪烁了。
离线加密烧录终于测试完成了。
|