首页> 中国专利> 一种反汇编文件处理方法、装置、设备及存储介质

一种反汇编文件处理方法、装置、设备及存储介质

摘要

本申请公开一种反汇编文件处理方法、装置、设备及存储介质,该处理方法包括:获取目标反汇编文件;读取目标反汇编文件中的文件行;基于待识别对象的起始字符和结束字符,对目标反汇编文件中的文件行进行字符匹配;在任一文件行中匹配到待识别对象的情况下,标记待识别对象在匹配到的目标文件行中的对象起始位置和对象结束位置;根据匹配到的待识别对象在目标文件行中的对象起始位置和对象结束位置,提取匹配到的待识别对象对应的目标字符段;基于预设数组存储结构对提取的目标字符段进行分块存储,本申请实现了对反汇编文件中待识别对象的识别提取与存储,提高了存储效率,以便后续对汇编指令元素的使用。

著录项

  • 公开/公告号CN114519127A

    专利类型发明专利

  • 公开/公告日2022-05-20

    原文格式PDF

  • 申请/专利权人 中汽创智科技有限公司;

    申请/专利号CN202210030173.2

  • 发明设计人 秦民;孙斌;孙炳彤;

    申请日2022-01-12

  • 分类号G06F16/903;G06F16/901;

  • 代理机构广州三环专利商标代理有限公司;

  • 代理人王若愚

  • 地址 211100 江苏省南京市江宁区秣陵街道胜利路88号

  • 入库时间 2023-06-19 15:24:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-05-20

    公开

    发明专利申请公布

说明书

技术领域

本申请涉及反汇编文件的自动识别技术领域,特别涉及一种反汇编文件处理方法、装置、设备及存储介质。

背景技术

在形式化认证的过程中,需要对反汇编文件中的文件行进行识别和提取,以得到指定信息,如将汇编指令和指令地址进行提取并存储,剔除掉除汇编指令和指令地址之外的反汇编文件信息,例如,剔除掉源码、注释和空行等反汇编文件信息,现有技术中,采取人工识别的方式确定汇编指令和指令地址,在人工识别的过程中,容易出现反汇编文件数据认定错误或遗漏,浪费人力和时间成本,并且,对汇编指令和指令地址的存储效率低下,汇编指令调用过程复杂。

因此,需要一种反汇编文件的处理方案,以降低对反汇编文件的认证成本和提高存储效率。

发明内容

为了解决现有技术的问题,本申请实施例提供了一种反汇编文件处理方法、装置、设备及存储介质的技术方案,该技术方案如下所示:

一方面,提供了反汇编文件处理方法,所述方法包括:

获取目标反汇编文件;

读取所述目标反汇编文件中的文件行;

基于待识别对象的起始字符和结束字符,对所述目标反汇编文件中的文件行进行字符匹配;

在任一文件行中匹配到所述待识别对象的情况下,标记所述待识别对象在匹配到的目标文件行中的对象起始位置和对象结束位置;

根据匹配到的待识别对象在所述目标文件行中的对象起始位置和对象结束位置,提取所述匹配到的待识别对象对应的目标字符段;

基于预设数组存储结构对提取的目标字符段进行分块存储。

进一步地,所述待识别对象包括指令地址、机器码和汇编指令。

进一步地,所述根据匹配到的待识别对象在所述目标文件行中的对象起始位置和对象结束位置,提取所述匹配到的待识别对象对应的目标字符段,包括:

根据所述对象起始位置和所述对象结束位置确定所述待识别对象的目标提取位置;

对所述目标提取位置处对应的字符段进行复制处理,得到所述匹配到的待识别对象对应的目标字符段。

进一步地,在所述基于待识别对象的起始字符和结束字符,对所述目标反汇编文件中的文件行进行字符匹配之前,所述方法还包括:

构建预设函数指针与至少一种待识别对象的起始字符和结束字符的对应关系,得到目标函数指针;

则所述基于待识别对象的起始字符和结束字符,对所述目标反汇编文件中的文件行进行字符匹配,包括:

通过所述目标函数指针,对所述目标反汇编文件中的文件行进行字符匹配。

进一步地,所述方法还包括:

在识别到文件结束字符的情况下,停止读取所述目标反汇编文件中的文件行。

进一步地,在读取所述反汇编文件中的文件行之前,所述方法还包括:

对所述目标反汇编文件进行初始化处理;

在所述目标反汇编文件初始化失败的情况下,则生成告警信息,并将所述告警信息发送至目标终端。

进一步地,所述基于待识别对象的起始字符和结束字符,对所述目标反汇编文件中的文件行进行字符匹配,包括:

基于待识别对象的起始字符对所述目标反汇编文件中的文件行进行字符匹配;

在匹配到所述起始字符对应的目标起始字符的情况下,基于所述结束字符对所述目标起始字符后的字符进行匹配,至匹配到与所述结束字符对应的目标结束字符。

另一方面,提供了一种反汇编文件的处理装置,所述装置包括:

获取模块:用于获取目标反汇编文件;

读取模块:用于读取所述目标反汇编文件中的文件行;

字符匹配模块:用于基于待识别对象的起始字符和结束字符,对所述目标反汇编文件中的文件行进行字符匹配;

位置标记模块:用于在任一文件行中匹配到所述待识别对象的情况下,标记所述待识别对象在匹配到的目标文件行中的对象起始位置和对象结束位置;

目标字符段的提取模块:用于根据匹配到的待识别对象在所述目标文件行中的对象起始位置和对象结束位置,提取所述匹配到的待识别对象对应的目标字符段;

存储模块:用于基于预设数组存储结构对提取的目标字符段进行分块存储。

另一方面提供了一种反汇编文件处理设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述的反汇编文件处理方法。

另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述的反汇编文件处理方法。

本申请提供的一种反汇编文件处理方法、装置及存储介质,具有如下技术效果:

本申请通过获取目标反汇编文件,读取目标反汇编文件中的文件行,并基于待识别对象的起始字符和结束字符,对目标反汇编文件中的文件行进行字符匹配,以便剔除反汇编文件中除待识别对象之外的无用信息,实现对文件行的精简处理;在任一文件行中匹配到待识别对象的情况下,标记待识别对象在匹配到的目标文件行中的对象起始位置和对象结束位置;根据匹配到的待识别对象在目标文件行中的对象起始位置和对象结束位置,提取匹配到的待识别对象对应的目标字符段,基于预设数组存储结构对提取的目标字符段进行分块存储,进而实现对反汇编文件中待识别对象的识别提取与存储,提高了存储效率,以便缩短后续对目标反汇编文件中的文件行的运行时间,并对汇编指令元素的使用,具有较高的应用价值。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种反汇编文件处理方法的流程示意图;

图2为本申请实施例提供的一种反汇编文件初始化方法的流程示意图;

图3为本申请实施例提供的待识别对象中字符匹配方法的流程示意图;

图4为本申请实施例提供的待识别对象中目标字符段获取方法的流程示意图;

图5为本申请实施例提供的一种反汇编文件处理装置的结构示意图;

图6为本申请实施例提供的与图4所示方法对应装置的结构示意图;

图7为本申请实施例提供的与图2所示方法对应装置的结构示意图;

图8为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。

请参阅图1,其所示为本申请实施例的一种反汇编文件处理方法的流程示意图,通过该反汇编文件处理方法能够实现对反汇编文件中待识别对象的识别提取与存储,进而提高了存储效率,以便缩短后续对目标反汇编文件中的文件行的运行时间,并对汇编指令元素的使用,具有较高的应用价值,其处理方法具体包括以下步骤:

S101:获取目标反汇编文件。

S102:读取目标反汇编文件中的文件行。

在本申请实施例中,目标反汇编文件也可以为目标汇编文件,通过对目标反汇编文件或目标汇编文件中文件行的读取,实现对文件行中待识别对象的提取和存储,并剔除掉除待识别对象之外的反汇编文件信息,例如,剔除文件行中的源码、注释和空行等反汇编文件信息,以便缩短后续对目标反汇编文件或目标汇编文件中文件行的运行时间,具有较高的应用价值。

在一个可选的实施方式中,如图2所示,其为本申请实施例提供的一种反汇编文件初始化方法的流程示意图,则在执行步骤S102之前,该反汇编文件处理方法还可以包括:

S1011:对目标反汇编文件进行初始化处理。

S1012:在目标反汇编文件初始化失败的情况下,则生成告警信息,并将告警信息发送至目标终端。

在本申请实施例中,在本申请实施例中,初始化即对目标反汇编文件中的变量一个初始值,只有初始化后,才能实现在内存中分配合适的资源,如果没有及时清理不用的对象,回收内存资源,就容易出现溢出问题,进而通过对目标反汇编文件的初始化处理,实现对目标反汇编文件的精准读取,以确保对目标汇编文件中的文件行的正常读取。具体的,在目标反汇编文件初始化成功的情况下,按照预设的读取方式对目标反汇编文件中的文件行进行读取,以确保对文件行中待识别对象的精准识别,若对目标反汇编文件初始化失败,则通过目标终端展示初始化失败对应的告警信息,实现对目标反汇编文件的监控。

S103:基于待识别对象的起始字符和结束字符,对目标反汇编文件中的文件行进行字符匹配。

在本申请实施例中,起始字符为待识别对象中起始位置的字符,结束字符为待识别对象中结束位置的字符,通过对起始字符和结束字符之间的字符匹配,并将匹配到的字符进行抽取,并将抽取到的字符按照预设顺序进行存储,其中预设顺序为反汇编文件中数据的排列顺序,在不改变反汇编文件中待识别对象的排列顺序的情况下,对待识别对象进行存储,为后续运行待识别对象提供便利。

在一个可选的实施方式中,待识别对象包括指令地址、机器码和汇编指令。

在一个实施例中,对反汇编文件中的指令地址、机器码和汇编指令进行匹配和识别,将匹配到的指令地址、机器码和汇编指令存储在预设数组存储结构中,其中汇编指令可以包括助记符和操作数,在一个具体的实施例中,将指令地址、机器码、助记符和操作数等存储在预设数组存储结构中,当执行反汇编文件时,直接调用预设数组存储结构中的待识别对象,而无需执行除反汇编文件中除待识别对象之外的反汇编数据,进而缩短执行反汇编文件的执行时间,降低对反汇编文件的认证成本,具有较高的应用价值。

在一个可选的实施方式中,如图3所示,其为本申请实施例提供的待识别对象中字符匹配方法的流程示意图,具体的步骤S103可以包括:

S1031:基于待识别对象的起始字符对目标反汇编文件中的文件行进行字符匹配。

S1032:在匹配到起始字符对应的目标起始字符的情况下,基于结束字符对目标起始字符后的字符进行匹配,至匹配到与结束字符对应的目标结束字符。

在一个实施例中,指令地址、机器码、助记符和操作数中均具有起始字符和结束字符,在匹配到目标起始字符的情况下,继续对目标起始字符后的字符进行匹配,直至匹配到与结束字符对应的目标结束字符。在对目标文件行进行匹配过程中,若在预设时间内未匹配到目标起始字符,亦或在匹配到目标起始字符的情况下,基于结束字符对目标起始字符后的字符进行匹配,但未匹配到结束字符对应的目标结束字符,则匹配失败。在匹配失败的情况下,中断对当前目标文件行中待识别对象的匹配过程,并对当前目标文件行进行标记,以便对目标文件行中的待识别对象进行核查,确保后续对目标反汇编文件中的文件行顺利运行。

在一个可选的实施方式中,在步骤S103之前,该反汇编文件处理方法还可以包括:

S10311:构建预设函数指针与至少一种待识别对象的起始字符和结束字符的对应关系,得到目标函数指针。

相对应的,步骤S103还可以包括:

S10312:通过目标函数指针,对目标反汇编文件中的文件行进行字符匹配。

在本申请实施例中,目标函数指针用于匹配文件行中待识别对象中的字符,其中,目标函数指针是通过构建预设函数指针与至少一种待识别对象的起始字符和结束字符的对应关系,也就是说,目标函数指针能够匹配任一待识别对象中起始字符与结束字符之间的字符,也能够匹配除待识别对象中字符之外的信息,例如,源码、注释和空格。在整个匹配过程中,仅仅通过目标函数指针作为待识别对象的匹配接口,无需更换匹配接口,实现多种识别模式下的字符匹配,避免在匹配不同模式时更换为与待识别对象相对应的匹配接口,缩短了对待识别对象的匹配时间,具有较高的应用价值。

S104:在任一文件行中匹配到待识别对象的情况下,标记待识别对象在匹配到的目标文件行中的对象起始位置和对象结束位置。

在一个具体的实施例中,标记指令地址、机器码、助记符和操作数在目标文件行中的起始位置和结束位置,以便根据对指令地址、机器码、助记符和操作数的标记位置,将指令地址、机器码、助记符和操作数存放在预设数组存储结构中,实现对待识别对象的精准提取和存储。

S105:根据匹配到的待识别对象在目标文件行中的对象起始位置和对象结束位置,提取匹配到的待识别对象对应的目标字符段。

在一个可选的实施方式中,如图4所示,其为本申请实施例提供的待识别对象中目标字符段获取方法的流程示意图,步骤S105可以包括:

S1051:根据对象起始位置和对象结束位置确定待识别对象的目标提取位置。

S1052:对目标提取位置处对应的字符段进行复制处理,得到匹配到的待识别对象对应的目标字符段。

在本申请实施例中,以对象起始位置和对象结束位置为分界线,提取处在对象起始位置和对象结束位置之间的目标字符段,以便剔除除待识别对象之外的信息,其中,待识别对象对应的目标字符段为指令地址、机器码、助记符和操作数对应的字符段。具体的,通过复制处理目标提取位置处对应的字符段,实现对待识别对象中目标字符段的提取,并将提取的目标字符段存放在预设数组存储结构中。

S106:基于预设数组存储结构对提取的目标字符段进行分块存储。

在本申请实施例中,预设数组存储结构为三维字符数组存储结构,通过三维字符数组存储结构,存储匹配到的待识别对象对应的目标字符段,三维字符数组存储结构基于三维数组存储结构存储待识别对象中的字符,其中,第一维表征反汇编文件中的文件行,第二维表征文件行中的待识别对象,第三维表征待识别对象中的字符,从而实现在不改变原有待识别对象中目标字符段对应的排列顺序的情况下,实现对待识别对象存储。在一个具体实施例中,对每一文件行中的待识别对象中不同的识别对象,按照三维字符数组存储结构的形式进行分块存储,当运行反汇编文件时,仅仅只需要运行所匹配的待识别对象即可,无需运行除待识别对象之外的信息,节省了运行步骤,进而缩短了对目标反汇编文件或目标汇编文件中文件行的运行时间。

具体的,例如,基于三维字符数组存储结构分块存储的待识别对象表示为

在一个可选的实施方式中,该反汇编文件处理方法还可以包括:

在识别到文件结束字符的情况下,停止读取目标反汇编文件中的文件行。

在本申请实施例中,若匹配到结束字符,则停止对文件行中待识别对象的读取,以确保提取的待识别对象均为可运行的数据。

由本申请实施例的上述技术方案可见,本申请通过获取目标反汇编文件,读取目标反汇编文件中的文件行,并基于待识别对象的起始字符和结束字符,对目标反汇编文件中的文件行进行字符匹配,以便剔除反汇编文件中除待识别对象之外的无用信息,实现对文件行的精简处理;在任一文件行中匹配到待识别对象的情况下,标记待识别对象在匹配到的目标文件行中的对象起始位置和对象结束位置;根据匹配到的待识别对象在目标文件行中的对象起始位置和对象结束位置,提取匹配到的待识别对象对应的目标字符段,基于预设数组存储结构对提取的目标字符段进行分块存储,进而实现对反汇编文件中待识别对象的识别提取与存储,提高了存储效率,以便缩短后续对目标反汇编文件中的文件行的运行时间,并对汇编指令元素的使用,具有较高的应用价值。

本申请实施例中还提供了一种反汇编文件的处理装置,该装置如图5所示,其为本申请实施例提供的一种反汇编文件处理装置的结构示意图,具体包括以下模块:

获取模块10:用于获取目标反汇编文件。

读取模块20:用于读取目标反汇编文件中的文件行。

字符匹配模块30:用于基于待识别对象的起始字符和结束字符,对目标反汇编文件中的文件行进行字符匹配。

位置标记模块40:用于在任一文件行中匹配到待识别对象的情况下,标记待识别对象在匹配到的目标文件行中的对象起始位置和对象结束位置。

目标字符段的提取模块50:用于根据匹配到的待识别对象在目标文件行中的对象起始位置和对象结束位置,提取匹配到的待识别对象对应的目标字符段。

存储模块60:用于基于预设数组存储结构对提取的目标字符段进行分块存储。

进一步地,待识别对象包括指令地址、机器码和汇编指令。

进一步地,如图6所示,其本申请实施例提供的与图4所示方法对应装置的结构示意图,目标字符段的提取模块50可以包括:

目标提取位置确定子模块501:用于根据对象起始位置和对象结束位置确定待识别对象的目标提取位置;

目标字符段的确定子模块502:用于对目标提取位置处对应的字符段进行复制处理,得到匹配到的待识别对象对应的目标字符段。

进一步地,该装置还可以包括:

目标函数指针确定模块70:用于构建预设函数指针与至少一种待识别对象的起始字符和结束字符的对应关系,得到目标函数指针;

相应的,字符匹配模块30还可以包括:

匹配子模块301:用于通过目标函数指针,对目标反汇编文件中的文件行进行字符匹配。

进一步地,该装置还可以包括:

判断模块80:用于在识别到文件结束字符的情况下,停止读取目标反汇编文件中的文件行。

进一步地,如图7所示,其为本申请实施例提供的与图2所示方法对应装置的结构示意图,该装置还可以包括:

初始化模块90:用于对目标反汇编文件进行初始化处理;

告警信息生成模块100:用于在目标反汇编文件初始化失败的情况下,则生成告警信息,并将告警信息发送至目标终端。

进一步地,字符匹配模块30还可以包括:

字符匹配子模块301:用于基于待识别对象的起始字符对目标反汇编文件中的文件行进行字符匹配;

目标结束字符确定子模块302:用于在匹配到起始字符对应的目标起始字符的情况下,基于结束字符对目标起始字符后的字符进行匹配,至匹配到与结束字符对应的目标结束字符。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本申请实施例提供了一种反汇编文件处理设备,该设备包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的一种反汇编文件处理方法。

存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。

所述反汇编文件处理设备可以为运行上述方法的电子设备,本申请实施例还提供了一种运行上述方法的电子设备的结构示意图,请参阅图8,该电子设备800用于实施上述实施例中提供的检测方法。该电子设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器810(例如,一个或一个以上处理器)和存储830,一个或一个以上存储应用程序823或数据822的存储介质820(例如一个或一个以上海量存储设备)。其中,存储器830和存储介质820可以是短暂存储或持久存储。存储在存储介质820的程序可以包括一个或一个以上模块,每个模块可以包括对电子设备800中的一系列指令操作。更进一步地,处理器810可以设置为与存储介质820通信,在电子设备800上执行存储介质820中的一系列指令操作。电子设备800还可以包括一个或一个以上电源860,一个或一个以上有线或无线网络接口840,一个或一个以上输入输出接口840,和/或,一个或一个以上操作系统821,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

本申请的实施例还提供了一种计算机可读存储介质,所述存储介质可设置于电子设备之中以保存用于实现方法实施例中一种反汇编文件处理方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的一种反汇编文件处理方法。

需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号