这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 程序加密后传输+发布项目程序+USB直接下载:在远方升级而控制次数的目的

共6条 1/1 1 跳转至

程序加密后传输+发布项目程序+USB直接下载:在远方升级而控制次数的目的

助工
2023-06-05 09:54:37     打赏

程序加密后传输 + 发布项目程序 + USB直接下载远程升级===让你的客人在远方自己升级更新程序,而拿不到你的源程序,达到控制次数的目的

5.3.2  程序加密后传输(防烧录时串口被监控被分析出程序

目前,所有的普通串口下载烧录编程或升级程序都是采用明码通信的(电脑和目标芯片通信时,或脱机下载板和目标芯片通信时),问题:如果烧录环节烧录人员/或买通烧录人员的第三方通过分析下载烧录编程时串口通信的数据,高手是可以在烧录时在串口上引2根线出来,通过分析串口通信的数据分析出实际的用户程序原始的目标代码的。当然用STC的脱机下载板烧程序总比用电脑烧录程序强 !防止烧录人员将程序轻易从电脑盗走,如通过网络发走,如通过U盘烤走,防不胜防,当然盗走你的电脑那就没办法那 !所以STC的脱机下载工具比电脑烧录安全,让前台文员烧录,让司机保安烧录都可以。


即使是STC全球首创的脱机下载工具要防止【不法分子在脱机烧录的过程中,通过分析串口通信数据获得实际的用户程序目标代码】也是没有办法达到要求的,这就需要用到最新的 STC8/STC32 系列单片机所提供的程序加密后传输下载功能


程序加密后传输下载是:用户先通过新版STC-ISP V6.91Q或以上的STC-ISP软件帮你自己自动生成一套你的专用加密密钥对你的程序进行加密然后将加密后的代码再通过串口下载,此时下载传输的是加密文件,通过串口分析出来的是加密后的乱码,如不通过派人潜入你公司盗窃你电脑里面的加密密钥,就无任何价值,便可起到防止在烧录程序时被烧录人员或你要防范的第三方买通你的烧录人员,在烧录时通过 监测 [P3.0,P3.1] 串口分析出目标代码的途径。



程序加密后传输功能的使用需要如下的几个步骤:


1、生成并保存新的密钥如下图,进入到“程序加密后传输”页面,点击“生成新密钥”按钮,即可在缓冲区显示新生成的256字节的密钥。然后点击“保存密钥”按钮,即可将生成的新密钥保存为以“.K”为扩展名的的密钥文件(注意:这个密钥文件一定要保存好,以后发布的代码文件都需要使用这个密钥加密,而且这个密钥的生成是非重复的,即任何时候都不可能生成两个完全相同的密钥,所以一旦密钥文件丢失将无法重新获得)。例如我们将密钥保存为“New.k”。

2、对代码文件加密加密文件前,需要先打开我们自己的密钥。若缓冲区中存放的已经是我们的密钥,则不要再打开。如下图,在“程序加密后传输”页面中点击“打开密钥”按钮,打开我们之前保存的密钥文件,例如“New.k”,然后返回到“程序加密后传输”页面中点击“加密代码”按钮,如下图所示,首先会弹出“打开源文件(未加密)”的对话框,此时选择的是原始的未加密的代码文件

点击打开按钮后,马上有会弹出一个类似的对话框,但此时是对加密后的文件进行保存的对话框。如下图所示,点击保存按钮即可保存加密后的文件。

3、将用户密钥更新到目标芯片中更新密钥前,需要先打开我们自己的密钥。若缓冲区中存放的已经是我们的密钥,则不要再打开。如下图,在“自定义加密下载”页面中点击“打开密钥”按钮,打开我们之前保存的密钥文件,例如“New.k”。密钥打开后,如下图所示,勾选上“下载用户代码前先更新用户密钥”选项和“本次下载的代码为加密代码”的选项,然后打开我们之前加密过后的文件,打开后点击界面左下角的“下载/编程”按钮,按正常方式对目标芯片下载完成即可更新用户密钥。

4、加密更新用户代码密钥更新成功后,目标芯片便具有接收加密代码并还原的功能。此时若需要再次升级/更新代码,则只需要参考第二步的方法,将目标代码进行加密,然后如下图

对于一片新的STC单片机,可将步骤3和步骤4合并完成,即将密钥更新到目标单片机的同时也可将加密后的代码一并下载到单片机中,若已经执行过步骤3(即已经将密钥更新到目标芯片中了),则后续的代码更新就只需要按照步骤4,只需要在“程序加密后传输”页面中选择“本次下载的代码为加密代码”的选项(“下载用户代码前先更新用户密钥”选项不需要选了),然后打开我们之前加过密后的文件,打开后点击界面左下角的“下载/编程”按钮,按正常方式对目标芯片下载即可完成用用户自己专用的加密文件更新用户代码的目的(防止在烧录程序时被烧录人员通过监测串口分析出代码的目的)。






关键词: 程序加密后传输      发布项目程序      USB直接下载    

助工
2023-06-05 09:59:28     打赏
2楼

5.3.1      发布项目程序

发布项目程序功能主要是将用户的程序代码与相关的选项设置打包成为一个可以直接对目标芯片进行下载编程的用户自己界面的超级简单的可执行文件关于界面,用户可以自己进行定制(用户可以自行修改发布项目程序的标题、按钮名称以及帮助信息),同时用户还可以指定目标电脑的硬盘号和目标芯片的ID号,指定目标电脑的硬盘号后,便可以控制发布应用程序只能在指定的电脑上运行(防止烧录人员将程序轻易从电脑盗走,如通过网络发走,如通过U盘烤走,防不胜防,当然盗走你的电脑那就没办法那,所以STC的脱机下载工具比电脑烧录安全,能限制可烧录芯片数量,让前台文员小姐烧,让老板娘烧都可以),拷贝到其它电脑,应用程序不能运行。同样的,当指定了目标芯片的ID号后,那么用户代码只能下载到具有相应ID号的目标芯片中(对于一台设备要卖几千万的产品特别有用---坦克,可以发给客户自己升级,不需冒着生命危险跑到战火纷飞的伊拉克升级软件啦),对于ID号不一致的其它芯片,不能进行下载编程。


发布项目程序详细的操作步骤如下:1、首先选择目标芯片的型号2、打开程序代码文件

3、设置好相应的硬件选项

4、试烧一下芯片,并记下目标芯片的ID号,如下图所示,该芯片的ID号即为“F784C000001364”(如不需要对目标芯片的ID号进行校验,可跳过此步)

5、设置自动增量(如不需要自动增量,可跳过此步)

6、设置RS485控制信息(如不需要RS485控制,可跳过此步)


7、点击界面上的“读取本机硬盘号”按钮,并记下目标电脑的硬盘号(如不需要对目标电脑的硬盘号进行校验,可跳过此步)

8、点击“发布项目程序”按钮,进入发布应用程序的设置界面。

9、根据各自的需要,修改发布软件的标题、下载按钮的名称、重复下载按钮的名称、自动增量的名称以及帮助信息


10、若需要校验目标电脑的硬盘号,则需要勾选上“校验硬盘号”,并在后面的文本框内输入前面所记下的目标电脑的硬盘号


11、若需要校验目标芯片的ID号,则需要勾选上“校验芯片ID号”,并在后面的文本框内输入前面所记下的目标芯片的ID号



12、最后点击发布按钮,将项目发布程序保存,即可得到相应的可执行文件。发布的项目程序打界面如下图

========如下梦幻的效果===================================



助工
2023-06-05 10:05:51     打赏
3楼

5.3.3      【发布项目程序】+【程序加密后传输】结合使用

【发布项目程序】与【程序加密后传输】两项新的特殊功能可以结合在一起使用。首先程序加密后传输可以确保用户代码在烧录编程时串口通信传输过程当中的保密性,而发布项目程序可实现让最终使用者远程升级功能(方案公司的人员不需要亲自到场)。所以两项功能结合起来使用,非常适用于方案公司/生产商在软件需要更新时,让最终使用者自己对终端产品进行软件更新的目的,又确保现场烧录人员无法通过串口分析出有用程序,强烈建议方案公司使用。


发布项目程序可参考5.16.1章节步骤,示意图如下:

程序加密后传输可参考5.16.2章节步骤,示意图如下:

=======如下梦幻的效果=============


助工
2023-06-05 10:07:31     打赏
4楼

STC8H8K64U-45MHz-TSSOP20, RMB1.4
USB直接仿真,USB直接下载,线路图


现在STC的带硬件USBMCU支持用硬件USB下载,因为用的是USB-HID通信协议,不需要安装任何驱动。STC打狗棒、降龙棍、开天斧、屠龙刀核心板以及STC开源示波器、STC实验箱

D-/P3.0, D+/P3.1PC-USB端口连接好的状况下,USB-ISP下载程序步骤:


1、按下板子上的P3.2/INT0按键,就是P3.2接地


2、给目标芯片重新上电,不管之前是否已通电。
===电子开关是按下停电后再松开就是上电
等待STC-ISP下载软件中自动识别出“STC USB Writer (HID1)” ,识别出来后,就与P3.2状态无关了,这时可以松开P3.2按键

===传统的机械自锁紧开关是按上来停电,按下去是上电


3、点击下载软件中的“下载/编程”按钮(注意:USB下载与串口下载的操作顺序不同)
下载成功 !
===另外从用户区软复位到系统区也是等待USB下载。




菜鸟
2023-06-05 10:20:23     打赏
5楼

谢谢分享!


专家
2023-06-05 11:04:04     打赏
6楼

谢谢分享!


共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]