5.3.2 程序加密后传输(防烧录时串口被监控被分析出程序)
目前,所有的普通串口下载烧录编程或升级程序都是采用明码通信的(电脑和目标芯片通信时,或脱机下载板和目标芯片通信时),问题:如果烧录环节烧录人员/或买通烧录人员的第三方通过分析下载烧录编程时串口通信的数据,高手是可以在烧录时在串口上引2根线出来,通过分析串口通信的数据分析出实际的用户程序原始的目标代码的。当然用STC的脱机下载板烧程序总比用电脑烧录程序强 !防止烧录人员将程序轻易从电脑盗走,如通过网络发走,如通过U盘烤走,防不胜防,当然盗走你的电脑那就没办法那 !所以STC的脱机下载工具比电脑烧录安全,让前台文员烧录,让司机保安烧录都可以。程序加密后传输功能的使用需要如下的几个步骤:
2、对代码文件加密加密文件前,需要先打开我们自己的密钥。若缓冲区中存放的已经是我们的密钥,则不要再打开。如下图,在“程序加密后传输”页面中点击“打开密钥”按钮,打开我们之前保存的密钥文件,例如“New.k”,然后返回到“程序加密后传输”页面中点击“加密代码”按钮,如下图所示,首先会弹出“打开源文件(未加密)”的对话框,此时选择的是原始的未加密的代码文件点击打开按钮后,马上有会弹出一个类似的对话框,但此时是对加密后的文件进行保存的对话框。如下图所示,点击保存按钮即可保存加密后的文件。3、将用户密钥更新到目标芯片中更新密钥前,需要先打开我们自己的密钥。若缓冲区中存放的已经是我们的密钥,则不要再打开。如下图,在“自定义加密下载”页面中点击“打开密钥”按钮,打开我们之前保存的密钥文件,例如“New.k”。密钥打开后,如下图所示,勾选上“下载用户代码前先更新用户密钥”选项和“本次下载的代码为加密代码”的选项,然后打开我们之前加密过后的文件,打开后点击界面左下角的“下载/编程”按钮,按正常方式对目标芯片下载完成即可更新用户密钥。4、加密更新用户代码密钥更新成功后,目标芯片便具有接收加密代码并还原的功能。此时若需要再次升级/更新代码,则只需要参考第二步的方法,将目标代码进行加密,然后如下图
对于一片新的STC单片机,可将步骤3和步骤4合并完成,即将密钥更新到目标单片机的同时也可将加密后的代码一并下载到单片机中,若已经执行过步骤3(即已经将密钥更新到目标芯片中了),则后续的代码更新就只需要按照步骤4,只需要在“程序加密后传输”页面中选择“本次下载的代码为加密代码”的选项(“下载用户代码前先更新用户密钥”选项不需要选了),然后打开我们之前加过密后的文件,打开后点击界面左下角的“下载/编程”按钮,按正常方式对目标芯片下载即可完成用用户自己专用的加密文件更新用户代码的目的(防止在烧录程序时被烧录人员通过监测串口分析出代码的目的)。