System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及单片机应用,具体涉及一种防破解单片机程序的方法及单片机、可读存储程序。
技术介绍
1、在单片机程序开发过程中,公司软件工程师付出了大量时间和精力,精心设计并开发出一款高质量的产品程序。然而,当这些产品程序投放市场后,尽管采用了简单的代码加密措施,却很容易被竞争对手通过逆向工程等手段破解。这种情况不仅削弱了公司的竞争优势,也对工程师们的辛勤劳动和技术成果造成了损害。为了保护知识产权和技术秘密,公司需要考虑更为复杂和高级的加密方法,以增强程序的安全性,防止未经授权的复制和使用。
技术实现思路
1、本专利技术主要解决的技术问题是:提供一种能够保护单片机程序的防破解单片机程序的方法及单片机。
2、根据第一方面,一种实施例中提供一种防破解单片机程序的方法,用于单片机和上位机,包括:
3、上位机向单片机发送程序的读取命令;
4、单片机对所述读取命令进行解析,以向上位机发送单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息;
5、上位机对所述前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,以生成第一哈希值;
6、单片机获取包含所述第一哈希值的传输数据,并将所述传输数据进行存储;
7、单片机上电工作时,单片机读取单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息,并将所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进
8、一种实施例中,在所述上位机向单片机发送程序的读取命令时,对所述读取命令进行加密,包括:
9、上位机将所述读取命令整理为密文块;
10、上位机利用预设的密钥和初始化向量对所述密文块进行加密。
11、一种实施例中,所述上位机对所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,以生成第一哈希值,包括:
12、上位机将所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息合并成第一字节序列,并对所述第一字节序列进行加密。
13、一种实施例中,所述对对所述第一字节序列进行加密,包括:
14、上位机将所述第一字节序列填充为设定位的第一加密数据块,并获取4个设定位的初始化密钥,利用所述初始化密钥对所述第一加密数据块进行加密,以生成第一哈希值。
15、一种实施例中,所述单片机读取单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息,并将所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,以生成第二哈希值,包括:
16、单片机将所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息合并成第二字节序列,并对所述第二字节序列进行加密。
17、一种实施例中,所述对所述第二字节序列进行加密,包括:
18、单片机将所述第二字节序列填充为设定位的第二加密数据块,并获取4个设定位的初始化密钥,利用所述初始化密钥对所述第二加密数据块进行加密,以生成第二哈希值。
19、一种实施例中,所述单片机对所述传输数据进行解析,以确定第一哈希值,包括:
20、所述传输数据的字节末尾为第一校验码;
21、单片机对去除了所述第一校验码的传输数据进行重新计算,以确定出第二校验码;当所述第一校验码和所述第二校验码相同时,单片机对所述传输数据进行解析,以确定第一哈希值。
22、根据第二方面,一种实施例中提供一种单片机,包括:
23、向上位机发送单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息;
24、获取包含所述第一哈希值的传输数据,并将所述传输数据进行存储;
25、在上电工作时,
26、读取单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息,并将所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,以生成第二哈希值;
27、对所述传输数据进行解析,以确定第一哈希值,并对比所述第一哈希值和所述第二哈希值,如果第一哈希值和第二哈希值一致,则正常运行。
28、一种实施例中,所述读取单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息,并将所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,以生成第二哈希值,包括:
29、将单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息合并成第二字节序列;
30、将所述第二字节序列填充为设定位的第二加密数据块;
31、获取4个设定位的初始化密钥,利用所述初始化密钥对所述第二加密数据块进行加密,以生成第二哈希值。
32、根据第三方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现上述任意一种实施例中所述的方法。
33、根据上述实施例的一种防破解单片机程序的方法及单片机、可读存储程序,在该方法中上位机向单片机发送程序的读取命令,单片机对读取命令进行解析,从而单片机将单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息发送给上位机,上位机对单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,从而生成第一哈希值。单片机将包含第一哈希值的传输数据进行存储,在上电工作时,单片机读取自身的单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,以生成第二哈希值,在第一哈希值和第二哈希值相同时,则单片机内的程序正常运行。本申请利用上位机生成的第一哈希值,和自身在上电生成的第二哈希值进行比较,从而保证单片机在运行程序时的安全,在单片机程序被破解后,第二哈希值会发生改变,那么第一哈希值和第二哈希值便不相同,从而程序停止运行,以此保证了单片机程序被破解。
本文档来自技高网...【技术保护点】
1.一种防破解单片机程序的方法,其特征在于,用于单片机和上位机,包括:
2.如权利要求1所述的防破解单片机程序的方法,其特征在于,在所述上位机向单片机发送程序的读取命令时,对所述读取命令进行加密,包括:
3.如权利要求1所述的防破解单片机程序的方法,其特征在于,所述上位机对所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,以生成第一哈希值,包括:
4.如权利要求3所述的防破解单片机程序的方法,其特征在于,所述对所述第一字节序列进行加密,包括:
5.如权利要求1所述的防破解单片机程序的方法,其特征在于,所述单片机读取单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息,并将所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,以生成第二哈希值,包括:
6.如权利要求5所述的防破解单片机程序的方法,其特征在于,所述对所述第二字节序列进行加密,包括:
7.如权利要求1所述的防破解单片机程序的方法,其特征在于,所述单片机对
8.一种单片机,其特征在于,包括:
9.如权利要求8所述的单片机,其特征在于,所述读取单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息,并将所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,以生成第二哈希值,包括:
10.一种计算机可读存储介质,其特征在于,所述介质上存储有程序,所述程序能够被处理器执行以实现如权利要求1-7中任一项所述的方法。
...【技术特征摘要】
1.一种防破解单片机程序的方法,其特征在于,用于单片机和上位机,包括:
2.如权利要求1所述的防破解单片机程序的方法,其特征在于,在所述上位机向单片机发送程序的读取命令时,对所述读取命令进行加密,包括:
3.如权利要求1所述的防破解单片机程序的方法,其特征在于,所述上位机对所述单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息进行合并加密,以生成第一哈希值,包括:
4.如权利要求3所述的防破解单片机程序的方法,其特征在于,所述对所述第一字节序列进行加密,包括:
5.如权利要求1所述的防破解单片机程序的方法,其特征在于,所述单片机读取单片机程序中前设定字节的程序代码、单片机的当前时间和单片机的设备特定信息,并将所述单片机程序中前设定字节的程序代码、单片机的当前时间和单...
【专利技术属性】
技术研发人员:彭丹,朱卫,
申请(专利权)人:深圳美格尔生物医疗集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。