CN106951746B - 一种温控类程序的防逆向破解方法和系统 - Google Patents

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

Info

Publication number
CN106951746B
CN106951746B CN201710276664.4A CN201710276664A CN106951746B CN 106951746 B CN106951746 B CN 106951746B CN 201710276664 A CN201710276664 A CN 201710276664A CN 106951746 B CN106951746 B CN 106951746B
Authority
CN
China
Prior art keywords
temperature
data
module
algorithm
heating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710276664.4A
Other languages
English (en)
Other versions
CN106951746A (zh
Inventor
刘家斌
刘全喜
魏肃
刘双春
柴智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Chipsun Science and Technology Co Ltd
Original Assignee
Xiamen Chipsun Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen Chipsun Science and Technology Co Ltd filed Critical Xiamen Chipsun Science and Technology Co Ltd
Priority to CN201710276664.4A priority Critical patent/CN106951746B/zh
Publication of CN106951746A publication Critical patent/CN106951746A/zh
Application granted granted Critical
Publication of CN106951746B publication Critical patent/CN106951746B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Control Of Temperature (AREA)

Abstract

本发明涉及一种温控类程序的防逆向破解方法,方法包括以下步骤:S1.采样温度数据并保存到数组中;S2.对温度数据进行综合性的数据运算,得到关于温度的评价数据;S3.进行比较分析,如果在系统的预估范围内,则进入步骤S4,否则进入步骤S5;S4.对读取到的温度数据进行核心算法运算,并将运算结果输出,然后进入步骤S6;S5.对读取到的温度数据进行干扰算法运算,并将运算结果输出,然后进入步骤S6;S6.接收步骤S4或S5输出的数据并进行处理。本发明还涉及一种温控类程序的防逆向破解系统,包括输入信号模块、监控模块、分析判断模块、核心算法模块、干扰算法模块和输出控制模块。

Description

一种温控类程序的防逆向破解方法和系统
技术领域
本发明涉及单片机的核心算法保护领域,尤其涉及一种温控类程序的防逆向破解方法和系统。
背景技术
现有的电子产品研发投入越来越大,叠代越来越快,很多工厂因为缺少研发投入和技术沉淀,便通过抄袭硬件和破解芯片代码的方式达到快速量产的目的,严重的破坏了市场的公平和损害了研发公司的利益。
为了防止未经授权访问和拷贝芯片内的程序,大部分芯片都带有加密锁定位或加密字节,以保护单片机的代码。目前芯片的破解主要有以下两种方式:非侵入式和侵入式。侵入式利用芯片设计或编程时序中的漏洞对芯片进行破解,随着芯片技术的发展,目前这种情况少之又少。侵入式的方式是破坏芯片封装,利用半导体测试设备等仪器找到芯片保护点并进行修复,然后利用特殊编程器读出烧录文件。以上两种方式都只能针对被选定的项目进行逐一破解,且得到的都为二进制文件,无法有效的还原成原代码,也就无法获取代码中的核心算法,更无法有效应用到新项目,对研发公司的伤害仅限于当前项目,不会造成持续性损失。
但是目前市场上开始出现了软件逆向工程破解方法,此种破解往往是行业内对这类产品非常熟悉的竞争对手所采用的,采用模拟芯片的正常工作状态,对芯片的输入状态进行多种状态维度的模拟,记录核心算法对于输入信号的处理结果,从而逆向推理出核心算法,达到破解技术的目的,例如:输入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输出的数据进行处理。
进一步地,所述评价数据包括:温度的连续性系数、温度的变化趋势、温度的变化系数和温度的长周期波动系数的一种或几种的组合。
进一步地,所述干扰算法包括简单控制算法或自毁算法。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

Claims (4)

1.一种温控类程序的防逆向破解方法,其特征在于,包括以下步骤:
S1.采样温度数据并保存到数组中,然后进入步骤S2;
S2.对保存在数组中的温度数据和当时的控制信号进行数据运算,得到关于温度的评价数据,所述评价数据包括:温度的连续性系数、温度的变化趋势、温度的变化系数和温度的长周期波动系数的一种或几种的组合,然后进入步骤S3;
S3.对S2步骤得到的评价数据与预估工作数据进行比较,如果在预估范围内,则视为正常工作,进入步骤S4,否则,视为在破解工作状态中,进入步骤S5;
S4.对读取到的温度数据进行核心算法运算,计算出所处的工作状态及所需要的对应加热功率和加热时间,并将运算结果输出,然后进入步骤S6;
S5.对读取到的温度数据进行干扰算法运算,并将运算结果输出,然后进入步骤S6;
S6.接收步骤S4或S5输出的数据,并进行处理。
2.如权利要求1所述的温控类程序的防逆向破解方法,其特征在于,所述干扰算法包括简单控制算法或自毁算法,所述简单控制算法包括:仅设定恒功率到达某个温度就加热,低于这个温度就停止加热;所述自毁算法包括:开启不判断温度永久加热功能,直接烧毁发热装置,或者开启电路的最大功率,让电源工作一小段时间后就永久失效,起到无法继续正常工作的作用。
3.一种温控类程序的防逆向破解系统,其特征在于:包括信号输入模块、监控计算模块、分析判断模块、核心算法模块、干扰算法模块和输出控制模块,其中:
信号输入模块,用于采样温度数据并保存到数组;
监控计算模块,用于对保存在数组中的温度数据和当时的控制信号进行数据运算,得到关于温度的评价数据,所述评价数据包括:温度的连续性系数、温度的变化趋势、温度的变化系数和温度的长周期波动系数的一种或几种的组合;分析判断模块,用于对监控模块得到的评价数据与预估工作数据进行比较,如果在预估范围内,则视为正常工作,并反馈给核心算法模块,否则,视为在破解工作状态中,并反馈给干扰算法模块;
核心算法模块,用于对读取到的温度数据进行核心算法运算,计算出所处的工作状态及所需要的对应加热功率和加热时间,并将运算结果输出至输出控制模块;
干扰算法模块,对读取到的温度数据进行干扰算法运算,并将运算结果输出至输出控制模块;
输出控制模块,用于将核心算法模块或干扰算法模块输出的数据进行处理。
4.如权利要求3所述的温控类程序的防逆向破解系统,其特征在于:所述干扰算法包括简单控制算法或自毁算法,所述简单控制算法包括:仅设定恒功率到达某个温度就加热,低于这个温度就停止加热;所述自毁算法包括:开启不判断温度永久加热功能,直接烧毁发热装置,或者开启电路的最大功率,让电源工作一小段时间后就永久失效,起到无法继续正常工作的作用。
CN201710276664.4A 2017-04-25 2017-04-25 一种温控类程序的防逆向破解方法和系统 Active CN106951746B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710276664.4A CN106951746B (zh) 2017-04-25 2017-04-25 一种温控类程序的防逆向破解方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710276664.4A CN106951746B (zh) 2017-04-25 2017-04-25 一种温控类程序的防逆向破解方法和系统

Publications (2)

Publication Number Publication Date
CN106951746A CN106951746A (zh) 2017-07-14
CN106951746B true CN106951746B (zh) 2020-01-21

Family

ID=59477549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710276664.4A Active CN106951746B (zh) 2017-04-25 2017-04-25 一种温控类程序的防逆向破解方法和系统

Country Status (1)

Country Link
CN (1) CN106951746B (zh)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1065346C (zh) * 1994-10-20 2001-05-02 联华电子股份有限公司 软件保护方法及装置
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
CN1485857A (zh) * 2002-09-27 2004-03-31 北京华虹集成电路设计有限责任公司 加密集成电路防电源攻击方法
JP4905480B2 (ja) * 2009-02-20 2012-03-28 富士ゼロックス株式会社 プログラム難読化プログラム及びプログラム難読化装置
CN101819611B (zh) * 2009-02-26 2012-08-08 周宏建 输入数据即时比对防护方法及其硬件
EP2234031A1 (en) * 2009-03-24 2010-09-29 SafeNet, Inc. Obfuscation
CN102592068B (zh) * 2011-09-05 2018-04-27 工业和信息化部电子第五研究所 采用功耗分析检测fpga芯片中恶意电路的方法及其系统
CN103761456B (zh) * 2013-10-12 2016-05-11 利尔达科技集团股份有限公司 一种单片机核心代码防破解的方法
CN106156550A (zh) * 2016-07-04 2016-11-23 广州市鸿远电子科技有限公司 一种芯片防破解的方法

Also Published As

Publication number Publication date
CN106951746A (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
US8892903B1 (en) Detection of power analysis attacks
Götzfried et al. ARMORED: CPU-bound encryption for Android-driven ARM devices
US10771236B2 (en) Defending against a side-channel information attack in a data storage device
US9250671B2 (en) Cryptographic logic circuit with resistance to differential power analysis
CN102799819A (zh) 一种嵌入式软件安全保护系统
CN103903043B (zh) 一种智能卡三位一体抗侧信道攻击防护方法和系统
RU2007111843A (ru) Случайный пароль, автоматически формируемый базовой системой ввода-вывода (bios) для защиты устройства хранения данных
CN103761456B (zh) 一种单片机核心代码防破解的方法
US8832462B2 (en) Protecting against differential power analysis attacks on sensitive data
CN103440462A (zh) 一种提高安全微处理器安全保密性能的嵌入式控制方法
CN108537048B (zh) 一种加密固态硬盘与授权计算机的安全关联方法及系统
WO2023274010A1 (zh) 一种密钥派生方法、装置、设备及存储介质
CN106951746B (zh) 一种温控类程序的防逆向破解方法和系统
CN106529221A (zh) 一种fpga程序防拷贝方法和pci‑e密码卡
EP3742315B1 (en) Apparatuses and methods involving a circuit for detecting a hardware-trojan
CN106656473B (zh) 一种安全的des算法的mac计算方法及系统
Leng Smart card applications and security
CN108268781A (zh) 电子装置的电子元件、启动电子装置的方法及加密方法
CN207530855U (zh) 分组密码芯片低功耗攻击防御装置
CN116302563A (zh) 一种边缘计算方法及边缘计算服务系统
Jose et al. A memory architecture using linear and nonlinear feedback shift registers for data security
CN105426702A (zh) 基于安卓操作系统的应用程序加密解密方法和装置
WO2009057098A1 (en) Software protection against fault attacks
CN105095780A (zh) 一种芯片内测试端口的访问方法及装置
CN105376046B (zh) 一种分组密码防攻击的加解密方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant