CN114417402A - 升级文件的生成方法、装置、设备及存储介质 - Google Patents
升级文件的生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114417402A CN114417402A CN202111643797.3A CN202111643797A CN114417402A CN 114417402 A CN114417402 A CN 114417402A CN 202111643797 A CN202111643797 A CN 202111643797A CN 114417402 A CN114417402 A CN 114417402A
- Authority
- CN
- China
- Prior art keywords
- version information
- upgrade
- file
- check code
- interference
- 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.)
- Pending
Links
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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例适用于终端技术领域,提供了一种升级文件的生成方法、装置、设备及存储介质,所述方法包括:获取待升级终端的原始升级包数据,所述原始升级包数据包括文件版本信息;在所述文件版本信息中叠加干扰码,得到干扰版本信息;采用所述原始升级包数据和所述干扰版本信息,计算第一校验码;确定预留字符,并基于所述预留字符计算第二校验码;分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入所述原始升级包数据的预留地址区域,得到用于对所述待升级终端进行升级的升级文件。采用上述方法,可以防止终端在升级过程中所使用的升级文件被非法篡改,保证升级文件的安全性。
Description
技术领域
本申请实施例属于终端技术领域,特别是涉及一种升级文件的生成方法、装置、设备及存储介质。
背景技术
嵌入式系统(Embedded System)是以应用为中心,以计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。应用嵌入式系统的终端可以被称为嵌入式终端。
为了能够满足客户持续变化的需求,延长产品的生命周期,需要不断完善嵌入式终端的各项功能,针对嵌入式终端的升级就显得非常重要。
目前,针对嵌入式终端的升级通常都是在公用的升级平台对整个终端系统进行升级。在实际升级过程中,公用的升级平台可能面临人为篡改升级包的风险。这会使得升级过程出现问题,造成系统故障,甚至引起系统瘫痪导致整个嵌入式终端产品失效。
发明内容
有鉴于此,本申请实施例提供了一种升级文件的生成方法、装置、设备及存储介质,可以防止终端在升级过程中所使用的升级文件被非法篡改,保证升级文件的安全性。
本申请实施例的第一方面提供了一种升级文件的生成方法,包括:
获取待升级终端的原始升级包数据,所述原始升级包数据包括文件版本信息;
在所述文件版本信息中叠加干扰码,得到干扰版本信息;
采用所述原始升级包数据和所述干扰版本信息,计算第一校验码;
确定预留字符,并基于所述预留字符计算第二校验码;
分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入所述原始升级包数据的预留地址区域,得到用于对所述待升级终端进行升级的升级文件。
本申请实施例的第二方面提供了一种升级文件的生成装置,包括:
原始升级包数据获取模块,用于获取待升级终端的原始升级包数据,所述原始升级包数据包括文件版本信息;
干扰版本信息生成模块,用于在所述文件版本信息中叠加干扰码,得到干扰版本信息;
第一校验码计算模块,用于采用所述原始升级包数据和所述干扰版本信息,计算第一校验码;
第二校验码计算模块,用于确定预留字符,并基于所述预留字符计算第二校验码;
升级文件生成模块,用于分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入所述原始升级包数据的预留地址区域,得到用于对所述待升级终端进行升级的升级文件。
本申请实施例的第三方面提供了一种升级文件的生成设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的升级文件的生成方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的升级文件的生成方法。
本申请实施例的第五方面提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述第一方面所述的升级文件的生成方法。
与现有技术相比,本申请实施例具有以下优点:
本申请实施例,在获取到待升级终端的原始升级包数据时,可以对原始升级包数据中包含的文件版本信息叠加干扰码,得到干扰版本信息,并采用原始升级包数据和干扰版本信息,计算得到第一校验码;在此基础上,通过确定预留字符,可以基于预留字符计算出第二校验码;然后,通过将干扰版本信息、预留字符、第一校验码和第二校验码分别写入原始升级包数据的预留地址区域中,可以得到用于对待升级终端进行升级的升级文件。本申请实施例通过对升级信息进行处理,将升级文件的关键校验信息和版本信息等隐藏在原始升级包内的特定地址区域,可以防止升级信息被恶意识别;同时,本申请实施例还可以通过对升级信息叠加干扰码等方式来防止人为地对升级信息的进行跟踪分析及篡改,进一步地保证了终端的升级安全。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中的一种文件头中存储的升级信息的示意图;
图2是本申请实施例提供的一种升级文件的生成方法的示意图;
图3是本申请实施例提供的另一种升级文件的生成方法的示意图;
图4是本申请实施例提供的一种升级文件的生成流程的示意图;
图5是本申请实施例提供的一种文件头中存储的升级信息的示意图;
图6是本申请实施例提供的一种终端升级流程的示意图;
图7是本申请实施例提供的一种升级文件的生成装置的示意图;
图8是本申请实施例提供的一种升级文件的生成设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
嵌入式终端等各类终端在升级时需要对升级文件进行校验,以确认接收到的升级文件是否为合法且适配本次升级的文件。通常,升级文件的文件头中存储有相应的升级信息,终端对升级文件的校验主要是通过对升级信息进行比对来实现的。如果经验证确认符合升级条件,终端去掉文件头中的升级信息即可得到原始升级包数据,并采用该原始升级包数据进行固件升级。
通常,升级文件的文件头都是中断向量表,通过中断向量表就能够获得相应的升级信息。例如,如图1所示,是现有技术中的一种文件头中存储的升级信息的示意图。图1中的区域101即是升级文件的原始数据,其余部分则是附加信息。如,图1中的区域102记录的型号、版本、时间等信息显而易见;此外,区域103中的信息则是校验信息。在掌握上述信息后,升级文件极易被非法篡改。并且,可以通过修改校验信息的方式来使得非法篡改后的升级文件轻松绕过终端的防御机制。这样,终端使用被非法篡改后的升级文件进行升级,容易导致升级后的终端出现运行故障;严重地,还会导致终端出现死机或产品失效等问题。
针对上述问题,本申请实施例提供了一种升级文件的生成方法、装置、设备及存储介质,可以通过对升级信息进行处理,将升级文件的关键校验信息和版本信息等隐藏在原始升级包内的特定地址区域,以防止升级信息被恶意识别;同时,本申请实施例还可以通过对升级信息叠加干扰码等方式来防止人为地对升级信息的进行跟踪分析及篡改,保证终端的升级安全。
下面通过具体实施例来说明本申请的技术方案。
参照图2,示出了本申请实施例提供的一种升级文件的生成方法的示意图,该方法具体可以包括如下步骤:
S201、获取待升级终端的原始升级包数据,所述原始升级包数据包括文件版本信息。
需要说明的是,本方法可以应用于具有生成升级文件功能的设备,该设备可以通过对程序文件进行编译、对升级信息进行处理等操作,得到可用于对终端进行升级的升级文件。示例性地,该设备可以是文件编译设备,如编译器。
在本申请实施例中,待升级终端可以包括任意类型的终端设备。例如,待升级终端可以是嵌入式终端,也可以是非嵌入式终端,本申请实施例对待升级终端的类型不作限定
本申请实施例中的原始升级包数据可以是对程序文件进行编译得到的升级包数据。该原始升级包数据中存储有升级文件的各种升级信息,如文件版本信息、终端型号信息、校验信息等等。
需要说明的是,相较于现有技术中的升级包数据,本申请实施例中的原始升级包数据还包括一预留地址区域,该预留地址区域可以是通过特殊编译指令在编译器生成升级包的过程中预先空出的一块区域。程序文件本身并不会使用该预留地址区域,而是留待制作升级文件时用于写入升级信息。该预留地址区域的长度可以根据实际需要确定。例如,预留地址区域的长度可以是16字节,也可以是32字节或其他长度。
S202、在所述文件版本信息中叠加干扰码,得到干扰版本信息。
在本申请实施例中,对于升级信息的处理可以首先通过对文件版本信息进行干扰来实现。
通常,文件版本信息是升级文件的一项重要属性信息,其可以用于识别该升级文件的版本号、区分升级文件的发布时间先后等等。特别是在公共的升级平台,对于同一类型的终端,可能存在数个版本的升级包。如果不对文件版本信息进行干扰,恶意程序或个人就很容易通过搜索每个升级包的版本号并对其进行跟踪分析的方式来锁定文件版本信息在升级文件中的位置,进而推测出升级文件的校验信息的存储位置。
在本申请实施例中,对文件版本信息进行干扰可以通过在文件版本信息中叠加干扰码的方式来实现。例如,可以在文件版本信息的各个字节之间插入干扰码,也可以直接对各个字节叠加干扰码,本申请实施例对此不作限定。
在本申请实施例的一种可能的实现方式中,在文件版本信息中叠加干扰码,得到干扰版本信息时,可以首先确定文件版本信息包括的多个字节。
通常,文件版本信息可以包括多个字节。例如,文件版本信息可以是4个字节、6个字节等等。
然后,可以分别在文件版本信息的每个字节中叠加预设的干扰码,得到干扰版本信息。干扰版本信息即是对原始的文件版本信息进行干扰后得到的不易被识别的版本信息。
示例性地,若文件版本信息是01,预设的干扰码可以是0x33,则叠加干扰码后得到的干扰版本信息可以是34。
本申请实施例通过对文件版本信息进行干扰,可以有效防止恶意程序或个人的跟踪分析,大大增加恶意程序或个人破解升级文件的难度。
S203、采用所述原始升级包数据和所述干扰版本信息,计算第一校验码。
在本申请实施例中,第一校验码可以是后续使用升级文件对终端进行升级时的校验信息。第一校验码可以是基于原始升级包数据和干扰版本信息进行计算得到的。具体地,可以使用全部的升级包数据与干扰版本信息进行计算得到第一校验码,也可以使用部分的升级包数据与干扰版本信息进行计算得到第一校验码,本申请实施例对此不作限定。
在本申请实施例的一种示例中,若使用部分升级包数据与干扰版本信息计算第一校验码,则可以基于升级包数据中预留地址区域之前的部分数据与干扰版本信息来进行计算。
因此,在具体实现中,可以首先读取原始升级包数据中位于预留地址区域之前的前半段数据,并合并上述前半段数据和干扰版本信息得到第一校验数据;然后采用第一校验数据计算第一校验码。
需要说明的是,采用第一校验数据计算第一校验码时可以采用任意类型的校验算法来实现。例如,循环冗余校验(Cyclic Redundancy Check)。采用CRC校验算法计算得到的第一校验码可以是十六进制的循环冗余校验码CRC16。
S204、确定预留字符,并基于所述预留字符计算第二校验码。
在本申请实施例中,预留地址区域中还包括为扩充其他升级信息而预留的预留字段。编译器在生成原始升级包数据时,预留字段均会被编译为字符0。这样,由于存在一长段连续的字符0,恶意程序或个人可以基于该字段对升级文件进行破解。因此,需要对预留字段进行处理。
在具体实现中,可以确定预留字段的字段长度,然后根据字段长度,生成与其相等的随机码,作为预留字符。例如,可以调用随机数生成器,生成一段与预留字段长度相等的随机数,这些随机数在生成升级文件时可以被写入至上述预留字段中。
在本申请实施例中,可以采用原始升级包数据和预留字符,计算第二校验码。与计算第一校验码类似,第二校验码可以是使用全部的升级包数据与预留字符进行计算得到的校验码,也可以是使用部分的升级包数据与预留字符进行计算得到的校验码,本申请实施例对此不作限定。
在本申请实施例的一种示例中,若使用部分升级包数据与预留字符计算第二校验码,则可以基于升级包数据中预留地址区域之后的部分数据与预留字符来进行计算。
因此,在具体实现中,可以读取原始升级包数据中位于预留地址区域之后的后半段数据,并合并上述预留字符和后半段数据,得到第二校验数据;然后,可以采用第二校验数据计算出第二校验码。第二校验码也可以是十六进制的CRC16校验码。
S205、分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入所述原始升级包数据的预留地址区域,得到用于对所述待升级终端进行升级的升级文件。
在完成对文件版本信息的干扰、确定出预留字符并计算出第一校验码和第二校验码后,可以将上述信息写入原始升级包数据的预留地址区域,得到较难被非法破解或篡改的升级文件。待升级终端可以使用上述升级文件完成固件升级。
参照图3,示出了本申请实施例提供的另一种升级文件的生成方法的示意图,该方法具体可以包括如下步骤:
S301、确定预留地址区域,所述预留地址区域包括多个数据子区域,每个所述数据子区域分别具有相应的数据标签,所述预留地址区域用于写入处理后的升级信息。
在本申请实施例中,预留地址区域可以是在编译程序文件时预先确定的一块区域。该预留地址区域可以包括多个数据子区域,每个数据子区域可以具有相应的数据标签。基于不同的数据标签,每个数据子区域可以用于存储不同的升级信息。例如,具有版本信息这一数据标签的数据子区域可以用于存储干扰后的文件版本信息,即干扰版本信息;具有第一校验码这一数据标签的数据子区域可以用于存储第一校验码。
S302、在将待升级终端的程序文件编译为原始升级包数据时,将所述预留地址区域编译为空白区域。
在本申请实施例中,可以使用编译指令在生成文件包的过程中,在指定地址预先空出一块区域,用于写入升级文件的升级信息。
作为本申请实施例的一种示例,可以使用如下编译指令使编译器在生成的文件包的指定地址预先空出一块16字节长度的区域:
#if defined(__GNUC__)/*GNU GCC Compiler*/
const u8 sys_upCheck[16]__attribute__((section(".ARM.__at_0x080027F0")));
#else
const u8 sys_upCheck[16]__attribute__((at(INTFLASH_BASE_ADR+BOOTLOADER_SIZE+2032)));
#endif
如表一所示,是本申请实施例提供的一种基于上述编译指令生成的预留地址区域示例,该示例中的预留地址区域共包括四个数据子区域,每个数据子区域均有一定的长度,分别用于存储干扰版本信息、第一校验码、第二校验码和预留字符。
表一,预留地址区域示例
地址 | 00~03 | 04~05 | 06~07 | 08~15 |
长度 | 4字节 | 2字节 | 2字节 | 8字节 |
数据标签 | 版本信息 | 第一校验码 | 第二校验码 | 预留字符 |
当然,表一中的示例仅仅是以16字节长度的预留地址区域为例进行的介绍,在实际应用中,可以根据具体的需求,预留其他长度的地址区域;并且不同的数据子区域的长度也可以根据其需求确定,本申请实施例对预留地址区域以及每个数据子区域的长度均不作限定。
需要说明的是,程序本身不使用该预留地址区域,仅用于制作升级文件时将干扰版本信息及校验信息等写入该区域中。这样,在改写这块区域时,不会对程序本身的功能造成任何影响。
S303、获取所述原始升级包数据,所述原始升级包数据包括文件版本信息。
S304、在所述文件版本信息中叠加干扰码,得到干扰版本信息。
S305、采用所述原始升级包数据和所述干扰版本信息,计算第一校验码。
S306、确定预留字符,并基于所述预留字符计算第二校验码。
需要说明的是,本实施例中S303-S306与前一实施例中S201-S204类似,可以相互参阅,本实施例对此不再赘述。
S307、根据所述数据标签,分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入对应的所述数据子区域。
表一中的数据标签可以用于表示该数据子区域的具体功能,即待写入的信息的类型。因此,在本申请实施例中,可以根据表一中的数据标签分别将干扰版本信息、预留字符、第一校验码和第二校验码写入对应的数据子区域。即:将干扰版本信息写入表一中00~03地址的数据子区域中,将第一校验码写入表一中04~05地址的数据子区域中,将第二校验码写入表一中06~07地址的数据子区域中,将预留字符写入表一中08~15地址的数据子区域中。
S308、对写入有所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码的所述原始升级包数据进行封装,得到用于对所述待升级终端进行升级的升级文件。
在完成前述操作后,可以对写入有上述干扰版本信息及各类校验信息等升级信息的原始升级包数据,得到最终可发布分升级文件。例如,该升级文件可以被传输至公共升级平台,用于对对应的嵌入式终端进行升级。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了便于理解,下面结合一个具体的示例,对本申请实施例提供的升级文件的生成方法作一介绍。
如图4所示,是本申请实施例提供的一种升级文件的生成流程的示意图。按照图4所示的流程,在生成升级文件时,可以首先获取待升级终端的原始升级包数据。根据该原始升级包数据,可以确定升级文件的文件版本信息。为了提高升级文件被破解或篡改的难度,可以对文件版本信息叠加干扰码,得到干扰版本信息。在此基础上,可以计算升级文件的前半段的校验码,即第一校验码。第一校验码可以是在对原始升级包数据中位于预留地址区域之前的数据和上述干扰版本信息进行合并后计算得到的。然后,按照图4所示的流程,可以随机生成随机数作为预留字符。在此基础上,可以计算升级文件的后半段的校验码,即第二校验码。第一校验码可以是在对预留字符和原始升级包数据中位于预留地址区域之后的数据进行合并后计算得到的。这样,在完成上述处理后,得到的干扰版本信息、第一校验码、第二校验码和预留字符可以被写入如表一所示的预留地址区域中。然后,通过对写入有上述信息的原始升级包数据进行封装,可以得到最终可发布的升级文件。
如图5所示,是本申请实施例提供的一种文件头中存储的升级信息的示意图。图5即是使用本申请实施例提供的方法对升级信息进行处理、隐藏后的一种示例。从图5中可知,虽然升级所需的各类信息均包含在了文件头中,但由于没有明显的特征可供分析识别,恶意程序或个人在不知道升级信息具体存储地址的情况下想要破解升级文件,难度非常大。并且,由于对文件版本信息叠加了干扰码,可以有效地防止恶意程序或个人通过对版本进行跟踪分析的方式来识别出升级信息所在位置,大大地增加了升级文件破解难度。
如图6所示,是本申请实施例提供的一种终端升级流程的示意图,即图6示出了采用本申请实施例提供的方法生成的升级文件对终端进行升级的具体流程。
按照图6所示的升级流程。待升级终端在接收到升级文件后,可以首先对升级文件的数据完整性进行判断。如果升级文件未接收完毕,则可以继续接收;如果升级文件已接收完毕,则可以开始执行升级过程。首先,待升级终端可以从特定地址中提取出升级信息,该特定地址也就是在生成升级文件时,预先在升级包中预留的用于写入升级信息的地址。待升级终端所提取出的升级信息可以包括表一中的干扰版本信息、第一校验码、第二校验码等信息。对于提取出的升级信息,待升级终端可以首先对第一校验码进行校验。如果第一校验码校验未通过,待升级终端可以终止当前的升级流程;如果第一校验码校验通过,则待升级终端可以针对干扰版本信息,去除其中叠加的干扰码,将干扰版本信息还原为原始的文件版本信息。然后,待升级终端可以根据文件版本信息确定版本是否正确,是否继续采用该版本的升级文件执行升级流程。若待升级终端确定继续执行升级流程,则可以对第二校验码进行校验。只有在第二校验码校验通过的情况下,待升级终端才会使用升级文件对固件进行升级。
参照图7,示出了本申请实施例提供的一种升级文件的生成装置的示意图,具体可以包括原始升级包数据获取模块701、干扰版本信息生成模块702、第一校验码计算模块703、第二校验码计算模块704、升级文件生成模块705,其中:
原始升级包数据获取模块701,用于获取待升级终端的原始升级包数据,所述原始升级包数据包括文件版本信息;
干扰版本信息生成模块702,用于在所述文件版本信息中叠加干扰码,得到干扰版本信息;
第一校验码计算模块703,用于采用所述原始升级包数据和所述干扰版本信息,计算第一校验码;
第二校验码计算模块704,用于确定预留字符,并基于所述预留字符计算第二校验码;
升级文件生成模块705,用于分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入所述原始升级包数据的预留地址区域,得到用于对所述待升级终端进行升级的升级文件。
在本申请实施例中,所述干扰版本信息生成模块702具体可以用于:确定所述文件版本信息包括的多个字节;分别在所述文件版本信息的每个字节中叠加预设的干扰码,得到所述干扰版本信息。
在本申请实施例中,所述第一校验码计算模块703具体可以用于:读取所述原始升级包数据中位于所述预留地址区域之前的前半段数据;合并所述前半段数据和所述干扰版本信息,得到第一校验数据;采用所述第一校验数据计算所述第一校验码。
在本申请实施例中,所述第二校验码计算模块704具体可以用于:确定预留字段的字段长度;根据所述字段长度,生成与所述字段长度相等的随机码,作为所述预留字符。
在本申请实施例中,所述第二校验码计算模块704还可以用于:读取所述原始升级包数据中位于所述预留地址区域之后的后半段数据;合并所述预留字符和所述后半段数据,得到第二校验数据;采用所述第二校验数据计算所述第二校验码。
在本申请实施例中,所述装置还可以包括预留地址区域确定模块和编译模块,其中:
预留地址区域确定模块,用于确定所述预留地址区域,所述预留地址区域用于写入处理后的升级信息;
编译模块,用于在将所述待升级终端的程序文件编译为所述原始升级包数据时,将所述预留地址区域编译为空白区域。
在本申请实施例中,所述预留地址区域可以包括多个数据子区域,每个所述数据子区域可以分别具有相应的数据标签;所述升级文件生成模块705具体可以用于:根据所述数据标签,分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入对应的所述数据子区域;对写入有所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码的所述原始升级包数据进行封装,得到用于对所述待升级终端进行升级的升级文件。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
参照图8,示出了本申请实施例提供的一种升级文件的生成设备的示意图。如图8所示,本申请实施例中的生成设备800包括:处理器810、存储器820以及存储在所述存储器820中并可在所述处理器810上运行的计算机程序821。所述处理器810执行所述计算机程序821时实现上述升级文件的生成方法各个实施例中的步骤,例如图2所示的步骤S201至S205。或者,所述处理器810执行所述计算机程序821时实现上述各装置实施例中各模块/单元的功能,例如图7所示模块701至705的功能。
示例性的,所述计算机程序821可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器820中,并由所述处理器810执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段可以用于描述所述计算机程序821在所述生成设备800中的执行过程。例如,所述计算机程序821可以被分割成原始升级包数据获取模块、干扰版本信息生成模块、第一校验码计算模块、第二校验码计算模块、升级文件生成模块,各模块具体功能如下:
原始升级包数据获取模块,用于获取待升级终端的原始升级包数据,所述原始升级包数据包括文件版本信息;
干扰版本信息生成模块,用于在所述文件版本信息中叠加干扰码,得到干扰版本信息;
第一校验码计算模块,用于采用所述原始升级包数据和所述干扰版本信息,计算第一校验码;
第二校验码计算模块,用于确定预留字符,并基于所述预留字符计算第二校验码;
升级文件生成模块,用于分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入所述原始升级包数据的预留地址区域,得到用于对所述待升级终端进行升级的升级文件。
所述生成设备800可以是前述各个实施例中的用于对各类终端进行升级的设备,该生成设备800可以是桌上型计算机、云端服务器等设备。所述生成设备800可包括,但不仅限于,处理器810、存储器820。本领域技术人员可以理解,图8仅仅是生成设备800的一种示例,并不构成对生成设备800的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述生成设备800还可以包括输入输出设备、网络接入设备、总线等。
所述处理器810可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器820可以是所述生成设备800的内部存储单元,例如生成设备800的硬盘或内存。所述存储器820也可以是所述生成设备800的外部存储设备,例如所述生成设备800上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等等。进一步地,所述存储器820还可以既包括所述生成设备800的内部存储单元也包括外部存储设备。所述存储器820用于存储所述计算机程序821以及所述生成设备800所需的其他程序和数据。所述存储器820还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还公开了一种升级文件的生成设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如前述各个实施例所述的升级文件的生成方法。
本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如前述各个实施例所述的升级文件的生成方法。
本申请实施例还公开了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行前述各个实施例所述的升级文件的生成方法。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种升级文件的生成方法,其特征在于,包括:
获取待升级终端的原始升级包数据,所述原始升级包数据包括文件版本信息;
在所述文件版本信息中叠加干扰码,得到干扰版本信息;
采用所述原始升级包数据和所述干扰版本信息,计算第一校验码;
确定预留字符,并基于所述预留字符计算第二校验码;
分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入所述原始升级包数据的预留地址区域,得到用于对所述待升级终端进行升级的升级文件。
2.根据权利要求1所述的方法,其特征在于,所述在所述文件版本信息中叠加干扰码,得到干扰版本信息,包括:
确定所述文件版本信息包括的多个字节;
分别在所述文件版本信息的每个字节中叠加预设的干扰码,得到所述干扰版本信息。
3.根据权利要求1或2所述的方法,其特征在于,所述采用所述原始升级包数据和所述干扰版本信息,计算第一校验码,包括:
读取所述原始升级包数据中位于所述预留地址区域之前的前半段数据;
合并所述前半段数据和所述干扰版本信息,得到第一校验数据;
采用所述第一校验数据计算所述第一校验码。
4.根据权利要求3所述的方法,其特征在于,所述确定预留字符,包括:
确定预留字段的字段长度;
根据所述字段长度,生成与所述字段长度相等的随机码,作为所述预留字符。
5.根据权利要求4所述的方法,其特征在于,所述基于所述预留字符计算第二校验码,包括:
读取所述原始升级包数据中位于所述预留地址区域之后的后半段数据;
合并所述预留字符和所述后半段数据,得到第二校验数据;
采用所述第二校验数据计算所述第二校验码。
6.根据权利要求1-2或4-5任一项所述的方法,其特征在于,在获取待升级终端的原始升级包数据之前,所述方法还包括:
确定所述预留地址区域,所述预留地址区域用于写入处理后的升级信息;
在将所述待升级终端的程序文件编译为所述原始升级包数据时,将所述预留地址区域编译为空白区域。
7.根据权利要求6所述的方法,其特征在于,所述预留地址区域包括多个数据子区域,每个所述数据子区域分别具有相应的数据标签;所述分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入所述原始升级包数据的预留地址区域,得到用于对所述待升级终端进行升级的升级文件,包括:
根据所述数据标签,分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入对应的所述数据子区域;
对写入有所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码的所述原始升级包数据进行封装,得到用于对所述待升级终端进行升级的升级文件。
8.一种升级文件的生成装置,其特征在于,包括:
原始升级包数据获取模块,用于获取待升级终端的原始升级包数据,所述原始升级包数据包括文件版本信息;
干扰版本信息生成模块,用于在所述文件版本信息中叠加干扰码,得到干扰版本信息;
第一校验码计算模块,用于采用所述原始升级包数据和所述干扰版本信息,计算第一校验码;
第二校验码计算模块,用于确定预留字符,并基于所述预留字符计算第二校验码;
升级文件生成模块,用于分别将所述干扰版本信息、所述预留字符、所述第一校验码和所述第二校验码写入所述原始升级包数据的预留地址区域,得到用于对所述待升级终端进行升级的升级文件。
9.一种升级文件的生成设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的升级文件的生成方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的升级文件的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111643797.3A CN114417402A (zh) | 2021-12-29 | 2021-12-29 | 升级文件的生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111643797.3A CN114417402A (zh) | 2021-12-29 | 2021-12-29 | 升级文件的生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114417402A true CN114417402A (zh) | 2022-04-29 |
Family
ID=81268794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111643797.3A Pending CN114417402A (zh) | 2021-12-29 | 2021-12-29 | 升级文件的生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114417402A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115544521A (zh) * | 2022-11-25 | 2022-12-30 | 神州灵云(北京)科技有限公司 | 一种离线安装文件生成和校验方法、装置、介质及电子设备 |
-
2021
- 2021-12-29 CN CN202111643797.3A patent/CN114417402A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115544521A (zh) * | 2022-11-25 | 2022-12-30 | 神州灵云(北京)科技有限公司 | 一种离线安装文件生成和校验方法、装置、介质及电子设备 |
CN115544521B (zh) * | 2022-11-25 | 2023-03-03 | 神州灵云(北京)科技有限公司 | 一种离线安装文件的校验和生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326743B (zh) | 用于虚拟机中的恶意软件检测的方法和系统 | |
CN101908119B (zh) | 一种动态链接库dll文件的处理方法和装置 | |
US10261783B2 (en) | Automated unpacking of portable executable files | |
US7584364B2 (en) | Overlapped code obfuscation | |
JP7154365B2 (ja) | ソフトウェアコードをセキュアにするための方法 | |
US20100146624A1 (en) | Method and apparatus for protection of a program against monitoring flow manipulation and against incorrect program running | |
US9069953B2 (en) | Method for checking data consistency in a system on chip | |
CN103365776B (zh) | 基于确定性重放的并行系统弱一致性的验证方法和系统 | |
CN102422299B (zh) | 信息设备以及防止执行不正当程序代码的方法 | |
JP5467271B2 (ja) | 情報処理装置及びプログラム、情報処理方法、記録媒体 | |
CN110543420B (zh) | 一种软件测试方法、系统、终端及存储介质 | |
CN114417402A (zh) | 升级文件的生成方法、装置、设备及存储介质 | |
CN112231702A (zh) | 应用保护方法、装置、设备及介质 | |
EP3506100A1 (en) | Automated software application verification system | |
CN110135154B (zh) | 应用程序的注入攻击检测系统及方法 | |
CN106960138B (zh) | 虚拟机指令的校验方法及装置、系统 | |
CN110733443A (zh) | 基于车辆的仪表数据处理方法及装置 | |
Park et al. | Detecting Java theft based on static API trace birthmark | |
CN102855421A (zh) | 防止bios程序被盗用的方法、基本输入输出系统及计算装置 | |
US11256786B2 (en) | Method to secure a software code | |
CN111931191A (zh) | Linux平台二进制软件堆溢漏洞动态检测方法及系统 | |
CN101403977B (zh) | 信息处理装置及其方法 | |
CN111881485B (zh) | 一种基于arm指针验证的内核敏感数据完整性保护方法 | |
CN115964758A (zh) | 一种基于TrustZone的内核数据完整性保护方法 | |
CN112632482A (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 |