CN108052344A - 一种内核差异检测方法及装置 - Google Patents
一种内核差异检测方法及装置 Download PDFInfo
- Publication number
- CN108052344A CN108052344A CN201711311925.8A CN201711311925A CN108052344A CN 108052344 A CN108052344 A CN 108052344A CN 201711311925 A CN201711311925 A CN 201711311925A CN 108052344 A CN108052344 A CN 108052344A
- Authority
- CN
- China
- Prior art keywords
- kernel
- binary file
- time field
- treated
- binary
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种内核差异检测方法及装置,所述方法包括:获得至少两个内核二进制文件;按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,获得具有相同时间字段的至少两个处理后的内核二进制文件,其中,所述时间字段为内核二进制文件中与编译时间相关的二进制码;将所述至少两个处理后的内核二进制文件进行比较;基于比较结果,确定所述至少两个内核二进制文件是否由相同的内核源代码编译生成的。如此,由于通过直接比较具有相同时间字段的多个处理后的内核二进制文件,来确定多个内核二进制文件是否是由为同一源代码编译所生成的,节约了成本,能够大大提高检测效率和速度。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种内核差异检测方法及装置。
背景技术
随着信息化的发展以及计算机技术和互联网技术的普及,人们可以享受到计算机带来的便利。内核是操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网路系统等,决定着系统的性能和稳定性。
在实际应用中,由于将相同的内核源代码编译两次所生成内核二进制文件是不同的,那么,在用户获得两个内核二进制文件时,是无法直接将两个内核二进制文件进行比较,来判断这两个内核二进制文件是否由同一份内核源代码编译出来的。目前,在现有技术中,为了确定两个内核二进制文件是否由同一份内核源代码编译出来的,往往需要先获取到这两个内核二进制文件各自对应的内核源代码,然后,再由开发人员逐行比较两个内核源代码是否相同。可见,现有技术中在确定两个内核二进制文件是否由相同源代码编译得到所存在的问题是:一个方面,在无法获得生成这两个内核二进制文件的内核源代码时,是无法判断确定两个内核二进制文件是否由同一份内核源代码编译出来的;另一方面,即使获取到生成这两个内核二进制文件的内核源代码,人工逐行比较内核源代码的方式成本太大、速度较慢而且效率低下。
发明内容
有鉴于此,本发明实施例提供一种内核差异检测方法及装置,主要目的在于预先对多个内核二进制文件中与编译时间相关的时间字段进行处理,仅通过比较多个处理后的内核二进制文件,能够自动判断多个内核二进制文件是否由为同一源代码编译生成的,不仅节约了成本,而且能够大大提高效率。
为达到上述目的,本发明实施例主要提供如下技术方案:
第一方面,本发明实施例提供一种内核差异检测方法,所述方法包括:获得至少两个内核二进制文件;按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,获得具有相同时间字段的至少两个处理后的内核二进制文件,其中,所述时间字段为内核二进制文件中与编译时间相关的二进制码;将所述至少两个处理后的内核二进制文件进行比较;基于比较结果,确定所述至少两个内核二进制文件是否由相同的内核源代码编译生成的。
第二方面,本发明实施例提供一种内核差异检测装置,其特征在于,所述装置包括:获得单元、处理单元、比较单元以及第一确定单元,其中,所述获得单元,用于获得至少两个内核二进制文件;所述处理单元,用于按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,获得具有相同时间字段的至少两个处理后的内核二进制文件,其中,所述时间字段为内核二进制文件中与编译时间相关的二进制码;所述比较单元,用于将所述至少两个处理后的内核二进制文件进行比较;所述第一确定单元,用于基于比较结果,确定所述至少两个内核二进制文件是否由相同的内核源代码编译生成的。
第三方面,本发明实施例提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述内核差异检测方法。
第四方面,本发明实施例提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述内核差异检测方法。
本发明实施例提供的一种内核差异检测方法及装置,在获得至少两个内核二进制文件后,就会按照预设策略,对每一个内核二进制文件中各自对应的与编译时间相关的时间字段进行处理,以使每一个内核二进制文件中与编译时间相关的时间字段保持一致,这样,就可以获得具有相同时间字段的至少两个处理后的内核二进制文件。接下来,就可以直接将该具有相同时间字段的至少两个处理后的内核二进制文件进行比较,最后,基于比较结果,确定至少两个内核二进制文件是否由相同的内核源代码编译生成的。由于预先对多个内核二进制文件中与编译时间相关的时间字段进行了处理,使得处理后的内核二进制文件中的时间字段相同,这样,无需获取内核二进制文件对应的内核源代码,就可以通过仅比较多个处理后的内核二进制文件,来实现确定多个内核二进制文件是否是由为同一源代码编译所生成的,从而,不仅节约了成本,而且能够大大提高效率。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例一中的内核差异检测方法的流程示意图;
图2示出了本发明实施例二中的内核差异检测装置的结构示意图;
图3示出了本发明实施例三中的内核差异检测设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
实施例一
本发明实施例提供一种内核差异检测方法,该内核差异检测方法可以应用于各种需要进行内核差异检测的场合,如需要判断多个内核二进制文件是否由同一内核源代码编译生成时、快速检测Linux内核差异等。
图1为本发明实施例一中的内核差异检测方法的流程示意图,参见图1所示,该内核差异检测方法包括:
S101:获得至少两个内核二进制文件;
这里,内核二进制文件是指将内核源代码编译后生成的二进制文件。
在实际应用中,当需要判断多个内核二进制文件是否由同一份内核源代码编译所生成的时,就可以获得至少两个内核二进制文件。
S102:按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,获得具有相同时间字段的至少两个处理后的内核二进制文件;
在实际应用中,发明人发现:将相同的内核源代码编译两次所生成的两个内核二进制文件是不相同的,主要原因是由于在生成的二进制文件中会有多处字段与编译时间相关,但是,将该内核源代码编译两次所对应的两次编译时间是不相同的。因此,为了判断多个内核二进制文件是否是由同一份内核源代码编译生成的,在获得了至少两个内核二进制文件后,首先需要消除每一个内核二进制文件由于编译时间不同所带来的内核二进制文件的不同,此时,就可以按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,使得多个内核二进制文件中与编译时间相关的字段保持一样,这样,就可以获得具有相同时间字段的处理后的多个内核二进制文件。
这里,由于内核二进制文件本质上为内核二进制文件,因此,这里的时间字段为内核二进制文件中与编译时间相关的二进制码。其中,编译时间是指将内核源代码编译生成该内核二进制文件的时间。
在具体实施过程中,内核二进制文件中多处位置中对应的二进制代码为与编译时间相关的时间字段,因此,上述时间字段可以是指直接指示编译时间的内核编译时间存储区域所对应的二进制码,也可以是指由编译时间所计算出的数据,如内核版本号等,这里,本发明实施例不做具体限定。
示例性地,某一个内核二进制文件中的内核编译时间为:“#1SMP PREEMPT FriSep 29 19:07:55 CST 2017”。该内核编译时间对应的二进制码即就是时间字段。
在具体实施过程中,为了从每一个内核二进制文件中确定出对应的时间字段,因此,在S102之前,上述内核差异检测方法还可以包括:获取每一个内核二进制文件各自对应的内核符号表;基于内核符号表,从每一个内核二进制文件中,确定出每一个内核二进制文件各自对应的时间字段。
在实际应用中,与编译时间相关的时间字段均会与内核符号表中的相关变量相对应,如与UTS_VERSION相关的变量等,其中,与UTS_VERSION相关的变量可以为:init_uts_ns.name.version、linux_banner等。因此,为了从每一个内核二进制文件中确定出对应的时间字段,可以基于与编译时间相关的变量,然后,通过每一个内核二进制文件对应的内核符号表进行反向查,获取该与编译时间相关的变量对应的二进制码,这样,就可以获得所需的每一个内核二进制文件各自对应的时间字段。
下面详细介绍如何按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理。
第一种方法,通过将每一个内核二进制文件中的时间字段全部清零或者置1的方式,来保证处理后的每一个内核二进制文件中的时间字段相同。
在具体实施过程中,上述S102可以包括:将每一个内核二进制文件中各自对应的时间字段全部设置为0或者1。
具体地,为了快速地获得处理后的内核二进制文件,可以直接将每一个内核二进制文件中与编译时间相关的二进制码全部置0或者全部置1。
第二种方法,通过删除时间字段的方式,来保证处理后的每一个二进制文件不会受到编译时间不同所带来的影响。
在具体实施过程中,上述S102可以包括:删除每一个内核二进制文件中各自对应的时间字段。
具体地,为了更快速地获得处理后的内核二进制文件,可以直接将每一个内核二进制文件中与编译时间相关的时间字段删除。
第三种方法,通过将每一个内核二进制文件中的时间字段全部替换为预设二进制码的方式,来保证处理后的每一个内核二进制文件中的时间字段相同。
在具体实施过程中,上述S102可以包括:从每一个内核二进制文件各自对应的时间字段中,将任意一个时间字段确定为预设二进制码;将每一个内核二进制文件各自对应的时间字段均替换为预设二进制码。
具体地,在内核二进制文件数量较少的时候,为了更快地获得处理后的内核二进制文件,可以从多个二进制文件中各自对应的时间字段选择任意一个时间字段作为预设二进制码,然后将除该预设二进制码对应的内核二进制文件之外,其它内核二进制文件中的时间字段均替换为该预设二进制码。这样,就可以减少一次替换的过程。
需要说明的是,按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理的方法可以不局限于以上三种方法,还可以为其它能够使得消除每一个内核二进制文件由于编译时间不同所带来的内核二进制文件的不同,使得多个内核二进制文件中与编译时间相关的字段保持一样的方法。
S103:将至少两个处理后的内核二进制文件进行比较;
具体地,由于预先将多个内核二进制文件中与编译时间相关的时间字段保持一致,这样,在获得了具有相同时间字段的至少两个处理后的内核二进制文件后,就可以直接将这些具有相同时间字段的处理后的内核二进制文件进行比较,以便确定处理前的内核二进制文件是否由同一份内核源代码编译生成的。
在具体实施过程中,为了快速地确定出至少两个处理后的内核二进制文件是否相同,上述S103可以包括:通过哈希算法,计算至少两个处理后的内核二进制文件各自对应的哈希值,获得至少两个哈希值;比较至少两个哈希值是否相同;如果至少两个哈希值是相同的,确认至少两个处理后的内核二进制文件是相同的;否则,至少两个处理后的内核二进制文件是不相同的。
在实际应用中,哈希(HASH)算法,也可以称为哈希函数,典型的哈希算法包括MD2(Message-Digest Algorithm 2,信息-摘要算法2)、MD4(Message-Digest Algorithm 4,信息-摘要算法4)、MD5(Message-Digest Algorithm 5,信息-摘要算法5)和SHA-1(SecureHash Algorithm,安全散列算法)等。
示例性地,假设需要比较两个处理后的内核二进制文件,可以先通过MD5计算出每一个处理后的内核二进制文件的MD5值,获得对应的两个MD5值,然后,比较这两个处理后的内核二进制文件的MD5值是否相同,如果这两个MD5值是相同的,则可以确定这两个处理后的内核二进制文件是相同的;如果这两个MD5值是不相同的,则可以确定出这两个处理后的内核二进制文件是不相同的,这样,通过哈希算法计算每一个处理后的内核二进制文件的哈希值,就可以快速地确定出所得到的两个处理后的内核二进制文件是否相同。
S104:基于比较结果,确定至少两个内核二进制文件是否由相同的内核源代码编译生成的。
具体地,由于预先将多个内核二进制文件中与编译时间相关的时间字段保持一致,才获得的至少两个处理后的内核二进制文件,那么,在直接将该至少两个处理后的内核二进制文件进行比较后,就可以根据比较结果来确定出原始的至少两个内核二进制文件是否是由相同的内核源代码编译所生成的。
在具体实施过程中,上述S104可以包括:如果至少两个处理后的内核二进制文件是相同的,确定至少两个处理后的内核二进制文件是由相同的内核源代码编译生成的;否则,确定至少两个处理后的内核二进制文件是由不相同的内核源代码编译生成的。
至此,便完成了内核差异检测的过程。
由上述内容可知,本发明实施例所提供的内核差异检测方法,在获得至少两个内核二进制文件后,就会按照预设策略,对每一个内核二进制文件中各自对应的与编译时间相关的时间字段进行处理,以使每一个内核二进制文件中与编译时间相关的时间字段保持一致,这样,就可以获得具有相同时间字段的至少两个处理后的内核二进制文件。接下来,就可以直接将该具有相同时间字段的至少两个处理后的内核二进制文件进行比较,最后,基于比较结果,确定至少两个内核二进制文件是否由相同的内核源代码编译生成的。由于预先对多个内核二进制文件中与编译时间相关的时间字段进行了处理,使得处理后的内核二进制文件中的时间字段相同,这样,无需获取内核二进制文件对应的内核源代码,就可以通过仅比较多个处理后的内核二进制文件,来实现确定多个内核二进制文件是否是由为同一源代码编译所生成的,从而,不仅节约了成本,而且能够大大提高效率。
实施例二
基于同一发明构思,作为对上述方法的实现,本发明实施例提供了一种内核差异检测装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
图2为本发明实施例二中的内核差异检测装置的结构示意图,参见图2所示,该内核差异检测装置20包括:获得单元201、处理单元202、比较单元203以及第一确定单元204,其中,获得单元201,用于获得至少两个内核二进制文件;处理单元202,用于按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,获得具有相同时间字段的至少两个处理后的内核二进制文件,其中,时间字段为内核二进制文件中与编译时间相关的二进制码;比较单元203,用于将至少两个处理后的内核二进制文件进行比较;第一确定单元204,用于基于比较结果,确定至少两个内核二进制文件是否由相同的内核源代码编译生成的。
在本发明其它实施例中,该装置还包括:获取单元以及第二确定单元,其中,获取单元,用于获取每一个内核二进制文件各自对应的内核符号表;第二确定单元,用于基于内核符号表,从每一个内核二进制文件中,确定出每一个内核二进制文件各自对应的时间字段。
在本发明实施例中,处理单元,用于将每一个内核二进制文件中各自对应的时间字段全部设置为0或者1。
在本发明实施例中,处理单元,用于删除每一个内核二进制文件中各自对应的时间字段。
在本发明实施例中,处理单元,用于从每一个内核二进制文件各自对应的时间字段中,将任意一个时间字段确定为预设二进制码;将每一个内核二进制文件各自对应的时间字段均替换为预设二进制码。
在本发明实施例中,第一确定单元,用于如果至少两个处理后的内核二进制文件是相同的,确定至少两个处理后的内核二进制文件是由相同的内核源代码编译生成的;否则,确定至少两个处理后的内核二进制文件是由不相同的内核源代码编译生成的。
在本发明实施例中,比较单元,用于通过哈希算法,计算至少两个处理后的内核二进制文件各自对应的哈希值,获得至少两个哈希值;比较至少两个哈希值是否相同;如果至少两个哈希值是相同的,确认至少两个处理后的内核二进制文件是相同的;否则,至少两个处理后的内核二进制文件是不相同的。
上述内核差异检测装置包括处理器和存储器,上述获得单元、处理单元、比较单元以及第一确定单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
上述处理器可由中央处理器(Central Processing Unit,CPU)、微处理器(MicroProcessor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)、或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
存储器可能包括计算机可读介质中的非永久性存储器,随机存储器(RandomAccess Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read Only Memory,ROM)或闪存(Flash RAM),存储器包括至少一个存储芯片。
基于同一发明构思,本发明实施例提供一种存储介质,其上存储有程序,该程序被处理器执行时实现上述内核差异检测方法。
基于同一发明构思,本发明实施例提供一种处理器,处理器用于运行程序,其中,程序运行时执行上述内核差异检测方法。
在实际应用中,该内核差异检测装置可应用于终端中。终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable MediaPlayer,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机、服务器等固定终端。
实施例三
基于同一发明构思,本发明实施例提供一种内核差异检测设备。图3为本发明实施例三中的内核差异检测设备的结构示意图,参见图3所示,该内核差异检测设备30包括:存储器301、处理器302以及存储在存储器301上并可在处理器302上运行的计算机程序303,处理器执行程序303时实现以下步骤:获得至少两个内核二进制文件;按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,获得具有相同时间字段的至少两个处理后的内核二进制文件,其中,时间字段为内核二进制文件中与编译时间相关的二进制码;将至少两个处理后的内核二进制文件进行比较;基于比较结果,确定至少两个内核二进制文件是否由相同的内核源代码编译生成的。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:获取每一个内核二进制文件各自对应的内核符号表;基于内核符号表,从每一个内核二进制文件中,确定出每一个内核二进制文件各自对应的时间字段。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:将每一个内核二进制文件中各自对应的时间字段全部设置为0或者1。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:删除每一个内核二进制文件中各自对应的时间字段。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:从每一个内核二进制文件各自对应的时间字段中,将任意一个时间字段确定为预设二进制码;将每一个内核二进制文件各自对应的时间字段均替换为预设二进制码。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:如果至少两个处理后的内核二进制文件是相同的,确定至少两个处理后的内核二进制文件是由相同的内核源代码编译生成的;否则,确定至少两个处理后的内核二进制文件是由不相同的内核源代码编译生成的。
在本发明实施例中,上述处理器执行程序时还可实现以下步骤:通过哈希算法,计算至少两个处理后的内核二进制文件各自对应的哈希值,获得至少两个哈希值;比较至少两个哈希值是否相同;如果至少两个哈希值是相同的,确认至少两个处理后的内核二进制文件是相同的;否则,至少两个处理后的内核二进制文件是不相同的。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,RAM和/或非易失性内存等形式,如ROM或Flash RAM。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质可以是ROM、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是快闪记忆体或其他内存技术、CD-ROM、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息;还可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种内核差异检测方法,其特征在于,所述方法包括:
获得至少两个内核二进制文件;
按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,获得具有相同时间字段的至少两个处理后的内核二进制文件,其中,所述时间字段为内核二进制文件中与编译时间相关的二进制码;
将所述至少两个处理后的内核二进制文件进行比较;
基于比较结果,确定所述至少两个内核二进制文件是否由相同的内核源代码编译生成的。
2.根据权利要求1所述的方法,其特征在于,在所述按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,获得至少两个处理后的内核二进制文件之前,所述方法还包括:
获取每一个内核二进制文件各自对应的内核符号表;
基于所述内核符号表,从所述每一个内核二进制文件中,确定出所述每一个内核二进制文件各自对应的所述时间字段。
3.根据权利要求1或2所述的方法,其特征在于,所述按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,包括:
将每一个内核二进制文件中各自对应的时间字段全部设置为0或者1。
4.根据权利要求1或2所述的方法,其特征在于,所述按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,包括:
删除每一个内核二进制文件中各自对应的时间字段。
5.根据权利要求1或2所述的方法,其特征在于,所述按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,包括:
从所述每一个内核二进制文件各自对应的时间字段中,将任意一个时间字段确定为预设二进制码;
将所述每一个内核二进制文件各自对应的时间字段均替换为所述预设二进制码。
6.根据权利要求1所述的方法,其特征在于,所述基于比较结果确定所述至少两个内核二进制文件是否由相同的内核源代码编译生成的包括:
如果所述至少两个处理后的内核二进制文件是相同的,确定所述至少两个处理后的内核二进制文件是由相同的内核源代码编译生成的;否则,确定所述至少两个处理后的内核二进制文件是由不相同的内核源代码编译生成的。
7.根据权利要求1或6所述的方法,其特征在于,所述将所述至少两个处理后的内核二进制文件进行比较,包括:
通过哈希算法,计算所述至少两个处理后的内核二进制文件各自对应的哈希值,获得至少两个哈希值;
比较所述至少两个哈希值是否相同;
如果所述至少两个哈希值是相同的,确认所述至少两个处理后的内核二进制文件是相同的;否则,所述至少两个处理后的内核二进制文件是不相同的。
8.一种内核差异检测装置,其特征在于,所述装置包括:获得单元、处理单元、比较单元以及第一确定单元,其中,
所述获得单元,用于获得至少两个内核二进制文件;
所述处理单元,用于按照预设策略,对每一个内核二进制文件中各自对应的时间字段进行处理,获得具有相同时间字段的至少两个处理后的内核二进制文件,其中,所述时间字段为内核二进制文件中与编译时间相关的二进制码;
所述比较单元,用于将所述至少两个处理后的内核二进制文件进行比较;
所述第一确定单元,用于基于比较结果,确定所述至少两个内核二进制文件是否由相同的内核源代码编译生成的。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1至7任一项所述的内核差异检测方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求1至7任一项所述的内核差异检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711311925.8A CN108052344A (zh) | 2017-12-11 | 2017-12-11 | 一种内核差异检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711311925.8A CN108052344A (zh) | 2017-12-11 | 2017-12-11 | 一种内核差异检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108052344A true CN108052344A (zh) | 2018-05-18 |
Family
ID=62124133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711311925.8A Pending CN108052344A (zh) | 2017-12-11 | 2017-12-11 | 一种内核差异检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108052344A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486555A (zh) * | 2020-12-07 | 2021-03-12 | 浙江诺诺网络科技有限公司 | 软件增量升级方法、装置、设备及计算机可读存储介质 |
CN112799649A (zh) * | 2020-06-15 | 2021-05-14 | 中兴通讯股份有限公司 | 代码构建方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259900A1 (en) * | 2005-05-12 | 2006-11-16 | Xerox Corporation | Method for creating unique identification for copies of executable code and management thereof |
CN106547573A (zh) * | 2016-12-06 | 2017-03-29 | 恒生电子股份有限公司 | 一种程序文件对比方法及装置 |
CN106547572A (zh) * | 2016-12-06 | 2017-03-29 | 恒生电子股份有限公司 | 一种程序文件对比方法及装置 |
CN106575337A (zh) * | 2014-08-20 | 2017-04-19 | 日本电信电话株式会社 | 漏洞发现装置、漏洞发现方法以及漏洞发现程序 |
-
2017
- 2017-12-11 CN CN201711311925.8A patent/CN108052344A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060259900A1 (en) * | 2005-05-12 | 2006-11-16 | Xerox Corporation | Method for creating unique identification for copies of executable code and management thereof |
CN106575337A (zh) * | 2014-08-20 | 2017-04-19 | 日本电信电话株式会社 | 漏洞发现装置、漏洞发现方法以及漏洞发现程序 |
CN106547573A (zh) * | 2016-12-06 | 2017-03-29 | 恒生电子股份有限公司 | 一种程序文件对比方法及装置 |
CN106547572A (zh) * | 2016-12-06 | 2017-03-29 | 恒生电子股份有限公司 | 一种程序文件对比方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799649A (zh) * | 2020-06-15 | 2021-05-14 | 中兴通讯股份有限公司 | 代码构建方法、装置、设备和存储介质 |
WO2021254243A1 (zh) * | 2020-06-15 | 2021-12-23 | 中兴通讯股份有限公司 | 代码构建方法、装置、设备和存储介质 |
CN112799649B (zh) * | 2020-06-15 | 2023-09-12 | 中兴通讯股份有限公司 | 代码构建方法、装置、设备和存储介质 |
CN112486555A (zh) * | 2020-12-07 | 2021-03-12 | 浙江诺诺网络科技有限公司 | 软件增量升级方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108053211B (zh) | 基于区块链的交易处理方法及装置 | |
CN109658238B (zh) | 数据处理方法及装置 | |
US8972960B2 (en) | Optimization of an application to reduce local memory usage | |
US10043009B2 (en) | Technologies for software basic block similarity analysis | |
US10503901B2 (en) | Training a machine learning model for container file analysis | |
CN107992307B (zh) | 一种函数编译方法及装置 | |
Audano et al. | KAnalyze: a fast versatile pipelined K-mer toolkit | |
US8352484B1 (en) | Systems and methods for hashing executable files | |
CN110825363B (zh) | 智能合约获取方法、装置、电子设备及存储介质 | |
US20140041037A1 (en) | Detecting pirated applications | |
CN109446753A (zh) | 检测盗版应用程序的方法、装置、计算机设备及存储介质 | |
US20180096148A1 (en) | Detecting malicious scripts | |
US20170249143A1 (en) | Detecting open source components built into mobile applications | |
CN104573434A (zh) | 帐户保护方法、装置及系统 | |
CN111562965A (zh) | 基于决策树的页面数据校验方法和装置 | |
US20210342447A1 (en) | Methods and apparatus for unknown sample classification using agglomerative clustering | |
CN108052344A (zh) | 一种内核差异检测方法及装置 | |
KR20200096766A (ko) | 오픈소스 소프트웨어의 라이선스를 검증하는 방법 및 시스템 | |
Ozogur et al. | Android malware detection in bytecode level using TF-IDF and XGBoost | |
US20190340542A1 (en) | Computational Efficiency in Symbolic Sequence Analytics Using Random Sequence Embeddings | |
US20200142972A1 (en) | System and method for identifying open source repository used in code | |
CN110968754B (zh) | 一种爬虫翻页策略的检测方法及装置 | |
CN106446676A (zh) | Pe文件的处理方法及装置 | |
CN110362595A (zh) | 一种sql语句动态解析方法 | |
US20170279841A1 (en) | Methods of determining a file similarity fingerprint |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180518 |
|
RJ01 | Rejection of invention patent application after publication |