找回密码
 立即注册
查看: 5427|回复: 44

程序加密后传输 + 发布项目程序 + USB直接下载:在远方远程升级并控制次数,视频讲解

[复制链接]

该用户从未签到

550

主题

9204

回帖

1万

积分

管理员

积分
13916
发表于 2023-6-3 14:06:48 | 显示全部楼层 |阅读模式
程序加密后传输 + 发布项目程序 + 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”。
程序加密后传输-1.png

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

程序加密后传输-4.png

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

4、加密更新用户代码
密钥更新成功后,目标芯片便具有接收加密代码并还原的功能。此时若需要再次升级/更新代码,则只需要
参考第二步的方法,将目标代码进行加密,然后如下图
程序加密后传输-6.png
对于一片新的STC单片机,可将步骤3和步骤4合并完成,即将密钥更新到目标单片机的同时也可将加密后的代码
一并下载到单片机中,若已经执行过步骤3(即已经将密钥更新到目标芯片中了),则后续的代码更新就只需要
按照步骤4,只需要在“程序加密后传输”页面中选择“本次下载的代码为加密代码”的选项(“下载用户代码前先更新
用户密钥”选项不需要选了),然后打开我们之前加过密后的文件,打开后点击界面左下角的“下载/编程”按钮,
按正常方式对目标芯片下载即可完成用用户自己专用的加密文件更新用户代码的目的
(防止在烧录程序时被烧录人员通过监测串口分析出代码的目的)。
视频讲解茶话会
1,程序加密后传输 + 发布项目程序 + USB直接下载远程升级
2,简单控制下载数量

回复 送花

使用道具 举报

该用户从未签到

550

主题

9204

回帖

1万

积分

管理员

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

发布项目程序详细的操作步骤如下:
1、首先选择目标芯片的型号
2、打开程序代码文件
3、设置好相应的硬件选项
1.png

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

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

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

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

8、点击“发布项目程序”按钮,进入发布应用程序的设置界面。
9、根据各自的需要,修改发布软件的标题、下载按钮的名称、重复下载按钮的名称、自动增量的名称以及帮助信息
10、若需要校验目标电脑的硬盘号,则需要勾选上“校验硬盘号”,并在后面的文本框内输入前面所记下的目标电脑的硬盘号
11、若需要校验目标芯片的ID号,则需要勾选上“校验芯片ID号”,并在后面的文本框内输入前面所记下的目标芯片的ID号
6.png

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

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

回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9204

回帖

1万

积分

管理员

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

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

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

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


回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9204

回帖

1万

积分

管理员

积分
13916
 楼主| 发表于 2023-6-3 15:08:40 | 显示全部楼层
STC8H8K64U-45MHz-TSSOP20, RMB1.4
USB直接仿真,USB直接下载,线路图
1.png

现在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下载。

1.png

1.png
回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9204

回帖

1万

积分

管理员

积分
13916
 楼主| 发表于 2023-6-10 09:53:39 | 显示全部楼层
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    34

    主题

    323

    回帖

    573

    积分

    高级会员

    积分
    573
    发表于 2023-6-15 08:41:07 | 显示全部楼层
    可以提供一下 ID号加密  同时  程序加密后传输    的操作方法吗?    程序加密后传输是为了脱机下载器不会被监听到程序截取,   ID号加密是为了防止客户拿到程序也没意义   。
    可以提供一下,按这个方法,第一次烧录每个步聚该怎么做?  然后程序升级的时候(第二次烧录)该怎么做?
    纸上得到终觉浅,绝知此事要躬行。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    34

    主题

    323

    回帖

    573

    积分

    高级会员

    积分
    573
    发表于 2023-6-15 08:42:06 | 显示全部楼层
    飞捷 发表于 2023-6-15 08:41
    可以提供一下 ID号加密  同时  程序加密后传输    的操作方法吗?    程序加密后传输是为了脱机下载器不会 ...

    我一般第一次烧录都会清空EPPROM。
    纸上得到终觉浅,绝知此事要躬行。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 134 天

    [LV.7]常住居民III

    34

    主题

    323

    回帖

    573

    积分

    高级会员

    积分
    573
    发表于 2023-6-15 08:43:44 | 显示全部楼层
    程序加密后传输  因为第一次得更新密钥在单片机里面,这样会不会占用单片机的ROM或者RAM?
    纸上得到终觉浅,绝知此事要躬行。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9204

    回帖

    1万

    积分

    管理员

    积分
    13916
     楼主| 发表于 2023-6-15 09:42:14 | 显示全部楼层
    不占用你额外空间,是专门的系统区,一次烧录搞定
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    10 小时前
  • 签到天数: 131 天

    [LV.7]常住居民III

    17

    主题

    62

    回帖

    311

    积分

    中级会员

    积分
    311
    发表于 2023-6-25 11:14:43 | 显示全部楼层
    我有2个疑问,请教下:
    1,如果客户手里的芯片是新的,没有更新过用户密钥。如果这个项目发布程序选择的是带了密钥的文件,是不是显示升级成功,但是没有功能?

    2,所以如果客户手里的芯片不知道有没更新过用户密钥,在制作发布项目程序时,要勾选:下载用户程序前先更新用户密钥。此时点 发布项目程序,好像会提示 发布项目包含密钥文件?

    点评

    两个都是对的,但是对于第二个问题一般出厂时建议下载一次密钥进去,之后所有发布的版本都不带密钥,因为一旦带了密钥的话就会有被批量复制的可能  详情 回复 发表于 2023-6-26 11:17
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-4-25 17:44 , Processed in 0.075260 second(s), 69 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表