CN113268427A - 一种针对二进制程序的崩溃分析方法及系统 - Google Patents

一种针对二进制程序的崩溃分析方法及系统 Download PDF

Info

Publication number
CN113268427A
CN113268427A CN202110662197.5A CN202110662197A CN113268427A CN 113268427 A CN113268427 A CN 113268427A CN 202110662197 A CN202110662197 A CN 202110662197A CN 113268427 A CN113268427 A CN 113268427A
Authority
CN
China
Prior art keywords
program
crash
taint
information
module
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
CN202110662197.5A
Other languages
English (en)
Other versions
CN113268427B (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.)
China Electronic Technology Cyber Security Co Ltd
Original Assignee
China Electronic Technology Cyber Security 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 China Electronic Technology Cyber Security Co Ltd filed Critical China Electronic Technology Cyber Security Co Ltd
Priority to CN202110662197.5A priority Critical patent/CN113268427B/zh
Publication of CN113268427A publication Critical patent/CN113268427A/zh
Application granted granted Critical
Publication of CN113268427B publication Critical patent/CN113268427B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种针对二进制程序的崩溃分析方法及系统,包括步骤:S1,信息收集和处理,在该步骤中,插桩模块对多个关键位置和基本块进行代码插桩,然后运行程序,记录信息;污点模块以程序输入为污点,跟踪污点在程序执行过程中的传播,同时,将每一条执行过的指令进行符号化操作,最后根据符号化内容,从崩溃点开始进行反向切片,记录信息;S2,基于步骤S1中处理后的数据进行分析,得到程序的执行轨迹图、污点传播轨迹图和崩溃成因等;本发明能够在无源码的情况下分析程序,收集程序运行时的崩溃信息,进行崩溃回溯,定位崩溃点,确定崩溃成因等,大大减少了人工分析的成本,可辅助漏洞分析人员快速确定程序崩溃机理等。

Description

一种针对二进制程序的崩溃分析方法及系统
技术领域
本发明涉及计算机信息安全领域,更为具体的,涉及一种针对二进制程序的崩溃分析方法及系统。
背景技术
随着程序数量的指数级增长,程序的安全性问题已经越来越引起关注。一个程序崩溃往往代表程序本身编码的不合理,或者程序本身存在一些潜在的漏洞。模糊测试技术近年来取得了飞快的发展,模糊测试的原理是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法,它能够有效的使程序产生大量的崩溃,然而,大量的崩溃同样也需要大量的人力来评估崩溃的有效性。如何更加自动化的对这些崩溃进行分析,评估崩溃原因,判断是否为漏洞,是一项很有意义的研究方向。
现有的二进制程序分析方法主要分为静态分析和动态分析。静态分析一般将二进制程序反汇编为汇编代码,依据汇编代码来进行一系列的词法、语法和语义分析。由于既没有源码,又缺少程序运行时的信息,静态分析存在误报率高和漏报率高的缺陷。动态分析是对运行时的二进制程序进行实时检测的方法,主要是通过调试运行中的二进制程序,观察其寄存器的值、内存读写等状况进行分析。动态分析的优点在于准确性高,缺点在于不能完全覆盖测试程序所有路径。
动态分析技术又分为两种,一种是基于qemu等工具来模拟程序执行过程,在模拟过程中进行插桩分析,记录数据,整个模拟过程需要完成虚拟机开机、程序执行、虚拟机关机、数据重放、数据分析。这种先记录程序执行轨迹,然后根据程序执行轨迹文件进行程序虚拟重放的方法属于一种离线分析方法,缺陷在于耗时过长;另一种是使用如pin、dynamoRIO等工具进行插桩,在程序运行过程中进行分析,属于一种在线分析方法,在线分析由于其对被测程序边记录边分析,存在内存消耗大、时间消耗长等问题。
发明内容
本发明的目的在于克服现有技术的不足,提供一种针对二进制程序的崩溃分析方法及系统,能够在无源码的情况下分析程序,收集程序运行时的崩溃信息,进行崩溃回溯,定位崩溃点,确定崩溃成因等,大大减少了人工分析的成本,可辅助漏洞分析人员快速确定程序崩溃机理等。
本发明的目的是通过以下方案实现的:
一种针对二进制程序的崩溃分析方法,包括步骤:
S1,信息收集和处理,在该步骤中,插桩模块对多个关键位置和基本块进行代码插桩,然后运行程序,记录信息;污点模块以程序输入为污点,跟踪污点在程序执行过程中的传播,同时,将每一条执行过的指令进行符号化操作,最后根据符号化内容,从崩溃点开始进行反向切片,记录信息;
S2,基于步骤S1中处理后的数据进行分析,得到程序的执行轨迹图、污点传播轨迹图和崩溃成因。
进一步地,在步骤S1中,所述代码插桩包括步骤:注册回调函数,当某个事件发生时,调用回调函数,回调函数的代码即为插入在程序特定位置中的代码。
进一步地,所述事件包括动态库加载事件、抛出信号事件、基本块内部被执行到的指令信息事件、内存读写事件中的任一种或多种。
进一步地,在插桩模块中执行记录信息和在污点模块中执行记录信息时,均在系统中事先申请一块空间进行存储,当这块空间用完时,才将数据写入到外部文件或数据库中。
进一步地,在步骤S1中的污点模块的流程中,当系统发生系统调用时,会执行事先定义好的回调函数,将一个文件输入标记为污点。
进一步地,将一个文件输入标记为污点包括如下步骤:对于输入为文件的程序,跟踪OPEN和READ两个系统调用函数,当发生这两个函数的调用时,则会执行相应的回调函数。
进一步地,基于在系统函数的入口点和出口点定义回调函数,则将一个文件输入标记为污点包括如下步骤:
a)在OPEN函数的入口点,获取OPEN函数打开的文件名,判断是否为测试程序的崩溃输入,若不符合,则中断执行;
b)若符合,则通过设置一个全局变量isOpen为True来表示文件已被正常打开;
c)OPEN函数执行结束时,返回一个文件描述符fd,同样通过一个全局变量targetFd来保存fd;
d)OPEN函数执行结束后,将全局变量isOpen设为False;
e)在READ函数的入口点,将READ函数的参数分别保存下来;
f)首先判断READ函数参数中的文件描述符fd是否与步骤c)中的targetFd相等,即判断此时正在读的内容,是否就是测试程序输入的文件中的内容;
g)当满足情况时,则记录下READ函数中要读取的内容的地址buff以及大小size,通过一个字典类型的全局变量isRead进行保存buff和size的值;
h)最后在READ函数的出口处,读取isRead中的内存,并将从位置buff开始的size大小的内存标记为污点内存;
i)READ函数执行结束后,将全局变量isRead设为None。
进一步地,在步骤S2中,对程序进行静态分析,生成程序的控制流图cfg;利用收集到的信息,将程序执行轨迹与程序的控制流图cfg进行对比和标记,生成程序的执行轨迹图;将程序污点传播与程序的控制流图cfg进行对比和标记,生成程序的污点传播图。
进一步地,在步骤S2中,事先构建好缓冲区溢出漏洞模型、格式化字符串漏洞模型和内存越界读写漏洞模型;缓冲区溢出漏洞模型用于跟踪EIP寄存器的值;格式化字符串漏洞模型用于跟踪输出函数的参数中是否包含用户可控制的字符;内存越界读写漏洞模型则用于反向跟踪非法内存地址的变化;根据程序运行结束后的崩溃信息分别进行不同漏洞模型的特征匹配,定位崩溃点,判定崩溃成因、崩溃类型。
一种针对二进制程序的崩溃分析系统,包括:
信息收集和处理模块,在该模块中包括插桩模块和污点模块,插桩模块用于对多个关键位置和基本块进行代码插桩,然后运行程序,记录信息;污点模块用于以程序输入为污点,跟踪污点在程序执行过程中的传播,同时,将每一条执行过的指令进行符号化操作,最后根据符号化内容,从崩溃点开始进行反向切片,记录信息;
数据分析模块,用于计算分析得到程序的执行轨迹图、污点传播轨迹图和崩溃成因。
本发明的有益效果包括:
本发明采用动静结合的分析方法,通过静态分析生成控制流图,动态分析跟踪程序的运行信息,以可视化的形式展示了程序的执行轨迹图和污点传播图,能够在无源码的情况下分析程序,收集程序运行时的崩溃信息,进行崩溃回溯,定位崩溃点,确定崩溃成因,简明直观。在动态分析过程中,针对代码插桩运行的效率问题,使用了一个缓冲区来存储内存信息,只有当缓冲区满时才将数据向外部传输,有效的减少了数据的读写时间;同时,构建了多种漏洞模型,自动化分析程序崩溃的成因和类型,大大减少了人工分析的成本,可辅助漏洞分析人员快速确定程序崩溃机理。
本发明可增强程序异常点、程序执行流,内存读写操作等崩溃信息的自动提取能力,可辅助漏洞分析人员快速确定程序崩溃机理,评估是否存在漏洞等。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例系统的整体框架图;
图2为本发明实施例中的污点标记流程图;其中,(a)表示系统调用入口处调用的回调函数程序流程图;(b)表示系统调用出口处调用的回调函数程序流程图。
具体实施方式
本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
如图1,2所示,一种针对二进制程序的崩溃分析方法,整个方法以程序和引起程序崩溃的用例作为输入。在信息收集部分主要分为2个部分:插桩模块对几个关键位置和基本块进行了代码插桩,然后运行程序,记录信息;污点模块以程序输入为污点,跟踪污点在程序执行过程中的传播,同时,将每一条执行过的指令进行符号化操作,最后根据符号化内容,从崩溃点开始进行反向切片,记录信息。最后依据这些信息,进行数据分析,得到程序的执行轨迹图、污点传播轨迹图和崩溃成因等结果。
在插桩模块中,可以将对程序进行插桩的过程理解为注册回调函数,当某个事件发生时,就会调用回调函数,回调函数的代码则可以理解为插入在程序特定位置中的代码,即代码插桩。本发明在如下事件中进行了代码插桩以及对应的代码功能:
动态库加载,记录程序中加载的动态库的名字、基址和路径等信息。抛出信号事件,某些时候,程序的崩溃往往会使程序抛出信号,如段错误会触发SIGSEGV信号,总线会抛出SIGBUS信号。当这些信号被程序抛出时,记录抛出信号时的信号值、信号类型和当前指令地址。
基本块,以基本块为单位,记录程序执行时,每个基本块内部被执行到的指令信息,包括指令地址、汇编代码和所属函数名。
内存读写,想要分析程序行为,程序的内存读写信息也是必不可少。当指令有内存操作时,记录指令地址、内存操作类型(读操作还是写操作)、内存地址、操作的内存长度、指令行为(如mov、add等)。程序中涉及到内存操作的指令往往可能有上万条,这么多条数据,如果一条数据就保存一次,会占用太多时间。本发明记录这些信息时,在系统中事先申请一块空间进行存储,当空间用完时,才将数据写入到外部文件或数据库中,这样可以大大减少系统I/O时间。
在污点模块中,污点标记借助到了插桩技术,当系统发生系统调用时,会执行事先定义好的回调函数。将一个文件输入标记为污点的流程如下。
对于一个输入为文件的操作往往分为两步:打开文件、读文件。对于输入为文件的程序,本发明实施例跟踪OPEN和READ两个系统调用函数,当发生这两个函数的调用时,则会执行相应的回调函数。本发明实施例分别在系统函数的入口点和出口点定义了回调函数,流程如图2所示。主要步骤如下:
a)在OPEN函数的入口点,获取OPEN函数打开的文件名,判断是否为测试程序的崩溃输入。
b)若符合,则通过设置一个全局变量isOpen为True来表示文件已被正常打开。
c)OPEN函数执行结束时,会返回一个文件描述符fd,同样通过一个全局变量targetFd来保存fd。
d)OPEN函数执行结束后,将全局变量isOpen设为False。
e)在READ函数的入口点,将READ函数的三个参数分别保存下来。
f)首先判断READ函数参数中的文件描述符fd是否与c)中的targetFd相等,即判断此时正在读的内容,是否就是测试程序输入的文件中的内容。
g)当满足情况时,则记录下READ函数中要读取的内容的地址buff以及大小size,通过一个字典类型的全局变量isRead进行保存buff和size的值。
h)最后在READ函数的出口处,读取isRead中的内存,并将从位置buff开始的size大小的内存标记为污点内存。
i)READ函数执行结束后,将全局变量isRead设为None。
符号化,使用符号化执行技术,将每一条执行过的指令进行符号化操作。
反向切片,反向切片即,若指令a的操作数取决于指令c和指令d,指令c的操作又取决于指令e,指令d的操作与别的指令没有关系,则再对指令e继续回溯,直到一条指令与其前面的所有指令没有任何控制流和数据流关系即可。
程序执行完之后,若程序发生了崩溃,则程序执行的最后一条指令即为程序的崩溃点。依据上一步操作中指令的符号化信息,从最后一条指令开始进行反向切片。
在数据分析模块中,生成轨迹图包括:对程序进行静态分析,生成程序的控制流图(ControlFlowGraph,cfg)。利用前面收集到的信息。将程序执行轨迹与程序的cfg进行对比和标记,可生成程序的执行轨迹图;将程序污点传播与程序的cfg进行对比和标记,可生成程序的污点传播图。
生成崩溃成因包括:事先构建好缓冲区溢出漏洞模型、格式化字符串漏洞模型和内存越界读写漏洞模型。缓冲区溢出漏洞模型主要是跟踪EIP寄存器的值;格式化字符串漏洞模型主要是跟踪输出函数的参数中是否包含用户可控制的字符;内存越界读写漏洞模型主要是反向跟踪非法内存地址的变化。
根据程序运行结束后的崩溃信息分别进行不同漏洞模型的特征匹配,定位崩溃点,判定崩溃成因、崩溃类型。
本发明实施例采用动静结合的分析方法,通过静态分析生成控制流图,动态分析跟踪程序的运行信息,以可视化的形式展示了程序的执行轨迹图和污点传播图,简明直观。在动态分析过程中,针对代码插桩运行的效率问题,使用了一个缓冲区来存储内存信息,只有当缓冲区满时才将数据向外部传输,有效的减少了数据的读写时间;同时,构建了几种常见的漏洞模型,自动化分析程序崩溃的成因和类型,大大减少了人工分析的成本,可辅助漏洞分析人员快速确定程序崩溃机理。
本发明实施例至少解决如下两个技术问题:
(1)高效的收集程序运行过程中环境信息,包括程序的内存读写操作、寄存器的变化、系统调用、触发了信号事件等。程序的崩溃原因往往多种多样,只有在程序运行过程中,收集到尽可能多的信息,才能方便后期的分析——回溯崩溃点,确定漏洞成因。信息收集过程使用污点分析技术和指令插桩技术。通过指令插桩技术,在感兴趣的位置进行指令插桩,如程序开始和退出时、调用系统函数时以及内存读写时等位置,插入的指令可以完成信息收集的功能息。污点分析技术通常将程序的输入标记为污点,跟踪污点数据在整个程序执行过程中的传播,记录被污染的指令。
(2)如何根据前面收集到的程序运行时的信息进行分析,定位崩溃点,是另一个技术问题。这里,用到了符号化执行技术,将每条指令进行符号化操作,依据每条语句的符号化表达式,从程序崩溃点开始回溯,进行反向切片,寻找影响程序崩溃点的指令集。通过反向切片过滤出来的指令集,结合第一步中收集到的程序信息,进行内存分析、行为分析,来确定崩溃成因。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
除以上实例以外,本领域技术人员根据上述公开内容获得启示或利用相关领域的知识或技术进行改动获得其他实施例,各个实施例的特征可以互换或替换,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
本发明功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,在一台计算机设备(可以是个人计算机,服务器,或者网络设备等)以及相应的软件中执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、或者光盘等各种可以存储程序代码的介质,进行测试或者实际的数据在程序实现中存在于只读存储器(Random Access Memory,RAM)、随机存取存储器(Random Access Memory,RAM)等。

Claims (10)

1.一种针对二进制程序的崩溃分析方法,其特征在于,包括步骤:
S1,信息收集和处理,在该步骤中,插桩模块对多个关键位置和基本块进行代码插桩,然后运行程序,记录信息;污点模块以程序输入为污点,跟踪污点在程序执行过程中的传播,同时,将每一条执行过的指令进行符号化操作,最后根据符号化内容,从崩溃点开始进行反向切片,记录信息;
S2,基于步骤S1中处理后的数据进行分析,得到程序的执行轨迹图、污点传播轨迹图和崩溃成因。
2.根据权利要求1所述的一种针对二进制程序的崩溃分析方法,其特征在于,在步骤S1中,所述代码插桩包括步骤:注册回调函数,当某个事件发生时,调用回调函数,回调函数的代码即为插入在程序特定位置中的代码。
3.根据权利要求2所述的一种针对二进制程序的崩溃分析方法,其特征在于,所述事件包括动态库加载事件、抛出信号事件、基本块内部被执行到的指令信息事件、内存读写事件中的任一种或多种。
4.根据权利要求1~3任一所述的一种针对二进制程序的崩溃分析方法,其特征在于,在插桩模块中执行记录信息和在污点模块中执行记录信息时,均在系统中事先申请一块空间进行存储,当这块空间用完时,才将数据写入到外部文件或数据库中。
5.根据权利要求1所述的一种针对二进制程序的崩溃分析方法,其特征在于,在步骤S1中的污点模块的流程中,当系统发生系统调用时,会执行事先定义好的回调函数,将一个文件输入标记为污点。
6.根据权利要求5所述的一种针对二进制程序的崩溃分析方法,其特征在于,将一个文件输入标记为污点包括如下步骤:对于输入为文件的程序,跟踪OPEN和READ两个系统调用函数,当发生这两个函数的调用时,则会执行相应的回调函数。
7.根据权利要求6所述的一种针对二进制程序的崩溃分析方法,其特征在于,基于在系统函数的入口点和出口点定义回调函数,则将一个文件输入标记为污点包括如下步骤:
a)在OPEN函数的入口点,获取OPEN函数打开的文件名,判断是否为测试程序的崩溃输入,若不符合,则中断执行;
b)若符合,则通过设置一个全局变量isOpen为True来表示文件已被正常打开;
c)OPEN函数执行结束时,返回一个文件描述符fd,同样通过一个全局变量targetFd来保存fd;
d)OPEN函数执行结束后,将全局变量isOpen设为False;
e)在READ函数的入口点,将READ函数的参数分别保存下来;
f)首先判断READ函数参数中的文件描述符fd是否与步骤c)中的targetFd相等,即判断此时正在读的内容,是否就是测试程序输入的文件中的内容;
g)当满足情况时,则记录下READ函数中要读取的内容的地址buff以及大小size,通过一个字典类型的全局变量isRead进行保存buff和size的值;
h)最后在READ函数的出口处,读取isRead中的内存,并将从位置buff开始的size大小的内存标记为污点内存;
i)READ函数执行结束后,将全局变量isRead设为None。
8.根据权利要求1所述的一种针对二进制程序的崩溃分析方法,其特征在于,在步骤S2中,对程序进行静态分析,生成程序的控制流图cfg;利用收集到的信息,将程序执行轨迹与程序的控制流图cfg进行对比和标记,生成程序的执行轨迹图;将程序污点传播与程序的控制流图cfg进行对比和标记,生成程序的污点传播图。
9.根据权利要求1所述的一种针对二进制程序的崩溃分析方法,其特征在于,在步骤S2中,事先构建好缓冲区溢出漏洞模型、格式化字符串漏洞模型和内存越界读写漏洞模型;缓冲区溢出漏洞模型用于跟踪EIP寄存器的值;格式化字符串漏洞模型用于跟踪输出函数的参数中是否包含用户可控制的字符;内存越界读写漏洞模型则用于反向跟踪非法内存地址的变化;根据程序运行结束后的崩溃信息分别进行不同漏洞模型的特征匹配,定位崩溃点,判定崩溃成因、崩溃类型。
10.一种针对二进制程序的崩溃分析系统,其特征在于,包括:
信息收集和处理模块,在该模块中包括插桩模块和污点模块,插桩模块用于对多个关键位置和基本块进行代码插桩,然后运行程序,记录信息;污点模块用于以程序输入为污点,跟踪污点在程序执行过程中的传播,同时,将每一条执行过的指令进行符号化操作,最后根据符号化内容,从崩溃点开始进行反向切片,记录信息;
数据分析模块,用于计算分析得到程序的执行轨迹图、污点传播轨迹图和崩溃成因。
CN202110662197.5A 2021-06-15 2021-06-15 一种针对二进制程序的崩溃分析方法及系统 Active CN113268427B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110662197.5A CN113268427B (zh) 2021-06-15 2021-06-15 一种针对二进制程序的崩溃分析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110662197.5A CN113268427B (zh) 2021-06-15 2021-06-15 一种针对二进制程序的崩溃分析方法及系统

Publications (2)

Publication Number Publication Date
CN113268427A true CN113268427A (zh) 2021-08-17
CN113268427B CN113268427B (zh) 2022-03-29

Family

ID=77235059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110662197.5A Active CN113268427B (zh) 2021-06-15 2021-06-15 一种针对二进制程序的崩溃分析方法及系统

Country Status (1)

Country Link
CN (1) CN113268427B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741700A (zh) * 2022-03-28 2022-07-12 中国人民解放军战略支援部队信息工程大学 基于符号化污点分析的公共组件库漏洞可利用性分析方法及装置
CN115098292A (zh) * 2022-07-05 2022-09-23 中国电信股份有限公司 应用程序崩溃根原因识别方法、装置及电子设备
CN115795489A (zh) * 2023-02-09 2023-03-14 中国电子科技集团公司第三十研究所 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189141B1 (en) * 1998-05-04 2001-02-13 Hewlett-Packard Company Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control
JP2002163131A (ja) * 2000-11-27 2002-06-07 Nec Corp ファイル管理システムおよびそれを用いた評価環境管理方法
CN102495795A (zh) * 2011-11-25 2012-06-13 中国人民解放军总参谋部第五十四研究所 一种基于中间语言分析的软件脆弱性测试方法
CN103440201A (zh) * 2013-09-05 2013-12-11 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用
CN104598383A (zh) * 2015-02-06 2015-05-06 中国科学院软件研究所 一种基于模式的动态漏洞挖掘集成系统和方法
CN109002721A (zh) * 2018-07-12 2018-12-14 南方电网科学研究院有限责任公司 一种信息安全漏洞的挖掘分析方法
CN109583200A (zh) * 2017-09-28 2019-04-05 中国科学院软件研究所 一种基于动态污点传播的程序异常分析方法
CN109714314A (zh) * 2018-11-21 2019-05-03 中国电子科技网络信息安全有限公司 一种重现漏洞全生命周期的全息漏洞库的构建方法
CN110941552A (zh) * 2019-11-20 2020-03-31 广州大学 一种基于动态污点分析的内存分析方法及装置
CN111625833A (zh) * 2020-04-13 2020-09-04 中国科学院软件研究所 一种高效的软件程序释放后重用漏洞判定方法和装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189141B1 (en) * 1998-05-04 2001-02-13 Hewlett-Packard Company Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control
JP2002163131A (ja) * 2000-11-27 2002-06-07 Nec Corp ファイル管理システムおよびそれを用いた評価環境管理方法
CN102495795A (zh) * 2011-11-25 2012-06-13 中国人民解放军总参谋部第五十四研究所 一种基于中间语言分析的软件脆弱性测试方法
CN103440201A (zh) * 2013-09-05 2013-12-11 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用
CN104598383A (zh) * 2015-02-06 2015-05-06 中国科学院软件研究所 一种基于模式的动态漏洞挖掘集成系统和方法
CN109583200A (zh) * 2017-09-28 2019-04-05 中国科学院软件研究所 一种基于动态污点传播的程序异常分析方法
CN109002721A (zh) * 2018-07-12 2018-12-14 南方电网科学研究院有限责任公司 一种信息安全漏洞的挖掘分析方法
CN109714314A (zh) * 2018-11-21 2019-05-03 中国电子科技网络信息安全有限公司 一种重现漏洞全生命周期的全息漏洞库的构建方法
CN110941552A (zh) * 2019-11-20 2020-03-31 广州大学 一种基于动态污点分析的内存分析方法及装置
CN111625833A (zh) * 2020-04-13 2020-09-04 中国科学院软件研究所 一种高效的软件程序释放后重用漏洞判定方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JUNYIN WU等: "Finite Element Modeling and Dynamic Mode Characteristics of Pile-Slab Structure", 《2020 INTERNATIONAL CONFERENCE ON INTELLIGENT TRANSPORTATION, BIG DATA & SMART CITY (ICITBS)》 *
张婧等: "基于动态污点分析的栈溢出Crash判定技术", 《计算机工程》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741700A (zh) * 2022-03-28 2022-07-12 中国人民解放军战略支援部队信息工程大学 基于符号化污点分析的公共组件库漏洞可利用性分析方法及装置
CN114741700B (zh) * 2022-03-28 2024-05-03 中国人民解放军战略支援部队信息工程大学 基于符号化污点分析的公共组件库漏洞可利用性分析方法及装置
CN115098292A (zh) * 2022-07-05 2022-09-23 中国电信股份有限公司 应用程序崩溃根原因识别方法、装置及电子设备
CN115098292B (zh) * 2022-07-05 2023-12-08 中国电信股份有限公司 应用程序崩溃根原因识别方法、装置及电子设备
CN115795489A (zh) * 2023-02-09 2023-03-14 中国电子科技集团公司第三十研究所 一种基于硬件级进程跟踪的软件漏洞静态分析方法及装置

Also Published As

Publication number Publication date
CN113268427B (zh) 2022-03-29

Similar Documents

Publication Publication Date Title
CN113268427B (zh) 一种针对二进制程序的崩溃分析方法及系统
CN109583200B (zh) 一种基于动态污点传播的程序异常分析方法
Fu et al. Where do developers log? an empirical study on logging practices in industry
CN109284269B (zh) 异常日志分析方法、装置、存储介质及服务器
US8924912B2 (en) Method of recording and replaying call frames for a test bench
CN111756575B (zh) 存储服务器的性能分析方法及装置、电子设备
US8473915B2 (en) Coverage analysis tool for testing database-aware software applications
JP5430570B2 (ja) システムコールカバレッジ基準による試験スイート削減のための方法
US8839203B2 (en) Code coverage-based taint perimeter detection
US10761963B2 (en) Object monitoring in code debugging
US20090287729A1 (en) Source code coverage testing
US7698690B2 (en) Identifying code that wastes time performing redundant computation
US20140337822A1 (en) Storage of software execution data by behavioral identification
US9355003B2 (en) Capturing trace information using annotated trace output
JP6867066B1 (ja) 動的ステイン分析に基づくメモリ分析方法及び装置
CN111625833B (zh) 一种高效的软件程序释放后重用漏洞判定方法和装置
KR101979329B1 (ko) 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치
CN110597704B (zh) 应用程序的压力测试方法、装置、服务器和介质
CN115328796A (zh) 一种用于arm架构的软件漏洞辅助定位方法和系统
US8381185B2 (en) Apparatus, system, and method for dynamic module flow analysis
JP2002099584A (ja) 設計検証システム、設計検証方法および設計検証プログラムを格納したコンピュータ読取り可能な記録媒体
CN108446235A (zh) 结合路径标签数据变异的模糊测试关键数据定位方法
CN110633199A (zh) 用于支持智能合约的区块链的测试装置、方法及介质
CN108469997B (zh) 一种基于动态特征的自定义堆管理函数的自动识别方法
CN114564354A (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