一种温控类程序的防逆向破解方法和系统与流程

文档序号:11729654阅读:385来源:国知局
一种温控类程序的防逆向破解方法和系统与流程

本发明涉及单片机的核心算法保护领域,尤其涉及一种温控类程序的防逆向破解方法和系统。



背景技术:

现有的电子产品研发投入越来越大,叠代越来越快,很多工厂因为缺少研发投入和技术沉淀,便通过抄袭硬件和破解芯片代码的方式达到快速量产的目的,严重的破坏了市场的公平和损害了研发公司的利益。

为了防止未经授权访问和拷贝芯片内的程序,大部分芯片都带有加密锁定位或加密字节,以保护单片机的代码。目前芯片的破解主要有以下两种方式:非侵入式和侵入式。侵入式利用芯片设计或编程时序中的漏洞对芯片进行破解,随着芯片技术的发展,目前这种情况少之又少。侵入式的方式是破坏芯片封装,利用半导体测试设备等仪器找到芯片保护点并进行修复,然后利用特殊编程器读出烧录文件。以上两种方式都只能针对被选定的项目进行逐一破解,且得到的都为二进制文件,无法有效的还原成原代码,也就无法获取代码中的核心算法,更无法有效应用到新项目,对研发公司的伤害仅限于当前项目,不会造成持续性损失。

但是目前市场上开始出现了软件逆向工程破解方法,此种破解往往是行业内对这类产品非常熟悉的竞争对手所采用的,采用模拟芯片的正常工作状态,对芯片的输入状态进行多种状态维度的模拟,记录核心算法对于输入信号的处理结果,从而逆向推理出核心算法,达到破解技术的目的,例如:输入1得到2,输入2可以得到4,就可以间接推理出算法为乘于2。此种破解方式因为可以完整推理出核心算法,造成的破坏远远大于单纯项目程序的破解,破坏性持续深远,破解后可以直接追上被破解公司的技术水平,这也是公司最不愿意面对的。

现有的温控类程序的工作模式为:核心算法根据输入信号的逻辑状态,进行运算,然后直接输出控制信号。在这种工作模式下,破解人员可以罗列出输入信号的各种可能信号状态,然后不停的尝试强行置入信号,并观察输出信号的反馈情况,逆向推理出核心算法,从而提取出程序的核心部分,然后进行抄袭和应用。

中国专利公开号cn103761456a,公开日2014年4月30日,发明的名称为一种单片机核心代码防破解的方法,该申请案公开了一种将单片机内核心代码以密文形式存在特定的存储区域,mpu内存保护模块产生一个中断,在中断中,采用aes模块将密文代码解密成明文代码,crc校验正确后,将明文代码回传到特定存储区域,中断返回,单片机执行特定存储区域的明文代码,代码执行完毕后,aes模块将特定存储区域的明文代码加密成密文代码,crc校验正确后,将密文代码回传到特定存储区域。其不足之处在于:算法需要分区域存储并加密,执行时又需要解密和校验,极其浪费程序空间,而且算法复杂并不适用于大多数的单片机应用,更重要的是以上方法无法保护软件逆向破解的方式。简而言之,以上专利是把核心算法切块并且加密保存,无法防止逆向破解。



技术实现要素:

本发明旨在提供一种温控类程序的防逆向破解方法和系统,以解决现有的无法防止温控类程序的核心算法被逆向破解的问题。为此,本发明采用如下技术方案:

一种温控类程序的防逆向破解方法,包括以下步骤:

s1.采样温度数据并保存到数组中,然后进入步骤s2;

s2.对保存在数组中的温度数据和当时的控制信号进行综合性的数据运算,得到关于温度的评价数据,然后进入步骤s3;

s3.对s2步骤得到的评价数据与预估工作数据进行比较,如果在预估范围内,则视为正常工作,进入步骤s4,否则,视为在破解工作状态中,进入步骤s5。

s4.对读取到的温度数据进行核心算法运算,计算出所处的工作状态及所需要的对应加热功率和加热时间,并将运算结果输出,然后进入步骤s6。

s5.对读取到的温度数据进行干扰算法运算,并将运算结果输出,然后进入步骤s6。

s6.接收步骤s4或s5输出的数据,并进行处理。

进一步地,所述评价数据包括:温度的连续性系数、温度的变化趋势、温度的变化系数和温度的长周期波动系数的一种或几种的组合。

进一步地,所述干扰算法包括简单控制算法或自毁算法。

一种温控类程序的防逆向破解系统,包括输入信号模块、监控模块、分析判断模块、核心算法模块、干扰算法模块和输出控制模块,其中:

输入信号模块,用于采样温度数据并保存到数组;

监控模块,用于对保存在数组中的温度数据和当时的控制信号进行综合性的数据运算,得到关于温度的评价数据;

分析判断模块,用于对监控模块得到的评价数据与预估工作数据进行比较,如果在预估范围内,则视为正常工作,并反馈给核心算法模块,否则,视为在破解工作状态中,并反馈给干扰算法模块;

核心算法模块,用于对读取到的温度数据进行核心算法运算,计算出所处的工作状态及所需要的对应加热功率和加热时间,并将运算结果输出至输出控制模块;

干扰算法模块,对读取到的温度数据进行干扰算法运算,并将运算结果输出至输出控制模块;

输出控制模块,用于将核心算法模块或干扰算法模块输出的数据进行处理。

进一步地,所述评价数据包括:温度的连续性系数、温度的变化趋势、温度的变化系数和温度的长周期波动系数的一种或几种的组合。

进一步地,所述干扰算法包括简单控制算法或自毁算法。

本发明采用以上技术方案,具有的有益效果是,本发明可以实时监测单片机是否处在合理且符合实际使用的状态,一量发现不在以上合理状态,立即停用单片机中的核心算法,然后输出干扰算法或者自毁算法,达到保护核心算法的目的,提高逆向破解难度和成本。

附图说明

图1示出了根据本发明实施例的温控类程序的防逆向破解方法的流程图;

图2示出了根据本发明实施例的温控类程序的防逆向破解系统的示意框图。

具体实施方式

为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。

现结合附图和具体实施方式对本发明进一步说明。参照图1,描述一种温控类程序的防逆向破解方法。该方法包括以下步骤:

s1.采样温度数据并保存到数组中,然后进入步骤s2。

s2.对保存在数组中的温度数据和当时的控制信号进行综合性的数据运算,得到关于温度的评价数据,然后进入步骤s3。其中,控制信号是指控制加热器件的信号,例如是否触发加热,当前的加热功率控制在多少和/或加热时间多长等。关于温度的评价数据可包括温度的连续性系数、温度的变化趋势、温度的变化系数和温度的长周期波动系数的一种或几种的组合。这是因为温控类的逆向破解往往会采用以下几个测试行为:

1、输入信号往往会通过电阻箱或者直流电源替代原先的输入信号,方便破解时控制,且精准不过调。

2、破解者为了更快测试,会快速调整变化值,输入信号就会出现阶越性或断续性,不符合温控类产品的温度周期变化特性。因此,可以计算出温度的连续性系数并将其作为评价数据。

3、为了逻辑推演,破解才往往一边调整输入信号一边观察控制信号,此时很容易出现控制信号明明在全功率加热,可是输入的信号出现温度下降状态,不符合整机的常规工作方向。温控类产品正常加热时,温度在经历过短暂降低后都会讯速上升,不会出现不断降低温度的情况。因此,可以计算出温度的变化趋势和变化系数并将其作为评价数据。

4、整机的工作状态有一个合理的温度波动范围,也可以理解为长时间的一个加热频次,破解时,加快测试的过程中往往会增加频次,停止调整时,又会降低频次。因此,可以计算出长周期的温度波动系数并将其作为评价数据。

当然,关于温度的评价数据不仅限于以上四种数据,也包括本领域技术人员普遍采用的其它评价数据或公知的评价数据。

s3.将步骤s2中得到的评价数据与预估工作数据进行比较,例如,温度的连续性系数是否在预设范围,温度的趋势是否与正在加热,加热功率的条件是否相似,温度的变化系数是否与工作时和不工作时的系数相等或温度的长周期波动系数是否在预设范围;如果在预估范围内,则视为正常工作,进入步骤s4,否则,视为在破解工作状态中,进入步骤s5。

s4:对读取到的温度数据进行核心算法运算,计算出所处的工作状态、所需要的对应加热功率和加热时间,并将运算结果输出,然后进入步骤s6。例如:熨斗需要计算出加热的时间和当前所处的是蒸汽状态还是干烧状态,以及分别对应的控制温度点,例如:熨斗第四档在干烧状态会维持在200±10℃的范围,当出现温度低于180℃时,且温度还在下降,说明此时打开蒸汽了,此时需要降低加热的控温温度点并且增加加热时间,以免断蒸汽且保护电热盘不至少温度过高烧坏保险丝。咖啡机需要计算出当前的加热功率和加热的时间,例如:咖啡机到咖啡粉需要恒定的91℃出水温度才能达到相同的咖啡口感,但是水箱可能会添加不同温度的水,此时需要判断进水温度控制结合水流量大小控制相应的加热功率和加热时间。煎烤器需要计算出当前是在烤肉状态还是干烧状态并分别算出加热的时间和停止加热的时间。

s5:对读取到的温度数据进行干扰算法运算,并将运算结果输出,然后进入步骤s6。此算法可以是简单的控制算法或者是自毁算法。简单算法例如:仅设定恒功率到达某个温度就加热,低于这个温度就停止加热,可以迷惑破解者的逻辑推演。自毁算法如:开启不判断温度永久加热功能,直接烧毁发热装置,又或者开启电路的最大功率,让电源工作一小段时间后就永久失效,起到无法继续正常工作的作用。干扰算法都可以迷惑或者中止破解工作。

s6:接收s4或s5步骤输出的信号,并进行处理。

参照图2,描述一种温控类程序的防逆向破解系统1,包括信号输入模块10、监控计算模块20、分析判断模块30、核心算法模块40、干扰算法模块50和输出控制模块60,其中:

信号输入模块10,用于采样温度数据并保存到数组;

监控计算模块20,用于对保存在数组中的温度数据和当时的控制信号进行综合性的数据运算,得到关于温度的评价数据;

分析判断模块30,用于对监控模块20得到的评价数据与预估工作数据进行比较,如果在预估范围内,则视为正常工作,并反馈给核心算法模块40,否则,视为在破解工作状态中,并反馈给干扰算法模块50;

核心算法模块40,用于对读取到的温度数据进行核心算法运算,计算出所处的工作状态及所需要的对应加热功率和加热时间,并将运算结果输出至输出控制模块60;

干扰算法模块50,对读取到的温度数据进行干扰算法运算,并将运算结果输出至输出控制模块60;

输出控制模块60,用于将核心算法模块40或干扰算法模块50输出的数据进行处理。

进一步地,所述评价数据包括:温度的连续性系数、温度的变化趋势、温度的变化系数和温度的长周期波动系数的一种或几种的组合。

进一步地,所述干扰算法包括简单控制算法或自毁算法。

尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1