CN111310172A - 通过反汇编验证处理器执行轨迹 - Google Patents

通过反汇编验证处理器执行轨迹 Download PDF

Info

Publication number
CN111310172A
CN111310172A CN201811519074.0A CN201811519074A CN111310172A CN 111310172 A CN111310172 A CN 111310172A CN 201811519074 A CN201811519074 A CN 201811519074A CN 111310172 A CN111310172 A CN 111310172A
Authority
CN
China
Prior art keywords
trace
current
processor
file
track
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
Application number
CN201811519074.0A
Other languages
English (en)
Other versions
CN111310172B (zh
Inventor
谢进伟
贾舒
程雪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Starblaze Technology Co ltd
Original Assignee
Beijing Starblaze Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Starblaze Technology Co ltd filed Critical Beijing Starblaze Technology Co ltd
Priority to CN201811519074.0A priority Critical patent/CN111310172B/zh
Publication of CN111310172A publication Critical patent/CN111310172A/zh
Application granted granted Critical
Publication of CN111310172B publication Critical patent/CN111310172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了通过反汇编验证处理器执行轨迹的方法。本申请的主要技术方案为:将源程序编译为可执行文件与反汇编文件;执行可执行文件,产生轨迹序列,通过分析所述轨迹序列与所述反汇编文件识别处理器工作的正确性。

Description

通过反汇编验证处理器执行轨迹
技术领域
本申请涉及存储技术,尤其涉及对存储控制芯片的介质接口控制器进行测试的方法与装置,以加快以覆盖率为目标的测试过程。
背景技术
参看图1,展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA、IDE、USB、PCIE、NVMe(NVM Express)、SAS、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM(非易失存储器,Non-Volatile Memory)芯片105以及可选地固件存储器110。接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、NVM芯片105以及固件存储器110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。可通过软件、硬件、固件或其组合的多种方式实现控制部件104。控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application Specific Integrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器。控制部件104在运行时从固件存储器110加载固件。固件存储器110可以是NOR闪存、ROM、EEPROM,也可以是NVM芯片105的部分。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
控制部件包括一个或多个处理器核。处理器核中运行软件(也称为固件)来操作控制部件的多个单元。
发明内容
开发控制部件及其上运行的软件需要被充分测试以交付高质量的产品。错误可能在多个阶段存在并被引入,导致测试过程缺乏效率并难以定位错误原因。在出现错误时,希望有效执行处理器执行的软件的指令序列是否符合预期,以区分错误是由软件引入还是硬件引入。
一些场合,采用硬件仿真器或模拟器来运行被设计用于控制部件的处理器的软件,通过仿真器来获取软件运行过程中系统的状态,并分析系统运行过程以发现错误。然而,硬件仿真器(或模拟器)需要高昂的成本,而仿真速度也非常低。
希望有高效率的软件运行过程分析方法与工具,来协助识别软件与硬件中存在的问题。根据本申请的实施例,通过反汇编文件来识别处理器的指令执行顺序的正确性,以推断出程序在何处进入非正常状态,从而在该位置附近或同该位置相关的指令有较大概率存在问题,也有机会推断出硬件中存在的缺陷。
根据本申请的第一方面,提供了根据本申请第一方面的第一验证处理器的方法,包括:将源程序编译为可执行文件与反汇编文件;执行可执行文件,产生轨迹序列,通过分析所述轨迹序列与所述反汇编文件识别处理器工作的正确性。
根据本申请的第一方面的第一验证处理器的方法,其中,反汇编文件包括多条记录,每条记录指示了地址以及在该地址处的机器指令和/或汇编指令。
根据本申请的第一方面的第二验证处理器的方法,其中,反汇编文件的一条或多条记录指示地址以及该地址处的内容为数据或其他非指令内容。
根据本申请的第一方面的第二或第三验证处理器的方法之一,其中,反汇编文件的记录中的地址,是程序运行中使用的地址空间的地址。
根据本申请的第一方面的第一验证处理器的方法,其中,轨迹序列被存储在控制部件的存储器或DRAM中,通过接口将轨迹序列传输到计算机或服务器。
根据本申请的第一方面的第五验证处理器的方法,其中,轨迹记录处理器的程序计数器寄存器的值。
根据本申请的第一方面的第六验证处理器的方法,其中,每执行一条指令,从程序计数器寄存器获取其值作为轨迹。
根据本申请的第一方面的第七验证处理器的方法,其中,对从轨迹序列中获取的每条轨迹,根据轨迹记录的程序计数器寄存器的值查询反汇编文件,并通过识别当前轨迹记录的程序计数器寄存器的值是否合理来识别处理器工作是否正常。
根据本申请的第一方面的第五至第八验证处理器的方法之一,其中,根据获取的当前轨迹,用其代表的程序计数器的值查询反汇编文件,从反汇编文件中得到当前轨迹对应的记录;通过分析当前轨迹在反汇编文件中的记录,或者当前轨迹在反汇编文件中的记录和当前轨迹之前的轨迹在反汇编文件中的记录,来识别当前轨迹是否满足指定的模式,进而识别处理器工作是否正常。
根据本申请的第一方面的第九验证处理器的方法,其中,若当前轨迹满足指定的指令执行模式,则识别出处理器在产生当前轨迹时工作正常,并继续获取下一轨迹,直到处理了所获得的全部轨迹或者分析了指定数量或条件的轨迹。
根据本申请的第一方面的第九验证处理器的方法,其中,若当前轨迹不满足已知指令执行模式的任何一种,则识别出处理器在产生当前轨迹时工作异常。
根据本申请的第一方面的第九至第十一验证处理器的方法之一,其中,已知指令执行模式包括顺序执行模式、分支/跳转模式、循环模式、中断模式或启动模式。
根据本申请的第一方面的第十二验证处理器的方法,其中,若当前轨迹在反汇编文件中的第一记录同当前轨迹的在前轨迹在反汇编文件中的第二记录相邻,且在反汇编文件中第二记录在第一记录之前,则当前轨迹为顺序执行模式。
根据本申请的第一方面的第十二验证处理器的方法,其中,若当前轨迹的在前轨迹具有同当前轨迹相邻且在前的程序计数器的值,则当前轨迹为顺序执行模式。
根据本申请的第一方面的第十二至第十四验证处理器的方法之一,其中,若当前轨迹的紧邻前面第二条轨迹的程序计数器的值对应的地址在反汇编文件中的记录为跳转指令,则当前轨迹属于跳转模式。
根据本申请的第一方面的第十二至第十五验证处理器的方法之一,其中,当前轨迹同其紧邻前面第两条轨迹在反汇编文件中的对应条目指示跳转指令,以及在反汇编文件中,获取同当前轨迹以及当前轨迹的紧邻前面第二条轨迹对应的第二条目和第一条目,若第一条目指示跳转指令,而第二条目的地址同第一条目的跳转目标一致,则当前轨迹属于跳转模式。
根据本申请的第一方面的第十二至第十六验证处理器的方法之一,其中,当前轨迹的紧邻前一轨迹对应反汇编文件的条目指示循环指令,则当前轨迹属于循环执行模式。
根据本申请的第一方面的第十二至第十七验证处理器的方法之一,其中,若当前轨迹的紧邻前面第二条轨迹的程序计数器的值对应的地址在反汇编文件中的条目是循环指令,则当前轨迹属于循环执行模式。
根据本申请的第一方面的第十二至第十八验证处理器的方法之一,其中,若当前轨迹同其紧邻前面的轨迹在反汇编文件中的对应条目指示循环指令,且在反汇编文件中,当前轨迹的紧邻前一轨迹指示的循环指令的目标地址是当前轨迹指示的地址,当前轨迹的紧邻前一轨迹的程序计数器的值也为当前轨迹指示的地址,则当前轨迹属于循环执行模式。
根据本申请的第一方面的第十二至第十九验证处理器的方法之一,其中,当前轨迹的程序计数器指示的地址在反汇编文件中对应的记录为中断入口,则当前轨迹属于中断模式。
根据本申请的第一方面的第十二至第二十验证处理器的方法之一,其中,当前轨迹的程序计数器指示的地址在反汇编文件中对应的记录为启动入口,则当前轨迹属于启动模式。
根据本申请的第二方面,提供了根据本申请第而方面的第一存储设备的控制部件,包括处理器以及为在控制部件的处理器上运行而开发的源程序,所述处理器执行所述源程序时实现执行上述验证处理器的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1展示了现有技术的存储设备的框图;
图2是根据本申请实施例的通过反汇编验证处理器执行轨迹示意图;
图3展示了根据本申请实施例的检查处理器工作是否正确的流程图;
图4展示了检查当前轨迹是否满足顺序执行模式的示意图;
图5展示了检查当前轨迹是否满足循环执行模式的示意图;
图6展示了检查当前轨迹是否满足中断模式或启动模式的示意图;
图7展示了检查当前轨迹是否满足跳转模式的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2是根据本申请实施例的示意图。
为在控制部件的处理器上运行而开发的源程序210,经编译模块220被编译为在处理器上运行的可执行文件230与反汇编文件240。反汇编文件包括多条记录,每条记录指示了地址以及在该地址处的机器指令和/或汇编指令。从而根据指定的地址,从反汇编文件中能查到在该地址处存储的机器指令和/或汇编指令。反汇编文件的记录中的地址,是例如程序运行中使用的地址空间的地址。反汇编文件的一条或多个多条记录指示地址以及该地址处的内容为数据或其他非指令内容。可执行文件包括多条机器指令,当被加载到存储器,处理器执行这些机器指令。
控制部件的处理器(执行模块250)执行可执行文件的过程中,产生轨迹(Trace)。轨迹是处理器的PC(程序计数器)寄存器的值。作为举例,每执行一条指令,从PC寄存器获取其值作为轨迹。按输出顺序记录的轨迹序列,反应了PC寄存器执行的指令序列。轨迹仅包括PC寄存器的值,而不包括其他寄存器的值,从而从轨迹序列中获取的处理器的状态是不完备的。从而轨迹序列的数据量较低,使得分析轨迹序列所需的资源远小于模拟器或仿真器。
轨迹序列被存储在控制部件的存储器或DRAM 110(也参看图1),可选地或进一步地,通过接口103将轨迹序列传输到计算机或服务器以对轨迹序列进行分析,来识别控制部件以及其上运行的软件是否存在错误。
可选地,将源程序编译为反汇编文件与可执行文件的过程,在外部于控制部件的计算机或服务器上进行。
继续参看图2,在外部于控制部件的计算机或服务器中(收集轨迹模块260)对从轨迹序列中获取的每条轨迹,根据轨迹记录的PC寄存器的值查询反汇编文件,并通过识别当前轨迹记录的PC值是否合理来检查处理工作是否正常(检测模块270)。
图3展示了根据本申请实施例的检查处理器工作是否正确的流程图。
处理器运行可执行文件产生的轨迹序列,按执行顺序获取每条轨迹(310),以检查处理器的工作是否正确。由在外部于控制部件的计算机或服务器通过例如执行软件来通过每条轨迹检查处理器工作是否正常。
作为举例,根据获取的轨迹,用其代表的PC寄存器的值查询反汇编文件,从反汇编文件中得到同该PC寄存器的值(称为当前轨迹)对应的记录。通过分析当前轨迹在反汇编文件中的记录,或者当前轨迹在反汇编文件中的记录和当前轨迹之前的若干条轨迹在反汇编文件中的记录,来识别当前轨迹是否满足指定的模式,进而识别处理器工作是否正常。
若当前轨迹满足指定的指令执行模式,则认为处理器在产生当前轨迹时工作正常,并继续获取下一轨迹,直到处理了所获得的全部轨迹,或者分析了指定数量或条件的轨迹。若当前轨迹不满足已知指令执行模式的任何一种,则认为处理器在产生当前轨迹时工作异常。记录并向用户提示存在异常的该轨迹的相关信息,以协助识别软件或硬件中存在的错误。
指定的指令执行模式包括例如顺序执行模式、分支/跳转模式、循环模式、中断模式、启动模式等。
作为举例,首先分析当前轨迹是否属于顺序执行模式(320)。顺序执行模式是最常见的指令执行模式。若识别出当前轨迹属于顺序执行模式,则无须再检查当前轨迹是否满足其他模式,而返回步骤310,从而提高了识别处理器工作是否正常的效率。
一般地,按指令执行模式出现的机率,由高到低的顺序检查当前轨迹是否满足指定的指令执行模式,以减少检查模式的操作。
继续参看图3,若当前轨迹不属于顺序执行模式,继续检查当前轨迹是否属于分支/跳转模式(330)。若当前轨迹属于分支/跳转模式,意味着产生当前轨迹时处理器工作正常,则继续获取下一轨迹(返回步骤310)。若当前轨迹不属于分支/跳转模式,继续检查当前轨迹是否属于循环模式(340)。
若当前轨迹也不属于循环模式,继续检查当前轨迹是否属于中断模式(350)。若当前轨迹依然不属于中断模式,则继续检查当前轨迹是否属于启动模式(360)。若当前轨迹也不属于启动模式,至此检查了所有已知的指令执行模式,则识别出产生当前轨迹时,处理器工作异常(370)。
可以理解地,可能存在其他未被认识的指令执行模式。随着发现新的指令执行模式,还检查当前轨迹是否符合新的指令执行模式。以及图3中已经检查的指令执行模式,覆盖了绝大多数的情况,因而所检查出的处理器工作异常情况,以大概率指示了处理器工作异常(但不排除存在误报)。
依然可以理解地,图3展示的检查当前轨迹是否满足指定的指令执行模式的先后顺序可被调整。
图4展示了检查当前轨迹是否满足顺序执行模式的示意图。
反汇编文件410包括多个记录。每条记录指示了地址以及该地址处的内容。在地址98-105处的内容均为指令,而地址106处的内容是数据。
轨迹序列450指示了PC寄存器在连续的不同时刻先后的值,图4中,轨迹序列450越上方是更早获取的轨迹,而更下方是更晚获取的轨迹。相邻的轨迹被相邻地获取,指示了处理器执行的相邻两条指令。
作为举例,轨迹452是当前轨迹,对当前轨迹452,检查其是否满足指定的指令执行模式。当前轨迹452指示的PC寄存器值为101,在反汇编文件410中寻找地址为101(PC寄存器的值)的条目,得到条目412,条目412指示在地址为101处记录的是指令。根据当前轨迹452,获取其前一轨迹451,轨迹451的PC寄存器的值为100。根据轨迹451的PC寄存器的值查找反汇编文件,得到条目411记录了地址100。由于条目411同当前轨迹452对应的条目412在反汇编文件中相邻,且条目412在条目411之后,因而识别出当前轨迹452属于顺序执行模式。
在可选的例子中,依据当前轨迹452的PC寄存器的值查询反汇编文件,得到条目412记录的地址101处为指令,以及依据当前轨迹452同在前的相邻轨迹451具有同当前轨迹452相邻且在前的PC寄存器的值,而识别出当前轨迹452属于顺序执行模式。
继续参看图4,若当前轨迹为轨迹455,通过反汇编文件410得知轨迹455的PC寄存器的值对应的地址记录的内容为指令,且轨迹455同与其相邻且在前的轨迹454的PC寄存器的值不相邻,从而识别出轨迹455不属于顺序执行模式。从而,也参看图3,继续检查轨迹455是否属于其他指令执行模式。
作为又一个例子,对于轨迹456,从反汇编文件410中得到轨迹456的PC寄存器的值对应的地址记录的内容为数据而非指令,从而识别出轨迹456不属于顺序执行模式。从而,也参看图3,继续检查轨迹456是否属于其他指令执行模式。可选地,根据轨迹456的PC寄存器的值对应的地址记录的内容为数据而非指令,而直接识别出处理器产生轨迹456时工作异常。
若识别当前轨迹不属于顺序执行模式,继续检查当前轨迹是否输出其他执行模式。
图5展示了检查当前轨迹是否满足循环执行模式的示意图。
轨迹552是当前轨迹,对当前轨迹552,检查其是否满足循环执行模式。可以理解地,对当前轨迹552已经识别出其不满足顺序执行模式。
获取在轨迹552紧邻之间的轨迹554,在反汇编文件510中的地址为104(轨迹554的PC寄存器的值)的条目指示地址为104处是循环指令(LP)。据此,由于轨迹552的紧邻前一轨迹对应的指令为循环指令,识别出轨迹552属于循环执行模式。进一步地,依据反汇编文件中,条目512指示的循环指令的目标地址是条目514所指示的地址,而轨迹552的紧邻前一轨迹554的PC寄存器的值也为条目514所指示的地址,而识别出轨迹552属于循环执行模式。
可选地,轨迹552的紧邻前一轨迹为处理器的延迟槽,则识别轨迹552的紧邻前面第2条轨迹556,若轨迹556的PC寄存器的值对应的地址,在反汇编文件510中该地址处的条目是循环指令(例如,LP),则识别轨迹552属于循环执行模式。
若识别当前轨迹不属于循环执行模式,继续检查当前轨迹是否输出其他执行模式。
图6展示了检查当前轨迹是否满足中断模式或启动模式的示意图。
作为举例,轨迹652是当前轨迹,轨迹652的PC寄存器指示地址5002。在反汇编文件中的地址为5002的条目指示该地址为中断入口2,从而识别轨迹652属于中断模式。在处理器处理中断请求时,根据中断源将PC寄存器设置为对应于中断源的中断入口的地址。
作为有一个例子,轨迹654是当前轨迹,轨迹654的PC寄存器指示地址8000。在反汇编文件中的地址为8000的条目指示该地址为启动入口,从而识别轨迹654属于启动模式。在处理器被复位或上电时,PC寄存器被设置为对应于启动入口的地址。
若识别当前轨迹不属于中断模式也不属于启动模式,在一个例子中,由于已经识别了所有的执行模式,而未找到当前轨迹所属的执行模式,则识别出处理器在生成当前模式时工作异常。
图7展示了检查当前轨迹是否满足跳转模式的示意图。
轨迹752是当前轨迹,对当前轨迹752,检查其是否满足跳转模式。轨迹752的PC寄存器的值为200。可以理解地,对当前轨迹752已经识别出其不满足顺序执行模式。
轨迹752的紧邻前一轨迹754为处理器的延迟槽,识别轨迹752的紧邻前面第2条轨迹756,若轨迹756的PC寄存器的值对应的地址,在反汇编文件710中该地址处的条目是跳转指令(例如,JMP),则识别轨迹752属于跳转模式。
进一步地,由于当前轨迹752,同其紧邻前面第两条轨迹756是跳转指令,轨迹756与轨迹752形成<跳转-目标>轨迹对。以及在反汇编文件710中,获取同<跳转-目标>轨迹对(轨迹756与轨迹752)对应的条目712与条目714。由于条目712指示跳转指令,而条目714的地址同条目712的跳转目标一致,因而条目712与条目714构成<跳转-目标>条目对,进而确认轨迹756与轨迹752形成的<跳转-目标>轨迹对,是分别对应于跳转指令及其跳转目标处的指令。从而,识别出当前轨迹752属于跳转模式。
若识别当前轨迹不属于跳转模式,继续检查当前轨迹是否输出其他执行模式。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种验证处理器的方法,其特征在于,包括:
将源程序编译为可执行文件与反汇编文件;
执行可执行文件,产生轨迹序列,通过分析所述轨迹序列与所述反汇编文件识别处理器工作的正确性。
2.如权利要求1所述的验证处理器的方法,其特征在于,
根据获取的当前轨迹,用其代表的程序计数器的值查询反汇编文件,从反汇编文件中得到当前轨迹对应的记录;
通过分析当前轨迹在反汇编文件中的记录,或者当前轨迹在反汇编文件中的记录和当前轨迹之前的轨迹在反汇编文件中的记录,来识别当前轨迹是否满足指定执行模式,进而识别处理器工作是否正常。
3.如权利要求2所述的验证处理器的方法,其特征在于,已知指令执行模式包括顺序执行模式、分支/跳转模式、循环模式、中断模式或启动模式。
4.如权利要求3所述的验证处理器的方法,其特征在于,若当前轨迹在反汇编文件中的第一记录同当前轨迹的在前轨迹在反汇编文件中的第二记录相邻,且在反汇编文件中第二记录在第一记录之前,则当前轨迹为顺序执行模式;或,若当前轨迹的在前轨迹具有同当前轨迹相邻且在前的程序计数器的值,则当前轨迹为顺序执行模式。
5.如权利要求3所述的验证处理器的方法,其特征在于,若当前轨迹的紧邻前面第二条轨迹的程序计数器的值对应的地址在反汇编文件中的记录为跳转指令,则当前轨迹属于跳转模式。
6.如权利要求3所述的验证处理器的方法,其特征在于,若当前轨迹同其紧邻前面第两条轨迹在反汇编文件中的对应条目指示跳转指令,以及在反汇编文件中,获取同当前轨迹以及当前轨迹的紧邻前面第二条轨迹对应的第二条目和第一条目,若第一条目指示跳转指令,而第二条目的地址同第一条目的跳转目标一致,则当前轨迹属于跳转模式。
7.如权利要求3所述的验证处理器的方法,其特征在于,若当前轨迹的紧邻前一轨迹对应反汇编文件的条目指示循环指令,则当前轨迹属于循环执行模式。
8.如权利要求3所述的验证处理器的方法,其特征在于,若当前轨迹的紧邻前面第二条轨迹的程序计数器的值对应的地址在反汇编文件中的条目是循环指令,则当前轨迹属于循环执行模式。
9.如权利要求3所述的验证处理器的方法,其特征在于,若当前轨迹同其紧邻前面的轨迹在反汇编文件中的对应条目指示循环指令,且在反汇编文件中,当前轨迹的紧邻前一轨迹指示的循环指令的目标地址是当前轨迹指示的地址,当前轨迹的紧邻前一轨迹的程序计数器的值也为当前轨迹指示的地址,则当前轨迹属于循环执行模式。
10.一种存储设备的控制部件,包括处理器以及为在控制部件的处理器上运行而开发的源程序,其特征在于,所述处理器执行所述源程序时实现执行上述权利要求1-9之一所述的验证处理器的方法。
CN201811519074.0A 2018-12-12 2018-12-12 通过反汇编验证处理器执行轨迹的方法及控制部件 Active CN111310172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811519074.0A CN111310172B (zh) 2018-12-12 2018-12-12 通过反汇编验证处理器执行轨迹的方法及控制部件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811519074.0A CN111310172B (zh) 2018-12-12 2018-12-12 通过反汇编验证处理器执行轨迹的方法及控制部件

Publications (2)

Publication Number Publication Date
CN111310172A true CN111310172A (zh) 2020-06-19
CN111310172B CN111310172B (zh) 2022-03-11

Family

ID=71161325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811519074.0A Active CN111310172B (zh) 2018-12-12 2018-12-12 通过反汇编验证处理器执行轨迹的方法及控制部件

Country Status (1)

Country Link
CN (1) CN111310172B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1808326A (zh) * 2005-01-18 2006-07-26 微软公司 使用部分映像散列确认可执行文件完整性的系统和方法
CN101689232A (zh) * 2007-06-29 2010-03-31 艾利森电话股份有限公司 对计算机程序代码的执行轨迹进行模糊化
CN101826050A (zh) * 2010-02-03 2010-09-08 北京龙芯中科技术服务中心有限公司 一种用于制造后处理器芯片验证的随机验证方法及装置
US20150006717A1 (en) * 2013-06-27 2015-01-01 Thilo Schmitt Tracking mode of a processing device in instruction tracing systems
CN105787305A (zh) * 2016-02-26 2016-07-20 西北大学 一种抵抗符号执行和污点分析的软件保护方法
CN106126225A (zh) * 2016-06-22 2016-11-16 华东师范大学 一种基于程序演进模型的目标代码逆向工程方法
CN108121915A (zh) * 2016-11-30 2018-06-05 北京忆芯科技有限公司 电子设备生产的方法、启动的方法及系统
CN108415709A (zh) * 2018-02-12 2018-08-17 北京梆梆安全科技有限公司 一种基于有限状态机加固源代码的方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1808326A (zh) * 2005-01-18 2006-07-26 微软公司 使用部分映像散列确认可执行文件完整性的系统和方法
CN101689232A (zh) * 2007-06-29 2010-03-31 艾利森电话股份有限公司 对计算机程序代码的执行轨迹进行模糊化
CN101826050A (zh) * 2010-02-03 2010-09-08 北京龙芯中科技术服务中心有限公司 一种用于制造后处理器芯片验证的随机验证方法及装置
US20150006717A1 (en) * 2013-06-27 2015-01-01 Thilo Schmitt Tracking mode of a processing device in instruction tracing systems
CN105787305A (zh) * 2016-02-26 2016-07-20 西北大学 一种抵抗符号执行和污点分析的软件保护方法
CN106126225A (zh) * 2016-06-22 2016-11-16 华东师范大学 一种基于程序演进模型的目标代码逆向工程方法
CN108121915A (zh) * 2016-11-30 2018-06-05 北京忆芯科技有限公司 电子设备生产的方法、启动的方法及系统
CN108415709A (zh) * 2018-02-12 2018-08-17 北京梆梆安全科技有限公司 一种基于有限状态机加固源代码的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BENJAMIN SCHWARZ等: "Disassembly of Executable Code Revisited", 《网页在线公开:HTTPS://IEEEXPLORE.IEEE.ORG/STAMP/STAMP.JSP?TP=&ARNUMBER=1173063》 *
风一样的码农: "基于ARM处理器的反汇编器软件简单设计及实现", 《网页在线公开:HTTPS://WWW.CNBLOGS.COM/CHENPI/P/5199226.HTML》 *

Also Published As

Publication number Publication date
CN111310172B (zh) 2022-03-11

Similar Documents

Publication Publication Date Title
CN106547653B (zh) 计算机系统故障状态检测方法、装置及系统
US11036507B2 (en) Processor testing using pairs of counter incrementing and branch instructions
CN110618903A (zh) 电子设备测试方法与装置
US11568044B2 (en) Method and apparatus for vetting universal serial bus device firmware
CN108491321B (zh) 测试用例范围确定方法、装置及存储介质
CN110704304A (zh) 一种应用程序测试方法、装置、存储介质和服务器
JP6342129B2 (ja) 混合モードプログラムのソースコードエラー位置検出装置及び方法
CN107329889B (zh) 一种c编译器自动化测试的方法
US20200143061A1 (en) Method and apparatus for tracking location of input data that causes binary vulnerability
CN112925524A (zh) 一种检测驱动程序中不安全直接存储器访问的方法及装置
CN110580220B (zh) 测量代码段执行时间的方法及终端设备
CN111310172B (zh) 通过反汇编验证处理器执行轨迹的方法及控制部件
KR20180110482A (ko) 메모리 테스트 시스템 및 방법
CN115422865B (zh) 仿真方法及装置、计算设备、计算机可读存储介质
CN109857583B (zh) 一种处理方法及装置
US7415560B2 (en) Method of automatically monitoring computer system debugging routine
CN111666200A (zh) 一种pc软件冷启动耗时的测试方法及终端
US20220188221A1 (en) Regression testing method and regression testing apparatus
CN115657981A (zh) 验证环境中的打印信息的打印等级的设置方法及验证方法
CN115562931A (zh) 处理器调试模块验证方法、装置、电子设备和存储介质
CN110096888B (zh) 一种加快验证及分析smm安全隐患的方法及系统
CN111931161B (zh) 基于risc-v处理器的芯片验证方法、设备及存储介质
KR102165747B1 (ko) 보안성을 고려한 경량 크래시 리포트 기반 디버깅 방법
CN107526621B (zh) 一种外置存储器主控代码编译方法和装置
CN112765021A (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