System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及单片机,尤其涉及一种防拷贝系统及防拷贝方法。
技术介绍
1、目前,单片机是嵌入式系统常见的核心处理器芯片,在生活和生产的各个领域都有着广泛的应用。随着互联网技术的普及,单片机可以通过互联网被远程控制,可以自动采集数据以及将采集的数据发送给上位机,进行数据处理。在工业生产中,通过部署单片机网络,可极大简化生产流程,方便生产管理。但在给用户提供极大便利的同时,单片机程序也可被非授权人员通过网络拷贝到其他单片机中,给原厂造成损失。
2、在一种现有技术中,使用集成了授权模块的单片机专用烧录器,这种烧录器通过特定的方式与单片机建立认证连接,并通过外部的加密芯片与单片机进行交互,对单片机内部程序进行授权,确保程序在获得合法身份后能够正常运行。
3、现有技术需要额外硬件介入,在已知破解手段的情况下风险较高,导致无法进行有效的防拷贝保护。
技术实现思路
1、本专利技术提供了一种防拷贝方法、系统、电子设备及存储介质,以实现有效的防拷贝保护。
2、第一方面,为了解决上述技术问题,本专利技术提供了一种防拷贝方法,包括:
3、获取烧录程序的sn码和被烧录单片机的sn码;
4、根据所述烧录程序的sn码和所述被烧录单片机的sn码,进行第一校验,得到第一校验结果;
5、当所述第一校验结果为校验正确时,所述烧录程序根据通讯协议将数据写入所述被烧录单片机的flash中;
6、对所述flash中写入的数据进行第二校验和数
7、若第二校验结果为校验正确则拷贝成功,校验错误则进入安全模式;
8、根据预设时间,对所述被烧录单片机中已经拷贝成功的数据进行第三校验,得到第三校验结果;
9、若所述第三校验结果为校验正确则控制程序正常运行,若所述第三校验结果为校验错误则控制程序进入安全模式。
10、在一种可选的实施方式中,所述获取烧录程序的sn码和被烧录单片机的sn码,包括:
11、获取所述被烧录单片机内部寄存器的唯一标识;
12、其中,所述唯一标识是所述被烧录单片机生产过程中生成的;
13、根据所述唯一标识,进行计算变换,得到所述被烧录单片机唯一特征;
14、根据所述被烧录单片机唯一特征和设备信息,进行计算变换,得到所述被烧录单片机的sn码;
15、将所述sn码分别保存到所述烧录程序和所述被烧录单片机,得到所述烧录程序的sn码和所述被烧录单片机的sn码。
16、在一种可选的实施方式中,所述根据所述唯一标识,进行计算变换,得到所述被烧录单片机唯一特征,包括:
17、所述计算变换是通过sha-256散列函数进行散列映射;
18、根据所述唯一标识,通过在消息末尾添加1和0进行填充,得到第一填充消息;
19、其中,所述第一填充消息的长度为448位的整数倍;
20、在所述第一填充消息的末尾添加一个64位的表示,得到第二填充消息;
21、初始化一个包含8个32位寄存器的向量;
22、将所述第二填充消息分割成多个512位的数据块,对每个所述512位的数据块执行64次循环迭代;
23、其中,所述循环迭代包括使用逻辑函数和循环位移操作;
24、更新所述寄存器的值,得到最终的寄存器值;
25、根据所述最终的寄存器值,进行拼接操作,得到所述被烧录单片机唯一特征;
26、其中,所述被烧录单片机唯一特征是一个256位的散列值。
27、在一种可选的实施方式中,所述根据所述被烧录单片机唯一特征和设备信息,进行计算变换,得到所述被烧录单片机的sn码,包括:
28、所述设备信息包括设备序列号、生产批次、设备版本、设备id、设备序列号、软件校验码、通信协议版本、随机种子;
29、根据所述被烧录单片机唯一特征和设备信息,按顺序进行合并,得到组合字符串;
30、根据所述组合字符串,通过sha-256散列函数进行散列映射,得到所述被烧录单片机的sn码。
31、在一种可选的实施方式中,所述根据所述烧录程序的sn码和所述被烧录单片机的sn码,进行第一校验,得到第一校验结果,包括:
32、检查所述被烧录单片机是否包含sn状态机,若是,则对所述烧录程序的sn码和所述被烧录单片机的sn码进行一致性比较,得到第一校验结果;若否,则判定为校验错误;
33、其中,所述sn状态机是用于存储和校验sn码的状态机。
34、在一种可选的实施方式中,所述对所述flash中写入的数据进行第二校验和数据保存备份,得到第二校验结果,包括:
35、所述写入的数据包括所述被烧录单片机的固件代码,将所述写入的数据分成多个数据包;
36、获取每个数据包的包号和首地址;
37、根据所述数据包的首地址,进行保存操作,得到所述数据包的备份数据;
38、根据所述包号的顺序,将所述数据包写入所述flash中,对所述数据包进行第二校验,得到所述数据包的校验结果;
39、当所述校验结果是校验错误时,使用所述备份数据的首地址来恢复上一个正确写入的数据包;
40、当所述校验结果是校验正确时,重复所述写入的数据包括所述被烧录单片机的固件代码,将所述写入的数据分成多个数据包的步骤,直到所有数据包都成功写入并校验通过;
41、所述第二校验结果包含所述每个数据包的校验结果。
42、在一种可选的实施方式中,所述对所述数据包进行第二校验,得到所述数据包的校验结果,包括:
43、根据循环冗余校验算法,对所述数据包的内容进行计算,得到所述数据包的第一校验值;
44、将所述第一校验值与预设的校验值进行一致性比较,得到所述数据包的校验结果。
45、在一种可选的实施方式中,所述根据预设时间,对所述被烧录单片机中已经拷贝成功的数据进行第三校验,得到第三校验结果,包括:
46、在所述预设时间后,从所述被烧录单片机的flash中读取已写入的数据;
47、其中,所述已写入的数据包含多个数据包;
48、根据循环冗余校验算法,对每个数据包的内容进行计算,得到所述每个数据包的第二校验值;
49、将所述第二校验值与所述第一校验值进行比较,得到比较结果;
50、判断所述比较结果是否一致,若是则校验正确;若否,则校验错误;
51、所述第三校验结果包含所述每个数据包的比较结果。
52、第二方面,本专利技术提供了一种防拷贝系统,包括:
53、sn码获取模块,用于获取烧录程序的sn码和被烧录单片机的sn码;
54、第一校验模块,用于根据所述烧录程序的sn码和所述被烧录单片机的sn码,进行第一校验,得到第一校验结果;
...
【技术保护点】
1.一种防拷贝系统,其特征在于,包括:
2.一种防拷贝方法,其特征在于,包括:
3.根据权利要求2所述的防拷贝方法,其特征在于,所述获取烧录程序的SN码和被烧录单片机的SN码,包括:
4.根据权利要求3所述的防拷贝方法,其特征在于,所述根据所述唯一标识,进行计算变换,得到所述被烧录单片机唯一特征,包括:
5.根据权利要求3所述的防拷贝方法,其特征在于,所述根据所述被烧录单片机唯一特征和设备信息,进行计算变换,得到所述被烧录单片机的SN码,包括:
6.根据权利要求2所述的防拷贝方法,其特征在于,所述根据所述烧录程序的SN码和所述被烧录单片机的SN码,进行第一校验,得到第一校验结果,包括:
7.根据权利要求2所述的防拷贝方法,其特征在于,所述对所述FLASH中写入的数据进行第二校验和数据保存备份,得到第二校验结果,包括:
8.根据权利要求7所述的防拷贝方法,其特征在于,所述对所述数据包进行第二校验,得到所述数据包的校验结果,包括:
9.根据权利要求8所述的防拷贝方法,其特征在于,所述根据预
10.一种电子设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求2至9中任意一项所述的防拷贝方法。
...【技术特征摘要】
1.一种防拷贝系统,其特征在于,包括:
2.一种防拷贝方法,其特征在于,包括:
3.根据权利要求2所述的防拷贝方法,其特征在于,所述获取烧录程序的sn码和被烧录单片机的sn码,包括:
4.根据权利要求3所述的防拷贝方法,其特征在于,所述根据所述唯一标识,进行计算变换,得到所述被烧录单片机唯一特征,包括:
5.根据权利要求3所述的防拷贝方法,其特征在于,所述根据所述被烧录单片机唯一特征和设备信息,进行计算变换,得到所述被烧录单片机的sn码,包括:
6.根据权利要求2所述的防拷贝方法,其特征在于,所述根据所述烧录程序的sn码和所述被烧录单片机的sn码,进行第一校验,得到第一校验结...
【专利技术属性】
技术研发人员:李荣城,李兴福,
申请(专利权)人:深圳市云希谷科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。