CN110348219A - 版本比对方法、***、计算机设备及可读存储介质 - Google Patents
版本比对方法、***、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN110348219A CN110348219A CN201910512081.6A CN201910512081A CN110348219A CN 110348219 A CN110348219 A CN 110348219A CN 201910512081 A CN201910512081 A CN 201910512081A CN 110348219 A CN110348219 A CN 110348219A
- Authority
- CN
- China
- Prior art keywords
- code
- file
- module information
- data
- version
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000015654 memory Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012986 modification Methods 0.000 abstract description 6
- 230000004048 modification Effects 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000008859 change Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了版本比对方法、***、计算机设备及可读存储介质,属于计算机技术领域。本发明通过将目标版本文件中,每一模块信息的代码标识数据与比对版本文件中相应的模块信息的代码标识数据进行比对,从而获取两个版本文件中所有改动过代码的模块信息,进而根据模块信息获取相应的漏洞标识数据,实现快速准确定位修改代码及相应漏洞的目的。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种版本比对方法、***、计算机设备及可读存储介质。
背景技术
在产品研发阶段,经常会改动产品的模块代码,由于产品的模块之间通常有交集,因此当某个模块的代码改动后,可能会导致其它模块出现错误或者BUG(漏洞),然而,这种BUG很难定位需修改的代码位置,一般情况下就会通过查看近期的提交的全部代码以及近期完成的BUG,逐个进行排查找到问题源头。在实际操作时,需要查找出两份***代码的差异,通过对比代码文件的方式在手动查找相关改动,步骤繁琐,易发生错误,工作效率降低。
发明内容
针对改动的代码位置及相应的漏洞不易定位的问题,现提供一种旨在可快速定位修改代码及相应漏洞的版本比对方法、***、计算机设备及可读存储介质。
本发明提出了一种版本比对方法,包括以下步骤:
获取目标版本文件和比对版本文件;
将所述目标版本文件中,每一模块信息的代码标识数据与所述比对版本文件中相应的模块信息的代码标识数据进行比对,获取不同代码标识数据的模块信息,并生成用于存储不同代码标识数据的模块信息的第一文件;
基于所述代码标识数据读取所述第一文件中每一条模块信息对应的代码,获取所述代码对应的漏洞标识数据,生成用于存储所述漏洞标识数据及相应的模块信息的第二文件。
优选的,所述模块信息包括:模块名称及相应的代码路径。
优选的,将所述目标版本文件中,每一模块信息的代码标识数据与所述比对版本文件中相应的模块信息的代码标识数据进行比对,获取不同代码标识数据的模块信息,并生成用于存储不同代码标识数据的模块信息的第一文件的步骤,包括:
将所述目标版本文件与所述比对版本文件中模块名称相同且代码路径相同的代码标识数据进行比对,记录模块名称相同、代码路径相同且代码标识数据不同的模块信息;
将模块名称相同、代码路径相同且代码标识数据不同的模块信息存储于所述第一文件中。
优选的,所述代码标识数据采用代码版本号;
基于所述代码标识数据读取所述第一文件中每一条模块信息对应的代码,获取所述代码对应的漏洞标识数据,生成用于存储所述漏洞标识数据及相应的模块信息的第二文件的步骤,包括:
根据每一模块信息对应的两个不同的代码版本号,获取两个代码版本号之间与所述模块信息对应的所有代码版本号及相应的模块信息;
逐条读取每一代码版本号对应的所述模块信息中的代码,并获取与所述代码对应的漏洞标识数据;
生成用于存储所述漏洞标识数据及相应的模块信息的第二文件。
优选的,提供一存储漏洞信息的漏洞文件,每一漏洞信息对应一相应的漏洞标识数据,还包括:
根据所述漏洞标识数据获取所述漏洞文件中与所述漏洞标识数据对应的漏洞信息;
生成用于存储所述漏洞标识数据、与所述漏洞标识数据对应的漏洞信息以及相应的所述模块信息的第三文件。
优选的,生成用于存储所述漏洞标识数据、与所述漏洞标识数据对应的漏洞信息以及相应的所述模块信息的第三文件的步骤之后,还包括:
统计所述第三文件中的每一所述漏洞标识数据、与所述漏洞标识数据对应的漏洞信息以及相应的所有所述模块信息。
优选的,所述漏洞信息包括漏洞名称。
本发明还提供了一种版本比对***,包括:
获取单元,用于获取目标版本文件和比对版本文件;
比对单元,用于将所述目标版本文件中,每一模块信息的代码标识数据与所述比对版本文件中相应的模块信息的代码标识数据进行比对,获取不同代码标识数据的模块信息,并生成用于存储不同代码标识数据的模块信息的第一文件;
生成单元,用于基于所述代码标识数据读取所述第一文件中每一条模块信息对应的代码,获取所述代码对应的漏洞标识数据,生成用于存储所述漏洞标识数据及相应的模块信息的第二文件。
本发明还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述技术方案的有益效果:
本技术方案中,通过将目标版本文件中,每一模块信息的代码标识数据与比对版本文件中相应的模块信息的代码标识数据进行比对,从而获取两个版本文件中所有改动过代码的模块信息,进而根据模块信息获取相应的漏洞标识数据,实现快速准确定位修改代码及相应漏洞的目的。
附图说明
图1为本发明所述的版本比对***的一种实施例的框架图;
图2为本发明所述的版本比对方法的一种实施例的流程图;
图3为本发明所述的版本比对方法的另一种实施例的流程图;
图4为本发明所述的版本比对方法的另一种实施例的流程图;
图5为本发明所述的版本比对方法的另一种实施例的流程图;
图6为本发明所述的版本比对方法的另一种实施例的流程图;
图7为本发明所述的版本比对***的一种实施例的模块图;;
图8为本发明实施例提供的执行版本比对方法的计算机设备的硬件结构示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本发明的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”。
在本发明的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
本申请实施例的电视为模拟电视、数字电视、标准电视、大屏电视、高清电视、移动电视、安卓(Android)电视以及其他智能电视等。
本申请实施例中的版本比对方法可以应用于电视机研发阶段中,还可以应用于工厂生产中。本申请实施例以版本比对方法应用于电视机***的研发中为例子,但是并不局限于此。
图1是本申请实施例提供的版本比对***的框架图。如图1所示,采用服务器A对客户端B发送的两个不同版本的文件(即:目标版本文件和比对版本文件)进行比对,通过代码标识数据识别改动的模块信息,获取两个版本文件中所有改动过代码的模块信息,进而根据模块信息获取相应的漏洞标识数据,实现准确、快速的定位修改代码及相应漏洞。在本实施例中,两个不同版本的文件可以存储于服务器A中,可以分别存储于两个不同的客户端中。需要说明的是:服务器A的设备不局限于图示的移动设备,可以有多种形式存在。
本发明为解决改动的代码位置及相应的漏洞不易定位的缺陷,提出了一种可快速定位修改代码的版本比对方法。参阅图2,其为一符合本发明一优选实施例的版本比对方法的流程示意图,从图中可以看出,本实施例中所提供的版本比对方法主要包括以下步骤:
S1.获取目标版本文件和比对版本文件;
需要说明的是:目标版本文件和比对版本文件为版本不同的两个文件。目标版本文件中包括至少一个模块的模块信息及与该模块信息关联的代码标识数据。比对版本文件中包括至少一个模块的模块信息及与该模块信息关联的代码标识数据。
其中,模块是指功能模块,如:蓝牙模块、WIFI模块、显示模块、图像处理模块,音频模块等。
作为举例而非限定,目标版本文件和比对版本文件可采用可扩展标记语言格式。目标版本文件和比对版本文件可以是安卓(Android)代码版本文件。
S2.将所述目标版本文件中,每一模块信息的代码标识数据与所述比对版本文件中相应的模块信息的代码标识数据进行比对,获取不同代码标识数据的模块信息,并生成用于存储不同代码标识数据的模块信息的第一文件;
其中,所述模块信息可包括:模块名称(如:git name)及相应的代码路径(path)。
进一步地,在步骤S2中,将所述目标版本文件中,每一模块信息的代码标识数据与所述比对版本文件中相应的模块信息的代码标识数据进行比对,获取不同代码标识数据的模块信息,并生成用于存储不同代码标识数据的模块信息的第一文件的步骤,具体可包括(如图3所示):
S21.将所述目标版本文件与所述比对版本文件中模块名称相同且代码路径相同的代码标识数据进行比对,记录模块名称相同、代码路径相同且代码标识数据不同的模块信息;
S22.将模块名称相同、代码路径相同且代码标识数据不同的模块信息存储于所述第一文件中。
于本实施例中,可通过对两个版本文件的循环双向逐行对比,查找git name与path内容相同的两个模块信息,并且检测模块信息的代码标识数据是否相同;若不相同,则将代码标识数据不相同的模块信息记录在第一文件(如:change_id.txt)中,从而保存gitname、path以及不相同的代码标识数据。完成两个版本文件对比之后,可在change_id.txt内得到全部含有代码改动git name的path与代码标识数据。
S3.基于所述代码标识数据读取所述第一文件中每一条模块信息对应的代码,获取所述代码对应的漏洞标识数据,生成用于存储所述漏洞标识数据及相应的模块信息的第二文件。
于本实施例中,所述代码标识数据采用代码版本号。
进一步地,在步骤S3中,基于所述代码标识数据读取所述第一文件中每一条模块信息对应的代码,获取所述代码对应的漏洞标识数据,生成用于存储所述漏洞标识数据及相应的模块信息的第二文件的步骤,具体可包括(如图4所示):
S31.根据每一模块信息对应的两个不同的代码版本号,获取两个代码版本号之间与所述模块信息对应的所有代码版本号及相应的模块信息;
S32.逐条读取每一代码版本号对应的所述模块信息中的代码,并获取与所述代码对应的漏洞标识数据;
S33.生成用于存储所述漏洞标识数据及相应的模块信息的第二文件。
于本实施例中,逐行读取change_id.txt中的每一条信息,对每一个有代码改动的git name都会进入对应的源码path下,进行搜索操作(如:git log命令操作)获取两个代码版本号中间包含的所有代码改动的代码版本号(commit-id)以及漏洞标识数据(bug_id)。当搜索完全部有代码改动的模块(即:git)之后,则获取了两个版本文件中全部改动的commit-id及相应的bug_id。可建立commit-id与相应的git name和分支(branch)之间的关联关系,从而获得改动代码的对应地址,并且将所有地址及其对应bug_id保存于第二文件(如:report.xml)内。
作为举例而非限定,在第二文件中可生成如下格式的网页链接:
http://git-sc.amlogic.com/device/amlogic/commit/?h=n-amlogic&id=d09d0f60eb66ae78606d896083516c55f35d4de2
http://git-sc.amlogic.com/vendor/amlogic/dvb/commit/?h=tv-arch-next&id=3fb55d8ee4140406ca6f46b2848f72572b6486f5
其中“device/amlogic”和“vendor/amlogic/dvb”均表示模块的名称;“h=n-amlogic”和“h=tv-arch-next”均表示分支的名称分别为“n-amlogic”和“tv-arch-next”;“id=”后面的字符串是改动对应的commit-id,相当于是模块的身份证。
在本实施例中,采用版本比对方法可自动解析不同Android代码版本差异,得到所有漏洞以及改动的代码。通过将目标版本文件中,每一模块信息的代码标识数据与比对版本文件中相应的模块信息的代码标识数据进行比对,从而获取两个版本文件中所有改动过代码的模块信息,进而根据模块信息获取相应的漏洞标识数据,实现快速准确定位修改代码及相应漏洞的目的。
在实际应用中,对于每日的Android代码autobuild版本发布中,可采用本发明的版本比对方法利用代码的xml文件直接生成出结果,可以节省每日autobuild所需的工时,可将原本需要半个多小时的autobuild版本发布工作在五分钟内完成。
请参阅图5所示,提供一存储漏洞信息的漏洞文件,每一漏洞信息对应一相应的漏洞标识数据,基于上述的版本比对方法还可包括:
S4.根据所述漏洞标识数据获取所述漏洞文件中与所述漏洞标识数据对应的漏洞信息;
其中,所述漏洞信息可包括漏洞名称。
S5.生成用于存储所述漏洞标识数据、与所述漏洞标识数据对应的漏洞信息以及相应的所述模块信息的第三文件。
作为举例而非限定,在执行步骤S4之前,可先将report.xml文件格式更改为文本格式(即:txt)。可采用JIRA(Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域)对漏洞文件进行爬取,进而得到bug_id所对应的漏洞名称(bug_title)的内容,具体的过程为:将bug_id与JIRA域名相结合则可以得到bug_id对应的JIRA页面的网页链接,再通过爬取网页链接(如:采用python的bs4模块)的内容获取其链接的网页源码,通过find函数查找到bug_title的具体内容,再将bug_id与bug_title结合起来形成完整的一条bug内容,再与git name及path关联,即可得到改动的代码及相应的漏洞。
请参阅图6所示,基于上述的版本比对方法还可包括:
S6.统计所述第三文件中的每一所述漏洞标识数据、与所述漏洞标识数据对应的漏洞信息以及相应的所有所述模块信息。
在本实施例中,可对第三文件中的数据进行调整,将相同的bug_id的所有改动链接并入到一起,以便于观察统计。
如图7所示,本发明还可包括一种版本比对***7,包括:获取单元71、比对单元72和生成单元73;其中:
获取单元71,用于获取目标版本文件和比对版本文件;
需要说明的是:目标版本文件和比对版本文件为版本不同的两个文件。目标版本文件中包括至少一个模块的模块信息及与该模块信息关联的代码标识数据。比对版本文件中包括至少一个模块的模块信息及与该模块信息关联的代码标识数据。
其中,模块是指功能模块,如:蓝牙模块、WIFI模块、显示模块、图像处理模块,音频模块等。
作为举例而非限定,目标版本文件和比对版本文件可采用可扩展标记语言格式。目标版本文件和比对版本文件可以是安卓(Android)代码版本文件。
比对单元72,用于将所述目标版本文件中,每一模块信息的代码标识数据与所述比对版本文件中相应的模块信息的代码标识数据进行比对,获取不同代码标识数据的模块信息,并生成用于存储不同代码标识数据的模块信息的第一文件;
进一步地,比对单元72可将所述目标版本文件与所述比对版本文件中模块名称相同且代码路径相同的代码标识数据进行比对,记录模块名称相同、代码路径相同且代码标识数据不同的模块信息;将模块名称相同、代码路径相同且代码标识数据不同的模块信息存储于所述第一文件中。
生成单元73,用于基于所述代码标识数据读取所述第一文件中每一条模块信息对应的代码,获取所述代码对应的漏洞标识数据,生成用于存储所述漏洞标识数据及相应的模块信息的第二文件。
于本实施例中,所述代码标识数据采用代码版本号。
进一步地,生成单元73可根据每一模块信息对应的两个不同的代码版本号,获取两个代码版本号之间与所述模块信息对应的所有代码版本号及相应的模块信息;逐条读取每一代码版本号对应的所述模块信息中的代码,并获取与所述代码对应的漏洞标识数据;生成用于存储所述漏洞标识数据及相应的模块信息的第二文件。
在本实施例中,采用版本比对***7可自动解析不同Android代码版本差异,得到所有漏洞以及改动的代码。通过将目标版本文件中,每一模块信息的代码标识数据与比对版本文件中相应的模块信息的代码标识数据进行比对,从而获取两个版本文件中所有改动过代码的模块信息,进而根据模块信息获取相应的漏洞标识数据,实现快速准确定位修改代码及相应漏洞的目的。
参考图7所示,版本比对***7还可包括:
漏洞提取单元74,用于根据所述漏洞标识数据获取所述漏洞文件中与所述漏洞标识数据对应的漏洞信息;
处理单元76,用于生成用于存储所述漏洞标识数据、与所述漏洞标识数据对应的漏洞信息以及相应的所述模块信息的第三文件;
参考图7所示,版本比对***7还可包括:
统计单元75,用于统计所述第三文件中的每一所述漏洞标识数据、与所述漏洞标识数据对应的漏洞信息以及相应的所有所述模块信息。
如图8所示,一种计算机设备8,所述计算机设备8包括:
存储器81,用于存储可执行程序代码;以及
处理器82,用于调用所述存储器81中的所述可执行程序代码,执行步骤包括上述的版本比对方法。
图8中以一个处理器82为例。
存储器81作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的版本比对方法对应的程序指令/模块(例如,图7所示的获取单元71、比对单元72、生成单元73、漏洞提取单元74、处理单元76和统计单元75)。处理器82通过运行存储在存储器81中的非易失性软件程序、指令以及模块,从而执行计算机设备8的各种功能应用以及数据处理,即实现上述方法实施例版本比对方法。
存储器81可以包括存储程序区和存储数据区,其中,存储程序区可存储搡作***、至少一个功能所需要的应用程序;存储数据区可存储用户在计算机设备8的播放信息。此外,存储器81可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器81可选包括相对于处理器82远程设置的存储器81,这些远程存储器81可以通过网络连接至版本比对***7。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器81中,当被所述一个或者多个处理器82执行时,执行上述任意方法实施例中的版本比对方法,例如,执行以上描述的图2中的方法步骤S1至步骤S3、图5中的方法步骤S1至步骤S5、图6中的方法步骤S1至步骤S6,实现图7所示的获取单元71、比对单元72、生成单元73、漏洞提取单元74、处理单元76和统计单元75的功能。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的计算机设备8以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、***总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
本申请实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图2中的方法步骤S1至步骤S3、图5中的方法步骤S1至步骤S5、图6中的方法步骤S1至步骤S6,实现图7所示的获取单元71、比对单元72、生成单元73、漏洞提取单元74、处理单元76和统计单元75的功能。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种版本比对方法,其特征在于,包括以下步骤:
获取目标版本文件和比对版本文件;
将所述目标版本文件中,每一模块信息的代码标识数据与所述比对版本文件中相应的模块信息的代码标识数据进行比对,获取不同代码标识数据的模块信息,并生成用于存储不同代码标识数据的模块信息的第一文件;
基于所述代码标识数据读取所述第一文件中每一条模块信息对应的代码,获取所述代码对应的漏洞标识数据,生成用于存储所述漏洞标识数据及相应的模块信息的第二文件。
2.根据权利要求1所述的版本比对方法,其特征在于,所述模块信息包括:模块名称及相应的代码路径。
3.根据权利要求2所述的版本比对方法,其特征在于,将所述目标版本文件中,每一模块信息的代码标识数据与所述比对版本文件中相应的模块信息的代码标识数据进行比对,获取不同代码标识数据的模块信息,并生成用于存储不同代码标识数据的模块信息的第一文件的步骤,包括:
将所述目标版本文件与所述比对版本文件中模块名称相同且代码路径相同的代码标识数据进行比对,记录模块名称相同、代码路径相同且代码标识数据不同的模块信息;
将模块名称相同、代码路径相同且代码标识数据不同的模块信息存储于所述第一文件中。
4.根据权利要求1或2所述的版本比对方法,其特征在于,所述代码标识数据采用代码版本号;
基于所述代码标识数据读取所述第一文件中每一条模块信息对应的代码,获取所述代码对应的漏洞标识数据,生成用于存储所述漏洞标识数据及相应的模块信息的第二文件的步骤,包括:
根据每一模块信息对应的两个不同的代码版本号,获取两个代码版本号之间与所述模块信息对应的所有代码版本号及相应的模块信息;
逐条读取每一代码版本号对应的所述模块信息中的代码,并获取与所述代码对应的漏洞标识数据;
生成用于存储所述漏洞标识数据及相应的模块信息的第二文件。
5.根据权利要求1所述的版本比对方法,其特征在于,提供一存储漏洞信息的漏洞文件,每一漏洞信息对应一相应的漏洞标识数据,还包括:
根据所述漏洞标识数据获取所述漏洞文件中与所述漏洞标识数据对应的漏洞信息;
生成用于存储所述漏洞标识数据、与所述漏洞标识数据对应的漏洞信息以及相应的所述模块信息的第三文件。
6.根据权利要求5所述的版本比对方法,其特征在于,生成用于存储所述漏洞标识数据、与所述漏洞标识数据对应的漏洞信息以及相应的所述模块信息的第三文件的步骤之后,还包括:
统计所述第三文件中的每一所述漏洞标识数据、与所述漏洞标识数据对应的漏洞信息以及相应的所有所述模块信息。
7.根据权利要求5所述的版本比对方法,其特征在于,所述漏洞信息包括漏洞名称。
8.一种版本比对***,其特征在于,包括:
获取单元,用于获取目标版本文件和比对版本文件;
比对单元,用于将所述目标版本文件中,每一模块信息的代码标识数据与所述比对版本文件中相应的模块信息的代码标识数据进行比对,获取不同代码标识数据的模块信息,并生成用于存储不同代码标识数据的模块信息的第一文件;
生成单元,用于基于所述代码标识数据读取所述第一文件中每一条模块信息对应的代码,获取所述代码对应的漏洞标识数据,生成用于存储所述漏洞标识数据及相应的模块信息的第二文件。
9.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910512081.6A CN110348219A (zh) | 2019-06-13 | 2019-06-13 | 版本比对方法、***、计算机设备及可读存储介质 |
PCT/CN2020/094035 WO2020248875A1 (zh) | 2019-06-13 | 2020-06-02 | 版本比对方法、***、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910512081.6A CN110348219A (zh) | 2019-06-13 | 2019-06-13 | 版本比对方法、***、计算机设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110348219A true CN110348219A (zh) | 2019-10-18 |
Family
ID=68181927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910512081.6A Pending CN110348219A (zh) | 2019-06-13 | 2019-06-13 | 版本比对方法、***、计算机设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110348219A (zh) |
WO (1) | WO2020248875A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111046393A (zh) * | 2019-12-14 | 2020-04-21 | 深圳市优必选科技股份有限公司 | 漏洞信息上传方法、装置、终端设备及存储介质 |
CN111309601A (zh) * | 2020-02-03 | 2020-06-19 | 思客云(北京)软件技术有限公司 | 用于生成源代码缺陷漏洞id的方法、设备和计算机可读存储介质 |
WO2020248875A1 (zh) * | 2019-06-13 | 2020-12-17 | 晶晨半导体(上海)股份有限公司 | 版本比对方法、***、计算机设备及可读存储介质 |
CN112256320A (zh) * | 2020-11-04 | 2021-01-22 | 广州繁星互娱信息科技有限公司 | 版本号生成方法、装置、终端及存储介质 |
CN112287658A (zh) * | 2020-11-03 | 2021-01-29 | 深圳壹账通智能科技有限公司 | 一种业务数据处理方法、装置、电子设备以及介质 |
CN112445997A (zh) * | 2020-12-15 | 2021-03-05 | 安徽三实信息技术服务有限公司 | 一种提取cms多版本识别特征规则的方法及装置 |
CN113127049A (zh) * | 2021-04-22 | 2021-07-16 | 安徽三实信息技术服务有限公司 | 一种基于程序源码的程序组成及版本识别特征规则获取方法及装置 |
CN116187625A (zh) * | 2023-04-24 | 2023-05-30 | 中国西安卫星测控中心 | 基于位运算的航天测运控资源调度计划比对方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944061A (zh) * | 2010-09-15 | 2011-01-12 | 青岛海信移动通信技术股份有限公司 | 一种代码调试的方法及装置 |
US20120317647A1 (en) * | 2011-05-26 | 2012-12-13 | Carnegie Mellon University | Automated Exploit Generation |
CN106815135A (zh) * | 2015-11-30 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 漏洞检测方法及装置 |
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424088B (zh) * | 2013-08-21 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 软件的测试方法及装置 |
CN106294133B (zh) * | 2016-07-29 | 2018-05-22 | 腾讯科技(深圳)有限公司 | 一种应用程序安装包的检测方法、相关装置及*** |
CN109241737B (zh) * | 2018-07-03 | 2021-07-13 | 中国科学院信息工程研究所 | 一种面向多种补丁模式的差异分支识别方法及*** |
CN110348219A (zh) * | 2019-06-13 | 2019-10-18 | 晶晨半导体(上海)股份有限公司 | 版本比对方法、***、计算机设备及可读存储介质 |
-
2019
- 2019-06-13 CN CN201910512081.6A patent/CN110348219A/zh active Pending
-
2020
- 2020-06-02 WO PCT/CN2020/094035 patent/WO2020248875A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944061A (zh) * | 2010-09-15 | 2011-01-12 | 青岛海信移动通信技术股份有限公司 | 一种代码调试的方法及装置 |
US20120317647A1 (en) * | 2011-05-26 | 2012-12-13 | Carnegie Mellon University | Automated Exploit Generation |
CN106815135A (zh) * | 2015-11-30 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 漏洞检测方法及装置 |
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020248875A1 (zh) * | 2019-06-13 | 2020-12-17 | 晶晨半导体(上海)股份有限公司 | 版本比对方法、***、计算机设备及可读存储介质 |
CN111046393A (zh) * | 2019-12-14 | 2020-04-21 | 深圳市优必选科技股份有限公司 | 漏洞信息上传方法、装置、终端设备及存储介质 |
CN111309601A (zh) * | 2020-02-03 | 2020-06-19 | 思客云(北京)软件技术有限公司 | 用于生成源代码缺陷漏洞id的方法、设备和计算机可读存储介质 |
CN112287658A (zh) * | 2020-11-03 | 2021-01-29 | 深圳壹账通智能科技有限公司 | 一种业务数据处理方法、装置、电子设备以及介质 |
CN112256320A (zh) * | 2020-11-04 | 2021-01-22 | 广州繁星互娱信息科技有限公司 | 版本号生成方法、装置、终端及存储介质 |
CN112256320B (zh) * | 2020-11-04 | 2024-05-14 | 广州繁星互娱信息科技有限公司 | 版本号生成方法、装置、终端及存储介质 |
CN112445997A (zh) * | 2020-12-15 | 2021-03-05 | 安徽三实信息技术服务有限公司 | 一种提取cms多版本识别特征规则的方法及装置 |
CN113127049A (zh) * | 2021-04-22 | 2021-07-16 | 安徽三实信息技术服务有限公司 | 一种基于程序源码的程序组成及版本识别特征规则获取方法及装置 |
CN116187625A (zh) * | 2023-04-24 | 2023-05-30 | 中国西安卫星测控中心 | 基于位运算的航天测运控资源调度计划比对方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020248875A1 (zh) | 2020-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110348219A (zh) | 版本比对方法、***、计算机设备及可读存储介质 | |
US9178793B1 (en) | Engine for processing content rules associated with locations in a page | |
CN111159049B (zh) | 接口自动化测试方法及*** | |
CN103390258B (zh) | 基于信息码的实验室物品信息管理*** | |
US10656907B2 (en) | Translation of natural language into user interface actions | |
US10878044B2 (en) | System and method for providing content recommendation service | |
CN102800065A (zh) | 基于二维码识别跟踪的增强现实设备及方法 | |
CN105099811A (zh) | 一种接口测试方法和装置 | |
CN102929971A (zh) | 一种多媒体信息播放方法和*** | |
US20120204161A1 (en) | Automated Code Map Generation for an Application Programming Interface of a Programming Language | |
US9401846B2 (en) | Information handling system configuration identification tool and method | |
CN105468511A (zh) | 网页脚本错误定位方法及装置 | |
CN111159040A (zh) | 一种测试数据生成方法、装置、设备及存储介质 | |
CN110674023B (zh) | 一种接口测试方法和装置 | |
CN105245622A (zh) | 一种可配置的数据处理方法、***及移动平台 | |
CN103379022B (zh) | 一种基于互联网地图搜索的即时通讯方法和*** | |
CN105808628B (zh) | 网页转码方法、装置及*** | |
CN117033309A (zh) | 一种数据转换方法、装置、电子设备及可读存储介质 | |
CN113515447B (zh) | ***自动化测试方法及装置 | |
CN113076262B (zh) | 网页自动化测试方法及装置 | |
CN108073638B (zh) | 数据诊断方法及装置 | |
CN104394230A (zh) | 一种信息呈现的方法、设备和*** | |
CN114490402A (zh) | 一种报文字段合法性检查方法及装置 | |
CN114968960A (zh) | 日志处理方法、装置、计算机设备及存储介质 | |
CN115061785A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191018 |