CN113836497A - 程序运行方法、集成电路芯片及相关装置 - Google Patents
程序运行方法、集成电路芯片及相关装置 Download PDFInfo
- Publication number
- CN113836497A CN113836497A CN202010590321.7A CN202010590321A CN113836497A CN 113836497 A CN113836497 A CN 113836497A CN 202010590321 A CN202010590321 A CN 202010590321A CN 113836497 A CN113836497 A CN 113836497A
- Authority
- CN
- China
- Prior art keywords
- program
- preset
- protection
- interface
- program interface
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000015654 memory Effects 0.000 claims description 68
- 238000012545 processing Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 16
- 238000012544 monitoring process Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting 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)
- Telephone Function (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种程序运行方法、集成电路芯片及相关装置,程序运行方法包括:应用程序调用的第一预设程序接口,其中应用程序不能直接访问保护程序;第一预设程序接口调用第二预设程序接口,第二预设程序接口直接调用保护程序;将保护程序返回至应用程序,并利用保护程序运行应用程序。通过上述方式,本发明能够在保护程序的同时,减小集成电路面积并降低成本。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种程序运行方法、集成电路芯片及相关装置。
背景技术
在计算机技术领域,集成电路厂商往往希望其开发的核心代码、机密算法等需要保护的程序能够不被外界破解,以维持其产品的市场竞争力。目前,一般采用加解密的方式保护程序,即先对需要保护的程序进行加密,在处理器运行前再对其进行解密。然而,这种方式需要独立的处理器或控制单元完成加解密处理,故需额外增加处理器或控制单元的数量,导致集成电路面积大且成本高,不利于产品推广。有鉴于此,如何在保护程序的同时,减小集成电路芯片面积并降低成本成为亟待解决的问题。
发明内容
本发明主要解决的问题是提供一种程序运行方法、集成电路芯片及相关装置,能够在保护程序的同时,减小集成电路芯片面积并降低成本。
为解决上述技术问题,本发明采用的技术方案是提供一种程序运行方法,该程序运行方法包括:应用程序调用第一预设程序接口,其中应用程序不能直接访问保护程序;第一预设程序接口调用第二预设程序接口,第二预设程序接口直接调用保护程序;将保护程序返回至应用程序,并利用保护程序运行应用程序。
为解决上述技术问题,本发明采用的另一技术方案是提供一种集成电路芯片,该集成电路芯片包括相互耦接的存储器和处理器,存储器存储有程序指令,处理器执行程序指令以实现上述程序运行方法。
为解决上述技术问题,本发明采用的又一技术方案是提供一种存储装置,存储有能够被处理器运行的程序指令,程序指令用于实现上述程序运行方法。
通过上述方案,本发明的有益效果是:将应用程序设置为不能直接访问保护程序,应用程序调用第一预设程序接口,从而第一预设程序接口调用第二预设程序接口,第二预设程序接口直接调用保护程序,进而将保护程序返回至应用程序,并利用保护程序运行应用程序,故能够在运行应用程序时,利用第一预设程序接口和第二预设程序接口的双重保护机制,使得外界无法直接跟踪和读取保护程序,能够有利于降低保护程序泄漏的可能性,且由于无需对保护程序进行加解密处理,故无需设置独立的的处理器或控制单元。故此,能够在保护程序的同时,减小集成电路芯片面积并降低成本。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本发明提供的程序运行方法一实施例的结构示意图;
图2是本发明提供的程序运行方法一实施例的状态示意图;
图3是本发明提供的程序运行方法另一实施例的流程示意图;
图4是本发明提供的集成电路芯片一实施例的框架示意图;
图5是本发明提供的存储装置一实施例的框架示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,图1是本发明提供的程序运行方法一实施例的结构示意图。具体而言,可以包括如下步骤:
步骤S11:应用程序调用第一预设程序接口。
在一个实施场景中,应用程序可以为用户自定义编写的程序,具体地,应用程序可以存储于集成电路芯片中的存储器内。在一个具体的实施场景中,集成电路芯片可以包括但不限于:SoC(System on Chip,片上系统)、MCU(Micro Control Unit,微控制单元)。应用程序的具体功能可以根据实际应用情况进行设置,例如,当集成电路芯片为WiFi(WirelessFidelity,无线保真)芯片时,应用程序具体可以是由用户编写的用于无线网设置(例如,无线网列表刷新等)的程序;或者,当集成电路芯片为音频芯片时,应用程序具体可以是由用户编写的用于音频控制(例如,音量调节等)的程序;或者,当集成电路芯片为胎压监测芯片时,应用程序具体可以是由用户编写的用于胎压监测控制(例如,胎压监测频率设置等)的程序,其他场景在此不再一一举例。在另一个实施场景中,应用程序也可以为厂商出厂时预先已在集成电路芯片的存储器中写入的,在此不做限定。
第一预设程序接口用于实现调用保护程序,从而使得应用程序不可直接访问保护程序,以降低保护程序泄漏的可能性。本发明实施例中,保护程序为期望受到保护而免于被外界破解的程序,例如,厂商的核心代码、实现某些功能的核心算法等,具体可以根据实际应用情况进行设置,例如,当集成电路芯片为胎压监测芯片时,保护程序可以包括轮胎压力校准算法等;或者,当集成电路芯片为WiFi芯片时,保护程序可以包括无线网传输数据加密算法等;或者,当集成电路芯片为音频芯片时,保护程序可以包括音频质量提升算法等,其他场景在此不再一一举例。
在一个实施场景中,第一预设程序接口可以为基于保护程序预先定义的,第一预设程序接口能够调用至少一个保护程序,例如,第一预设程序接口能够调用1个保护程序,第一预设程序接口能够调用2个保护程序,第一预设程序接口能够调用3个保护程序等等,在此不做限定。例如,保护程序包括用于实现功能1的FW_Fun1、用于实现功能2的FW_Fun2和用于实现功能3的Fw_Fun3,则可以预先定义第一预设程序接口APP_Lib_Fun1,且APP_Lib_Fun1能够调用FW_Fun1;还可以定义第一预设程序接口APP_Lib_Fun2,且APP_Lib_Fun2能够调用FW_Fun2;还可以定义第一预设程序接口APP_Lib_Fun3,且APP_Lib_Fun3能够调用FW_Fun3;此外,还可以定义第一预设程序接口APP_Lib_Fun4,且APP_Lib_Fun4能够调用FW_Fun1和FW_Fun2,以结合FW_Fun1和FW_Fun2的功能实现功能4;或者,还可以定义第一预设程序接口APP_Lib_Fun5,且APP_Lib_Fun5能够调用FW_Fun2和FW_Fun3,以结合FW_Fun2和FW_Fun3的功能实现功能5,在此不做限定。
在一个具体的实施场景中,用于调用相同保护程序的第一预设程序接口可以设置有多个,且多个用于调用相同保护程序的第一预设程序接口可以配置于不同层的用户保护程序接口库中,以供应用程序择一调用。此外,用户保护程序接口库可以设置多层,且每层可以有多个第一预设程序接口。请结合参阅图2,图2是本发明提供的程序运行方法一实施例的状态示意图,可以设置n个用于调用相同保护程序的第一预设程序接口APP_Lib1_Fun1、……、APP_Libn_Fun1,并将其分别配置于不同层的用户保护程序接口库APP_Lib1、……、APP_Libn中;或者,可以设置n个用于调用相同保护程序的第一预设程序接口APP_Lib1_Fun2、……、APP_Libn_Fun2,并将其分别配置于不同层的用户保护程序接口库APP_Lib1、……、APP_Libn中;或者,还可以分别设置n个用于调用相同保护程序的第一预设程序接口APP_Lib1_Fun3、……、APP_Libn_Fun3,并将其分别配置于不同层的用户保护程序接口库APP_Lib1、……、APP_Libn中,其他场景可以以此类推,在此不再一一举例。通过将第一预设程序接口设置于不同层的用户保护程序接口库中,并在其中至少选择一个层调用,能够进一步对保护程序进行保护,降低其泄漏的概率。
在另一个具体的实施场景中,用于调用相同保护程序的的第一预设程序接口可以设置有多个,且至少部分用于调用相同保护程序的的第一预设程序接口可以嵌套调用。具体地,至少部分可以是多个用于调用相同保护程序的第一预设程序接口中的两个、三个等等,或者,至少部分还可以是所有用于调用相同保护程序的第一预设程序接口。请继续结合参阅图2,当所有用于调用相同保护程序的第一预设程序接口嵌套调用时,APP_Lib1_Fun1可以调用APP_Lib2_Fun1(图未示),APP_Lib2_Fun1可以调用APP_Lib3_Fun1(图未示),APP_Lib3_Fun1可以调用APP_Lib4_Fun1(图未示),以此类推,APP_Libn-1_Fun1(图未示)可以调用APP_Libn_Fun1,相当于APP_Lib1_Fun1通过APP_Lib2_Fun1、APP_Lib3_Fun1、APP_Lib4_Fun1、……、APP_Libn-1_Fun1、APP_Libn_Fun1实现了n-1层嵌套,从而能够进一步对保护程序进行保护,降低其泄漏的概率。或者,当至少部分并非所有用于调用相同保护程序的第一预设程序接口时,例如,至少部分是多个用于调用相同保护程序的第一预设程序接口中的两个时,APP_Lib1_Fun1可以调用APP_Lib2_Fun1,从而APP_Lib1_Fun1通过APP_Lib2_Fun1实现了1层嵌套,也能够对保护程序进行保护,降低其泄漏的概率。具体嵌套的层数可以根据实际应用需要进行设置,在此不做限定。
在又一个具体的实施场景中,应用程序、第一预设程序接口和保护程序可以存储于集成电路芯片的不同存储器内,例如,集成电路芯片可以包括若干存储器,应用程序可以存储于存储器1中,第一预设程序接口可以存储于存储器2中,保护程序可以存储于存储器3中。
在又一个具体的实施场景中,应用程序、第一预设程序接口和保护程序还可以存储于集成电路芯片内同一存储器的不同存储区中,例如,集成电路芯片的存储器1可以包括若干存储区域,应用程序可以存储于存储区1中,第一预设程序接口可以存储于存储区2中,保护程序可以存储于存储区3中。
在又一个具体的实施场景中,为了提高保护强度,保护程序可以和集成电路芯片的固件(Firmware)一同存储。固件通常是写入可擦写可编程只读存储器或电可擦写可编程只读存储器中的程序,一般是无法被用户直接读出或修改的,故将保护程序与固件一同存储,能够降低保护程序泄漏的概率。
在又一个具体的实施场景中,可以将保护程序的存储区的访问权限设置为外部不可访问,从而降低保护程序泄漏的概率。具体地,可以将保护程序设置为对外部接口访问(例如,调试工具)不可访问,或者,将保护程序设置为对外接口访问统一访问到一预设值(例如,0x0)。通过将保护程序的存储区的访问权限设置为包括外部不可访问,能够从集成电路芯片外部维度对保护程序进行保护。
步骤S12:第一预设程序接口调用第二预设程序接口,第二预设程序接口直接调用保护程序。
为了进一步降低保护程序泄漏的概率,第一预设程序接口还可以用于调用第二预设程序接口,且第二预设程序接口可直接调用保护程序。仍以保护程序包括用于实现功能1的FW_Fun1、用于实现功能2的FW_Fun2和用于实现功能3的Fw_Fun3为例,第一预设程序接口可以包括能够调用FW_Fun1的APP_Lib_Fun1、能够调用FW_Fun2的APP_Lib_Fun2和能够调用FW_Fun3的APP_Lib_Fun3。此外,第一预设程序接口除了能够调用一个保护程序之外,还可以调用多个保护程序,在此不做限定,具体可以参阅前述实施场景中的相关描述,在此不再赘述。第二预设程序接口可以包括直接调用FW_Fun1且直接被APP_Lib_Fun1调用的FW_Lib_Fun1、直接调用FW_Fun2且直接被APP_Lib_Fun2调用的FW_Lib_Fun2、直接调用FW_Fun3且直接被APP_Lib_Fun3调用的FW_Lib_Fun3。此外,第二预设程序接口除了可以直接调用一个保护程序之外,还可以直接调用多个保护程序,具体可以参考前述实施场景中的相关描述,在此不再赘述。故此,可以利用第一预设程序接口调用第二预设程序接口,并由第二预设程序接口调用保护程序,以通过第一预设程序接口和第二预设程序接口两类接口的叠加组合实现保护程序的调用,以提高对保护程序的保护强度,降低其泄漏的概率。
在一个具体的实施场景中,与第一预设程序接口一一对应的第二预设程序接口可以设置有多个,且多个用于调用相同保护程序的第二预设程序接口可以配置于不同层的保护程序接口库中,第一预设程序接口可以调用至少一个调用相同保护程序的第二程序接口。具体地,第一预设程序接口,以及与第一预设程序接口一一对应的第二预设程序接口,两者所调用的保护程序相同。请结合参阅图2,例如,第一预设程序接口APP_Lib1_Fun1所调用的保护程序为FW_Fun1,则可以对应设置一调用保护程序FW_Fun1的第二预设程序接口FW_Lib1_Fun1,此时,第二预设程序接口FW_Lib1_Fun1与第一预设程序接口APP_Lib1_Fun1对应;或者,例如,第一预设程序接口APP_Lib1_Fun2所调用的保护程序为FW_Fun2,则可以对应设置一调用保护程序FW_Fun2的第二预设程序接口FW_Lib1_Fun2,此时,第二预设程序接口FW_Lib1_Fun2与第一预设程序接口APP_Lib1_Fun2对应,其他情况可以以此类推,在此不再一一举例。请继续参阅图2,可以设置n个用于调用相同保护程序的第二预设程序接口FW_Lib1_Fun1、……、FW_Libn_Fun1,并将其分别配置于不同层的保护程序接口库FW_Lib1、……、FW_Libn中;或者,可以设置n个用于调用相同保护程序的第二预设程序接口FW_Lib1_Fun2、……、FW_Libn_Fun2,并将其分别配置于不同层的保护程序接口库FW_Lib1、……、FW_Libn中;或者,还可以分别设置n个用于调用相同保护程序的第二预设程序接口FW_Lib1_Fun3、……、FW_Libn_Fun3,并将其分别配置于不同层的保护程序接口库FW_Lib1、……、FW_Libn中,其他场景可以以此类推,在此不再一一举例。通过将包含第一预设程序接口的用户保护程序接口库和包含第二预设程序接口的保护程序接口库均设置为多层,并分别在多层用户保护程序接口库和保护程序接口库中至少选择一层调用,能够进一步对保护程序进行保护,降低其泄漏的概率。
在另一个具体的实施场景中,用于调用相同保护程序的第二预设程序接口可以设置有多个,且至少部分用于调用相同保护程序的第二预设程序接口可以嵌套调用。具体地,至少部分可以是多个用于调用相同保护程序的第二预设程序接口中的两个、三个等等,或者,至少部分还可以是所有用于调用相同保护程序的第二预设程序接口。请继续结合参阅图2,当所有用于调用相同保护程序的第二预设程序接口嵌套调用时,FW_Lib1_Fun1可以调用FW_Lib2_Fun1(图未示),FW_Lib2_Fun1可以调用FW_Lib3_Fun1(图未示),FW_Lib3_Fun1可以调用FW_Lib4_Fun1(图未示),以此类推,FW_Libn-1_Fun1(图未示)可以调用FW_Libn_Fun1,相当于FW_Lib1_Fun1通过FW_Lib2_Fun1、FW_Lib3_Fun1、FW_Lib4_Fun1、……、FW_Libn-1_Fun1、FW_Libn_Fun1实现了n-1层嵌套,从而能够进一步对保护程序进行保护,降低其泄漏的概率。或者,当至少部分并非所有用于调用相同保护程序的第二预设程序接口时,例如,至少部分是多个用于调用相同保护程序的第二预设程序接口中的两个时,FW_Lib1_Fun1可以调用FW_Lib2_Fun1,从而FW_Lib1_Fun1通过FW_Lib2_Fun1实现了1层嵌套,也能够对保护程序进行保护,降低其泄漏的概率。具体嵌套的层数可以根据实际应用需要进行设置,在此不做限定。
此外,至少部分用于调用相同保护程序的第一预设程序接口、第二预设程序接口均可采用嵌套调用,以进一步保护程序进行保护,降低其泄漏的概率。例如,所有用于调用相同保护程序的第一预设程序接口、第二预设程序接口均嵌套调用时,APP_Lib1_Fun1可以调用APP_Lib2_Fun1(图未示),APP_Lib2_Fun1可以调用APP_Lib3_Fun1(图未示),APP_Lib3_Fun1可以调用APP_Lib4_Fun1(图未示),以此类推,APP_Libn-1_Fun1(图未示)可以调用APP_Libn_Fun1,而APP_Libn_Fun1可以调用第二预设程序接口FW_Lib1_Fun1,相当于APP_Lib1_Fun1通过APP_Lib2_Fun1、APP_Lib3_Fun1、APP_Lib4_Fun1、……、APP_Libn-1_Fun1、APP_Libn_Fun1实现了n-1层嵌套,且FW_Lib1_Fun1可以调用FW_Lib2_Fun1(图未示),FW_Lib2_Fun1可以调用FW_Lib3_Fun1(图未示),FW_Lib3_Fun1可以调用FW_Lib4_Fun1(图未示),以此类推,FW_Libn-1_Fun1(图未示)可以调用FW_Libn_Fun1,而FW_Libn_Fun1可以调用保护程序FW_Fun1,相当于FW_Lib1_Fun1通过FW_Lib2_Fun1、FW_Lib3_Fun1、FW_Lib4_Fun1、……、FW_Libn-1_Fun1、FW_Libn_Fun1实现了n-1层嵌套。故此,从APP_Fun1至FW_Fun1的调用,可以认为经历了2(n-1)层嵌套,能够进一步对保护程序进行保护,降低其泄漏的概率。或者,当多个用于调用相同保护程序的第一预设程序接口、第二预设程序接口中的个别采用嵌套调用时,例如,APP_Lib1_Fun1可以调用APP_Lib2_Fun1(图未示),而APP_Lib2_Fun1可以调用第二预设程序接口FW_Lib1_Fun1,FW_Lib1_Fun1可以调用FW_Lib2_Fun1(图未示),而FW_Lib2_Fun1可以调用保护程序FW_Fun1,故此,从APP_Fun1至FW_Fun1的调用,经历了2层嵌套,也能够对保护程序进行保护,降低其泄漏的概率。用于调用相同保护程序的第一预设程序接口、第二预设程序接口具体嵌套的层数可以根据实际应用需要进行设置,在此不做限定
在又一个具体的实施场景中,应用程序、第一预设程序接口、第二预设程序接口和保护程序可以存储于集成电路芯片的相同存储器或不同存储器内。具体地,当存储于不同存储器时,集成电路芯片可以包括若干存储器,例如,应用程序可以存储于存储器1中,第一预设程序接口可以存储于存储器2中,第二预设程序接口可以存储于存储器3中,保护程序可以存储于存储器4中。当存储于相同存储器时,集成电路芯片的存储器可以包括若干存储区域,例如,集成电路芯片的存储器1可以包括4个存储区,应用程序可以存储于存储区1中,第一预设程序接口可以存储于存储区2中,第二预设程序接口可以存储于存储区3中,保护程序可以存储于存储区4中。
在又一个具体的实施场景中,应用程序和第一预设程序接口可以存储于一存储器中,第二预设程序接口和保护程序可以存储于另一存储器中。例如,集成电路芯片可以包括若干存储器,应用程序和第一预设程序接口可以存储于存储器1中,第二预设程序接口和保护程序可以存储于存储器2中。或者,应用程序和第一预设程序接口,以及第二预设程序接口和保护程序还可以存储于同一存储器的不同存储区中,例如,集成电路芯片可以包括若干存储区,应用程序和第一预设程序接口可以存储于存储区1中,第二预设程序接口和保护程序可以存储于存储区2中。
在又一个具体的实施场景中,应用程序、第一预设程序接口、第二预设程序接口和保护程序还可以根据应用需要,选择性地存储于集成电路芯片的不同存储器内,即四者中的至少一者可以存储于不同的存储器内,或者,存储于集成电路芯片的同一存储器的不同存储区内。例如,集成电路芯片可以包括若干存储器,应用程序可以存储于存储器1中,第一预设程序接口、第二预设程序接口和保护程序可以存储于存储器2中;或者,集成电路芯片的存储器可以包括若干存储区,应用程序可以存储于存储区1中,第一预设程序接口、第二预设程序接口和保护程序可以存储于存储区2中,具体可以根据实际应用需要进行设置,在此不再一一举例。
在又一个具体的实施场景中,存储应用程序和第一预设程序接口的存储区(或存储器)的访问权限可以配置为外部可访问。存储第二预设程序接口和保护程序的存储区(或存储器)的访问权限可以配置为外部不可访问。具体地,配置为外部不可访问的方式可以参阅前述实施场景中的相关描述,在此不再赘述。
本发明实施例中,可以通过当前调用程序的存储地址,确定其为第一预设程序接口。具体地,上述应用程序、第一预设程序接口、第二预设程序接口和保护程序的存储地址可以包含于一地址表中,从而可以根据地址表查询得到当前调用程序的存储地址,并利用查询得到的存储地址与预先划分的各类程序的地址范围,确定当前调用程序为第一预设程序接口。例如,可以将地址范围1设置为存储应用程序的地址范围,将地址范围2设置为存储第一预设程序接口的地址范围,将地址范围3设置为存储保护程序的地址范围,根据包含各个程序的存储地址的地址表,查询得到当前调用程序的存储地址在地址范围1内,则可以确定当前调用程序为第一预设程序接口。
在一个实施场景中,上述地址表可以设置为外部不可访问,从而可以进一步降低保护程序被跟踪、读取而泄漏的概率。例如,可以将地址表设置为对外部接口访问(例如,调试工具)不可访问,或者,将地址表设置为对外接口访问统一访问到一预设值(例如,0x0)。
在一个实施场景中,为了进一步提高保护程序的保护强度,还可以将保护程序存储在预设存储区中且不可读,例如,可以将保护程序与集成电路芯片的固件(Firmware)一同存储。因此,可以在运行保护程序之前,可以对保护程序进行处理,使得保护程序对处理器而言可读,从而使得处理器得以通过第一预设程序接口调用保护程序,得到保护程序。例如,可以将保护程序调入集成电路芯片的随机存取存储器(Random Access Memory,RAM)中。此外,在通过第一预设程序接口调用保护程序,从而得到保护程序后,可以运行保护程序,从而得到运行结果。
在一个具体的实施场景中,可以通过当前调用程序的存储地址,确定待运行的当前调用程序为保护程序,可以对其进行处理,使其对于处理器而言可读。
在另一个具体的实施场景中,当第一预设程序接口设置为用于调用第二预设程序接口,且第二预设程序接口设置为用于直接调用保护程序时,可以通过第一预设程序接口调用第二预设程序接口,从而通过第二预设程序接口直接调用保护程序。请结合参阅图2,以运行应用程序APP_Fun1为例,可以先运行APP_Fun1所调用的第一预设程序接口APP_Lib1_Fun1,再通过APP_Lib1_Fun1调用第二预设程序接口FW_Lib1_Fun1,并通过第二预设程序接口FW_Lib1_Fun1调用保护程序FW_Fun1。当应用程序的接口调用设置为其他情况时,可以以此类推,在此不再一一举例。
步骤S13:将保护程序返回至应用程序,并利用保护程序运行应用程序。
在一个实施场景中,在调用得到保护程序之后,可以将保护程序返回至第一预设程序接口,并由第一预设程序接口将保护程序返回至应用程序。具体地,在调用得到保护程序之后,可以先运行该保护程序,从而得到运行结果,并将运行结果返回至调用保护程序的第一预设程序接口,并由第一预设程序接口将运行结果返回至调用第一预设程序接口的应用程序。请继续结合参阅图2,仍以运行应用程序APP_Fun1为例,可以将运行结果返回至调用保护程序FW_Fun1的第一预设程序接口APP_Lib1_Fun1,并由第一预设程序接口APP_Lib1_Fun1将运行结果返回至应用程序APP_Fun1,并利用运行结果继续运行应用程序APP_Fun1。具体地,应用程序后续的代码指令可以为调用其他功能的第一预设程序接口,例如,将运行结果作为其他功能的第一预设程序接口的输入参数,或者,后续的代码指令还可以为数学(或逻辑)运算指令,例如,将运行结果作为数学(或逻辑)运行指令的输入参数;或者,后续的代码指令还可以为输出运行结果,例如,代码指令可以采用C语言编写,运行结果最终可以赋予一变量名为result的变量,后续的代码指令可以为return result,在此不做限定。通过将运行结果返回至调用保护程序的第一预设程序接口,并由第一预设程序接口将运行结果返回至调用第一预设程序接口的应用程序,能够降低保护程序被跟踪的概率,从而能够提高保护程序的保护强度,进一步降低保护程序泄漏的概率。
在另一个实施场景中,在调用得到保护程序之后,可以将保护程序返回至第二预设程序接口,并由第二预设程序接口将保护程序返回至第一预设程序接口,再由第一预设程序接口将保护程序返回至应用程序。具体地,在调用得到保护程序之后,可以先运行该保护程序,得到运行结果,从而将运行结果返回至调用保护程序的第二预设程序接口,并由第二预设程序接口将运行结果返回至调用第二预设程序接口的第一预设程序接口,再由第一预设程序接口将运行结果返回至调用第一预设程序接口的应用程序。请继续结合参阅图2,仍以运行应用程序APP_Fun1为例,可以将运行结果返回至调用保护程序FW_Fun1的第二预设程序接口FW_Lib1_Fun1,并由第二预设程序接口FW_Lib1_Fun1将运行结果返回至调用FW_Lib1_Fun1的第一预设程序接口APP_Lib1_Fun1,再由APP_Lib1_Fun1将运行结果返回至应用程序APP_Fun1,并利用运行结果继续运行应用程序APP_Fun1。应用程序后续的代码指令可以参考前述实施场景中的相关描述,在此不再赘述。
上述方案,将应用程序设置为不能直接访问保护程序,应用程序调用第一预设程序接口,从而第一预设程序接口调用第二预设程序接口,第二预设程序接口直接调用保护程序,将保护程序返回至应用程序,并利用保护程序运行应用程序,故能够在运行应用程序时,利用第一预设程序接口和第二预设程序接口的双重保护机制,使得外界无法直接跟踪和读取保护程序,能够有利于降低保护程序泄漏的可能性,且由于无需对保护程序进行加解密处理,故无需设置独立的的处理器或控制单元。故此,能够在保护程序的同时,减小集成电路芯片面积并降低成本。
请参阅图3,图3是本发明提供的程序运行方法另一实施例的流程示意图。具体地,可以将保护程序存储在预设存储区中且不可读,例如,可以将保护程序与集成电路芯片的固件(Firmware)一同存储。具体而言,可以包括如下步骤:
步骤S31:应用程序调用第一预设程序接口,其中,应用程序不能直接访问保护程序。
具体可以参阅前述实施例中的相关步骤。
步骤S32:对保护程序进行处理,以使保护程序可读。
在一个实施场景中,对保护程序的处理可以包括将保护程序调入集成电路芯片的随机存取存储器(Random Access Memory,RAM)中。
在另一个实施场景中,获取到的保护程序的存储地址为一基础地址,该基础地址对应的存储区可以设置为空,从而不可读取到有效数据,或者,该基础地址对应的存储区的访问权限可以设置为不可读,当处理器在执行过程中,判断存储地址在一预设地址范围内,或判断存储地址对应的存储空间内无有效数据,或者判断不具备存储地址对应的存储区的读取权限时,可以确定待运行的程序为保护程序,则对保护程序的处理可以包括利用预设偏移地址对基础地址进行处理,得到保护程序的实际地址,并利用实际地址从预设存储区中读取保护程序。具体地,预设偏移地址可以根据实际应用情况进行设置,例如,基础地址为16进制表示的0BAC,预设偏移地址可以设置为16进制表示的0100,则实际地址可以通过基础地址乘以16再加上预设偏移地址得到,经过计算实际地址为16进制表示的0BBC0。当基础地址和预设偏移地址为其他数值时,可以以此类推,在此不再一一举例。
步骤S33:第一预设程序接口调用第二预设程序接口,第二预设程序接口直接调用保护程序。
在将保护程序处理为可读后,可以从预设存储区中读取保护程序,从而可以得到保护程序。在一个实施场景中,在得到保护程序之后,可以运行该保护程序,从而得到运行结果。具体可以参阅前述实施例中的相关步骤。
步骤S34:将保护程序返回至应用程序,并利用保护程序运行应用程序。
具体可以参阅前述实施例中的相关步骤。
区别于前述实施例,将保护程序存储在预设存储区中且不可读,并对保护程序进行处理,以使保护程序可读,能够从集成电路芯片内部维度对保护程序进行保护。
请参阅图4,图4是本发明提供的集成电路芯片40一实施例的框架示意图。集成电路芯片40包括相互耦接的存储器41和处理器42,存储器41存储有程序指令,处理器42执行程序指令以实现上述任一程序运行方法实施例中的步骤。具体地,集成电路芯片40可以包括SoC、MCU等,在此不做限定。集成电路芯片40所包含的存储器41可以设置有1个,也可以设置有多个,例如2个、3个、4个等等,在此不做限定。存储器41可以包括ROM(Read-OnlyMemory,只读存储器)、RAM、闪存(Flash Memory),在此不做限定。此外,集成电路芯片40还可以包括时钟、中断器、输入/输出口、定时器、模拟数字转换器等等,在此不做限定。程序指令可以包括上述任一程序运行方法实施例中的应用程序、第一预设程序接口、第二预设程序接口、保护程序,在此不做限定。
本实施例中,处理器42用于使应用程序调用第一预设程序接口,其中应用程序不能直接访问保护程序;处理器42用于使第一预设程序接口调用第二预设程序接口,第二预设程序接口直接调用保护程序;处理器42用于将保护程序返回至应用程序,并利用保护程序运行应用程序。
上述方案,将应用程序设置为不能直接访问保护程序,应用程序调用第一预设程序接口,从而第一预设程序接口调用第二预设程序接口,第二预设程序接口直接调用保护程序,进而将保护程序返回至应用程序,并利用保护程序运行应用程序,故能够在运行应用程序时,利用第一预设程序接口和第二预设程序接口的双重保护机制,使得外界无法直接跟踪和读取保护程序,能够有利于降低保护程序泄漏的可能性,且由于无需对保护程序进行加解密处理,故无需设置独立的的处理器或控制单元。故此,能够在保护程序的同时,减小集成电路芯片面积并降低成本。
在一些实施例中,处理器42还用于将保护程序返回至第一预设程序接口,并由第一预设程序接口将保护程序返回至应用程序。
区别于前述实施例,将保护程序返回至第一预设程序接口,并由第一预设程序接口将保护程序返回应用程序,能够有利于降低保护程序被追踪的概率,从而能够有利于进一步降低保护程序泄漏的可能性。
在一些实施例中,用于调用相同保护程序的第一预设程序接口设置有多个,且每个处于不同层的用户保护程序接口库中,应用程序调用至少一个第一预设程序接口。
区别于前述实施例,将用于调用相同保护程序的第一预设程序接口设置有多个,且每个处于不同层的用户保护程序接口库中,应用程序调用至少一个第一预设程序接口,能够将第一预设程序接口多层设置,从而能够有利于进一步降低保护程序被追踪的概率,从而能够有利于进一步降低保护程序泄漏的可能性。
在一些实施例中,与第一预设程序接口一一对应的第二预设程序接口设置有多个,且每个处于不同层的保护程序接口库中,第一预设程序接口调用至少一个调用相同保护程序接口的第二预设程序接口。
区别于前述实施例,将于第一预设程序接口一一对应的第二预设程序接口设置有多个,且每个处于不同层的保护程序接口库中,第一预设程序接口调用至少一个调用相同保护程序的第二预设程序接口,能够将第二预设程序接口多层设置,从而能够有利于进一步降低保护程序被追踪的概率,从而能够有利于进一步降低保护程序泄漏的可能性。
在一些实施例中,应用程序、第一预设程序接口、第二预设程序接口、保护程序存储于同一存储器的不同区域,或者四者中至少一个存储于不同的存储器内。
区别于前述实施例,将应用程序、第一预设程序接口、第二预设程序接口、保护程序存储于同一存储器的不同区域,或者四者中的至少一者存储于不同的存储器内,能够有利于方便地对保护程序进行保护。
在一些实施例中,存储应用程序和第一预设程序接口的存储区的访问权限为外部可访问;存储第二预设程序接口和保护程序的存储区的访问权限为外部不可访问。
区别于前述实施例,将存储应用程序和第一预设程序接口的存储区的访问权限设置为外部可访问,能够便于用户根据已经定义的程序接口自定义编写应用程序;将存储第二预设程序接口和保护程序的存储区的访问权限设置为外部不可访问,能够有利于从集成电路芯片外部维度对保护程序进行保护,从而能够有利于进一步降低保护程序被追踪的概率,从而能够有利于进一步降低保护程序泄漏的可能性。
在一些实施例中,保护程序存储在预设存储区中且不可读,处理器42还用于对保护程序进行处理,以使保护程序可读。
区别于前述实施例,将保护程序存储在预设存储区中且不可读,并对保护程序进行处理,以使保护程序可读,能够从集成电路芯片内部维度对保护程序进行保护。
在一些实施例中,应用程序、第一预设程序接口、第二预设程序接口和保护程序的存储地址包含于一地址表中,且地址表外部不可访问。
区别于前述实施例,将应用程序、第一预设程序接口、第二预设程序接口和保护程序的存储地址包含于一地址表中,且地址表外部不可访问,能够便于读取上述各个程序,且能够有利于降低上述各个程序被读取的概率,能够有利于进一步降低保护程序泄漏的可能性。
在一些实施例中,集成电路芯片40还可以进一步包括与处理器42耦接的胎压传感器,胎压传感器用于感测轮胎气压。在一个具体的实施场景中,集成电路芯片40还可以进一步包括用于感测轮胎温度的温度传感器,且温度传感器与处理器42耦接。在另一个具体的实施场景中,集成电路芯片40还可以进一步包括用于传输数据的射频电路,且射频电路与处理器42耦接。具体地,可以根据实际应用情况设置集成电路芯片40内的元件,例如,当集成电路芯片40需要配备胎温监测功能时,可以在集成电路芯片40内配置温度传感器;或者,当集成电路芯片40需要配备节能功能时,可以在集成电路芯片40内配置低频唤醒电路,用于在集成电路芯片40从静止状态的低功耗模式中唤醒,以使集成电路芯片40切换至正常工作模式,具体地,低功耗模式可以为胎压监测频次较低的模式,而正常工作模式下的胎压监测频次可以设置为高于低功耗模式下的胎压监测频次,例如,低功耗模式下的胎压监测频次可以设置为10分钟/次、5分钟/次等等,正常工作模式下的胎压监测频次可以设置为1分钟/次、30秒/次等等,在此不做限定。
请参阅图5,图5是本发明提供的存储装置50一实施例的框架示意图。存储装置50存储有能够被处理器运行的程序指令501,程序指令501用于实现上述任一程序运行方法实施例中的步骤。具体地,程序指令501可以包括上述任一程序运行方法实施例中的应用程序、第一预设程序接口、第二预设程序接口、保护程序,在此不做限定。
上述方案,能够在保护程序的同时,减小集成电路芯片面积并降低成本。
以上仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种程序运行方法,其特征在于,包括:
应用程序调用第一预设程序接口,其中,所述应用程序不能直接访问保护程序;
所述第一预设程序接口调用第二预设程序接口,所述第二预设程序接口直接调用所述保护程序;
将所述保护程序返回至所述应用程序,并利用所述保护程序运行所述应用程序。
2.根据权利要求1所述的程序运行方法,其特征在于,所述将所述保护程序返回至所述应用程序,包括:
将所述保护程序返回至所述第一预设程序接口,并由所述第一预设程序接口将所述保护程序返回至所述应用程序。
3.根据权利要求1所述的程序运行方法,其特征在于,所述第一预设程序接口设置有多个,且每个处于不同层的用户保护程序接口库中,所述应用程序调用至少一个所述第一预设程序接口。
4.根据权利要求1所述的程序运行方法,其特征在于,与所述第一预设接口一一对应的所述第二预设程序接口设置有多个,且每个处于不同层的保护程序接口库中,所述第一预设程序接口调用至少一个与其对应的所述第二预设程序接口。
5.根据权利要求1所述的程序运行方法,其特征在于,所述应用程序、所述第一预设程序接口、所述第二预设程序接口、所述保护程序存储于同一存储器的不同区域,或者四者中至少一个存储于不同的存储器内。
6.根据权利要求1所述的程序运行方法,其特征在于,存储所述应用程序和所述第一预设程序接口的存储区的访问权限为外部可访问;
存储所述第二预设程序接口和所述保护程序的存储区的访问权限为外部不可访问。
7.根据权利要求1所述的程序运行方法,其特征在于,所述保护程序存储在预设存储区中且不可读;所述第一预设程序接口调用第二预设程序接口,所述第二预设程序接口直接调用所述保护程序之前,所述方法还包括:
对所述保护程序进行处理,以使所述保护程序可读。
8.根据权利要求1所述的程序保护方法,其特征在于,所述应用程序、所述第一预设程序接口、所述第二预设程序接口和所述保护程序的存储地址包含于一地址表中,且所述地址表外部不可访问。
9.一种集成电路芯片,其特征在于,包括相互耦接的存储器和处理器,所述存储器存储有程序指令,所述处理器执行所述程序指令以实现权利要求1至8任一项所述的程序运行方法。
10.一种存储装置,其特征在于,存储有能够被处理器运行的程序指令,所述程序指令用于实现权利要求1至8任一项所述的程序运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010590321.7A CN113836497B (zh) | 2020-06-24 | 2020-06-24 | 程序运行方法、集成电路芯片及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010590321.7A CN113836497B (zh) | 2020-06-24 | 2020-06-24 | 程序运行方法、集成电路芯片及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113836497A true CN113836497A (zh) | 2021-12-24 |
CN113836497B CN113836497B (zh) | 2024-09-20 |
Family
ID=78964675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010590321.7A Active CN113836497B (zh) | 2020-06-24 | 2020-06-24 | 程序运行方法、集成电路芯片及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113836497B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172797A1 (en) * | 2007-12-28 | 2009-07-02 | Jiewen Yao | Method and system for securing application program interfaces in unified extensible firmware interface |
CN106778208A (zh) * | 2016-12-01 | 2017-05-31 | 深圳Tcl新技术有限公司 | 应用程序的访问处理方法及装置 |
CN107592358A (zh) * | 2017-09-19 | 2018-01-16 | 广州视源电子科技股份有限公司 | 基于http服务的应用程序接口调用方法和装置 |
CN107766717A (zh) * | 2016-08-17 | 2018-03-06 | 中国移动通信有限公司研究院 | 一种访问控制方法、装置及系统 |
CN108256298A (zh) * | 2017-12-14 | 2018-07-06 | 大唐微电子技术有限公司 | 一种资源访问方法及装置 |
CN109246092A (zh) * | 2018-08-22 | 2019-01-18 | 北京旷视科技有限公司 | 接口管理方法、装置、系统、计算机可读存储介质 |
CN109376019A (zh) * | 2018-09-03 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 接口调用方法及终端设备 |
CN110300165A (zh) * | 2019-06-26 | 2019-10-01 | 北京字节跳动网络技术有限公司 | 一种功能程序的调用方法、装置、设备及存储介质 |
CN111142960A (zh) * | 2018-11-02 | 2020-05-12 | 中国电信股份有限公司 | 接口提供方法、装置和系统 |
-
2020
- 2020-06-24 CN CN202010590321.7A patent/CN113836497B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172797A1 (en) * | 2007-12-28 | 2009-07-02 | Jiewen Yao | Method and system for securing application program interfaces in unified extensible firmware interface |
CN107766717A (zh) * | 2016-08-17 | 2018-03-06 | 中国移动通信有限公司研究院 | 一种访问控制方法、装置及系统 |
CN106778208A (zh) * | 2016-12-01 | 2017-05-31 | 深圳Tcl新技术有限公司 | 应用程序的访问处理方法及装置 |
CN107592358A (zh) * | 2017-09-19 | 2018-01-16 | 广州视源电子科技股份有限公司 | 基于http服务的应用程序接口调用方法和装置 |
CN108256298A (zh) * | 2017-12-14 | 2018-07-06 | 大唐微电子技术有限公司 | 一种资源访问方法及装置 |
CN109246092A (zh) * | 2018-08-22 | 2019-01-18 | 北京旷视科技有限公司 | 接口管理方法、装置、系统、计算机可读存储介质 |
CN109376019A (zh) * | 2018-09-03 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 接口调用方法及终端设备 |
CN111142960A (zh) * | 2018-11-02 | 2020-05-12 | 中国电信股份有限公司 | 接口提供方法、装置和系统 |
CN110300165A (zh) * | 2019-06-26 | 2019-10-01 | 北京字节跳动网络技术有限公司 | 一种功能程序的调用方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
佚名: "《如何调用嵌套接口的方法》", pages 1 - 3, Retrieved from the Internet <URL:《www.cloud.tencent.com/developer/ask/sof/100479853》> * |
Also Published As
Publication number | Publication date |
---|---|
CN113836497B (zh) | 2024-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11120130B2 (en) | Method and apparatus for protecting kernel control-flow integrity using static binary instrumentation | |
US9558016B2 (en) | Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product | |
CN105607901B (zh) | 系统内存的优化方法、装置及终端设备 | |
CN110489983B (zh) | 芯片访问方法、装置、芯片及终端 | |
CN114584175A (zh) | 干扰控制方法及相关装置 | |
CN113703859A (zh) | 一种动态链接库注入方法、装置、设备及存储介质 | |
US10846399B2 (en) | Method and device for protecting information from side channel attack | |
CN105426231A (zh) | 多进程处理装置和多进程处理方法 | |
CN103077032B (zh) | 应用程序的操作方法及应用程序的客户端 | |
CN111930651B (zh) | 一种指令执行方法、装置、设备及可读存储介质 | |
CN112965760A (zh) | 修改根目录的方法、装置、电子设备和可读存储介质 | |
CN113836497A (zh) | 程序运行方法、集成电路芯片及相关装置 | |
CN106682494B (zh) | 一种信息访问方法、装置和设备 | |
CN108664389B (zh) | 一种测试方法、装置及终端 | |
TWI640869B (zh) | 配置一積體電路無線電通訊裝置的方法及積體電路無線電通訊裝置 | |
CN111444117A (zh) | 存储空间碎片化实现方法、装置、存储介质及电子设备 | |
CN108958849B (zh) | 获取当前Activity对象的方法、装置、存储介质及移动终端 | |
CN116700815B (zh) | 硬件资源控制方法、电子设备及可读存储介质 | |
KR20140136665A (ko) | 캘리브레이션 장치 및 그 방법 | |
CN113824552B (zh) | 车辆应用程序的密钥生成方法、装置、电子设备 | |
CN112559394B (zh) | 系统库访问方法、装置以及电子设备 | |
JP2006209371A (ja) | 制御装置 | |
EP4095725A1 (en) | Electronic device and security protection method | |
CN117908660A (zh) | 微内核操作系统的功耗管理方法、装置、存储介质和操作系统 | |
CN111897508A (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 |