CN111625833A - 一种高效的软件程序释放后重用漏洞判定方法和装置 - Google Patents

一种高效的软件程序释放后重用漏洞判定方法和装置 Download PDF

Info

Publication number
CN111625833A
CN111625833A CN202010285957.0A CN202010285957A CN111625833A CN 111625833 A CN111625833 A CN 111625833A CN 202010285957 A CN202010285957 A CN 202010285957A CN 111625833 A CN111625833 A CN 111625833A
Authority
CN
China
Prior art keywords
instruction
crash
program
vulnerability
release
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
CN202010285957.0A
Other languages
English (en)
Other versions
CN111625833B (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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN202010285957.0A priority Critical patent/CN111625833B/zh
Publication of CN111625833A publication Critical patent/CN111625833A/zh
Application granted granted Critical
Publication of CN111625833B publication Critical patent/CN111625833B/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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明公开了一种高效的软件程序释放后重用漏洞判定方法和装置。本发明的主要方法为:(1)利用已知的漏洞触发样本使得程序在运行过程中发生崩溃,并记录从程序开始运行到崩溃发生时的所有执行过的指令;(2)根据程序运行过程中对于***函数的调用情况,实时记录所有堆管理操作行为;(3)采用逆向动态污点传播技术,从程序崩溃时开始,向前回溯分析和崩溃指令相关的传播指令集;(4)进行关联分析,寻找到崩溃指令相关的对象赋值时刻,并以此为基础寻找对应的对象分配与释放周期,进而判定在崩溃发生时该对象是否已经释放,如果是则表明存在释放后重用漏洞。本发明有助于提高在实际环境中对于释放后重用漏洞的检测和防护能力。

Description

一种高效的软件程序释放后重用漏洞判定方法和装置
技术领域
本发明属于网络安全技术领域,具体涉及一种高效的软件程序释放后重用漏洞判定方法和装置。
背景技术
尽管目前模糊测试技术能够越来越迅速的发现大量且种类繁多的软件漏洞,但释放后重用漏洞是目前公认的最为常见也是可利用性最高的一类漏洞,其由于破坏指针复用的自身属性,使得该类型漏洞具有极其强大的网络与***安全破坏能力。尽管针对释放后重用漏洞的检测与判定已经有较多方案,但这些方案的共同特点是需要从程序正常执行开始,记录海量的对象动态分配、使用、释放以及重分配等行为,而这样的过程导致释放后重用漏洞的检测与判定效率低下,同时由于设计较多的底层指针操作过程导致现有方案存在不精确的问题。
和本专利相关的释放后重用漏洞检测工作主要分为以下两种:
(1)基于堆防护页的检测方法:通过动态标识每个堆块的分配、释放状态,从而能够实时得知每一个内存对象的存活状态,当任何时刻有对象的内存区域被访问时,通过实时检测该内存是否分配还是已释放来判定是否有释放后重用问题发生;
(2)基于对象指针跟踪的检测方法:该方法主要是通过细粒度记录所有对象分配时产生的指针以及程序对于该指针的传播、使用、释放以及清空等操作,当任何时刻存在指针解引用行为时,通过实时查询堆对象存活状态从而判定是否存在释放后重用问题发生。
上述两类方法主要存在的问题在于对于堆管理以及检测方法效率问题。其中,基于堆防护页的检测方法需要修改***本身的堆管理器,同时由于需要实时记录和检测每一次堆对象分配、释放以及访问等过程,将明显增加***的开销,降低程序的运行效率,使得该方法难以使用于目前对性能极其敏感的大规模实时程序。其次,对于第二种需要记录所有的堆对象指针分配、使用、释放、清空等操作的方法而言,该过程需要细粒度记录所有的操作过程,而在***底层堆管理实现过程中由于涉及到指针复杂计算过程,现有污点分析等程序分析技术往往因为隐式传播问题带来较高的误报率和漏报率。
发明内容
针对现有软件程序释放后重用漏洞判定方法存在的效率以及对于堆管理器的依赖性,本发明的目的在于提出一种高效的软件程序释放后重用漏洞判定方法,适用于二进制代码和源码,通过动态监控程序运行过程中指令记录、崩溃指令以及堆操作相关行为,从崩溃指令开始逆向回溯分析,从而完成释放后重用漏洞高效检测。
一种高效的软件程序释放后重用漏洞判定方法,其步骤如下:
1)利用已知的漏洞触发样本使得程序在运行过程中发生崩溃,并记录从程序开始运行到崩溃发生时的所有执行过的指令;
2)根据程序运行过程中对于***函数的调用情况,实时记录所有堆管理操作行为;
3)采用逆向动态污点传播技术,从程序崩溃时开始,向前回溯分析与崩溃指令相关的传播指令集;
4)根据步骤2)和步骤3)的结果进行关联分析,寻找到崩溃指令相关的对象赋值时刻,并以此为基础寻找对应的对象分配与释放周期,并以此为依据判定在崩溃发生时该对象是否已经释放,如果是则表明检测到了释放后重用漏洞。
进一步地,在上述步骤1)中需要记录程序执行的每一条指令以及记录程序在执行哪条指令时崩溃。
进一步地,步骤2)根据程序运行过程中对于堆分配、释放以及重分配等***函数的调用情况,实时记录所有堆管理操作行为,并将其相关堆分配、释放的大小、堆块的起始地址等信息进行记录。具体地,步骤2)中需要进行记录的信息包括该次堆分配所对应的线程标识、堆分配大小、实际返回的堆地址等内容。
进一步地,步骤3)中需要作为逆向污点传播对象的数据在32位***中该长度是4个字节,而在64位***中该长度是8个字节。
进一步地,,在步骤3)中提到的逆向动态污点传播技术主要包括以下两个过程:
首先,根据程序动态执行过程提取程序崩溃时的指令信息,即崩溃指令;
其次,如果该崩溃指令是内存读写指令,则逆向分析该指令中的内存指针,该指针由某个寄存器加上某个常量偏移得到;另外,如果崩溃指令是函数调用指令,则需要首先寻找该函数来自于哪个对象。
进一步地,依据步骤2)和3)的关联信息进行步骤4),即检测崩溃发生时相关对象是否已经释放,如果是,则可判定为释放后重用漏洞发生。
基于同一发明构思,本发明还提供一种高效的软件程序释放后重用漏洞判定装置,其包括:
程序崩溃信息记录模块,用于利用已知的漏洞触发样本使得程序在运行过程中发生崩溃,并记录从程序开始运行到崩溃发生时的所有执行过的指令;
堆管理操作行为记录模块,用于根据程序运行过程中对于***函数的调用情况,实时记录所有堆管理操作行为;
逆向回溯分析模块,用于采用逆向动态污点传播技术,从程序崩溃时开始,向前回溯分析与崩溃指令相关的传播指令集;
关联分析模块,用于根据堆管理操作行为记录模块和逆向回溯分析模块的结果进行关联分析,寻找到崩溃指令相关的对象赋值时刻,并以此为基础寻找对应的对象分配与释放周期,进而判定在崩溃发生时该对象是否已经释放,如果是则判定该崩溃是由释放后重用漏洞导致。
本发明的优点和积极效果如下:
1.本发明借助逆向动态污点传播方法,从崩溃点出发,避免正向跟踪所有对象分配与释放以及相关对象指针的计算与传播,明显提高释放后重用漏洞判定效率;
2.本发明通过透明式的动态分析方法,能够保证原有程序的运行效率,可以适用于大规模程序;
3.本发明不需要依赖源代码重编译,能够很好的适应目前数目众多的闭源软件。
综上,本发明提出的一种高效的软件程序释放后重用判定方法,解决现有检测与判定方法中存在的漏报、效率低以及依赖源码等问题,能够帮助快速判定程序崩溃是否由释放后重用漏洞引起,进一步降低释放后重用漏洞给现有互联网环境所带来的潜在危害。本发明有助于提升释放后重用漏洞判定的性能问题,通过逆向回溯的分析方式避免了针对海量对象指针分配、使用、释放、重分配等行为的细粒度传播分析,最后通过直接逆向分析的方式进行释放后重用漏洞检测的提升了漏洞检测效率,这些特点均有助于提高在实际环境中对于释放后重用漏洞的检测和防护能力。
附图说明
图1为面向二进制程序的释放后重用漏洞判定流程图。
具体实施方式
下面结合附图详细说明本发明的技术方案:
本实施例提供一种高效的二进制程序释放后重用判定方法,包括以下步骤:
1.监控程序崩溃过程中的每一条指令以及崩溃时的指令
通过程序动态监控技术,获取指令执行记录集合InsnTrace={(TraecID,Instruction,OperandAddress,OperandValue,ThreadID)}以及程序崩溃信息CrashInfo=(TraecID,Instruction,OperandAddress,OperandValue,ThreadID)。其中,TraceID表示该指令对应的记录ID,Instruction表示该指令的具体汇编形式,OperandAddress表示指令操作数的内存地址,如果是寄存器,则需要映射到特定的内存上,OperandValue表示指令操作数的值,ThreadID表示线程ID。
2.监控程序动态堆分配、释放等行为
首先,通过程序动态监控技术,获取堆分配、释放等行为,并在基础上进行堆操作行为记录。具体的,本发明使用HeapInfo=(ThreadID、HeapBase、HeapSize)来描述相关的堆分配。其中,由于在同一个程序中存在多线程同时分配堆内存的情况,因此为了更加有效的区分不同线程的堆分配,用ThreadID来作为不同的线程标识;HeapBase作为本次堆分配的起始地址,也称为堆地址指针,后续将通过跟踪该指针来监控程序对于该堆块数据的访问和写入等操作过程;HeapSize用来记录该次堆分配的大小,后续将根据其来进行堆内存访问越界,即堆溢出的主要判定因素。
3.基于崩溃指令的逆向回溯分析
根据崩溃时所记录的指令信息,采用逆向污点分析方法进行逆向数据流回溯分析并提取所有相关的指令集合。其中如果崩溃指令涉及到内存读/写(例如,mov[eax],ebx或者mov ebx,[eax],这里寄存器eax是某个对象的指针),将以该指针(寄存器eax)为目标进行逆向分析;如果只是某个函数调用(例如,call edx或者call[edx],其中寄存器edx来源于某个已经被释放对象的成员),将以存放该函数的变量为起点向前回溯到该变量的来源(例如,mov edx,[eax],其中寄存器eax是某个已经被释放对象的指针),并以该来源作为回溯起点进行逆向分析。
4.基于逆向动态污点回溯分析的释放后重用漏洞判定
根据步骤2和步骤3的结果进行关联分析,寻找到崩溃指令相关的对象赋值时刻,并以此为基础寻找其对应的对象分配与释放周期,并以此为依据判定在崩溃发生时,该对象是否已经释放,如果是则表明检测到了释放后重用漏洞。
上述步骤1~4的详细流程可参见图1,主要判定过程如下:
a)通过程序动态监控的方式,获取程序执行过程中的每一条指令,并通过语义解析来进行指令信息的记录,这里假设通过程序动态监控捕获到了程序崩溃指令CrashInfo(其定义见步骤1以及所有执行过的指令记录集合InsnTrace,同时也记录下来所有和堆分配、释放、重分配等操作记录HeapInfo;
b)从崩溃指令开始,假设其TraceID=i,向前回溯分析指令i-1,i-2,…,如步骤3所述,如果崩溃是由错误的内存读/写导致(例如,mov[reg],data或者mov data,[reg])且假设该指令中的内存指针由某寄存器reg来表示,则开始从指令i-1,i-2,…中寻找该寄存器是从哪块内存读取的,这里假设在第j条指令是由内存mem位置读取(例如,mov reg,[mem]),随后将继续向前查找指令序列j-1,j-2,…,寻找reg是从何时存储到内存mem中,这里假设在第k条指令,对象指针reg存储到内存mem中;
c)如果崩溃指令不是由错误的内存解引用导致,而是由错误的对象成员函数调用导致(例如,call reg或者call[reg]),则向前回溯分析寄存器reg来源于哪个对象内存,这里仍假设在第j条指令是由内存mem位置读取,同样的,将从第j条指令开始向前继续查找指令序列j-1,j-2,…,寻找reg何时存储到内存mem中,同样假设在第k条指令,对象成员函数reg存储到内存mem中;
d)无论崩溃指令是哪种指令类型,根据上述两步阐述,都假设第k条指令是崩溃相关的指针寄存器reg存储到了内存mem中,此时,将以k为索引,从步骤2中获取到的HeapInfo中查询指针寄存器reg所指向的对象,这里假设reg指向了对象ObjA,以ObjA为索引,查找该对象的释放时刻,假设释放时刻为tfree(即,TraceID=tfree),则开始判断程序最后一次从内存mem中读取指针寄存器reg的时刻treuse,是否存在treuse>tfree,如果该不等式成立,则说明读取时对象已经释放,从而检测出了释放后重用漏洞,否则说明该崩溃不是由释放后重用漏洞导致。
尽管上述实施例的目标是针对二进制代码,但其中的算法以及实施过程针对源码也可以适用。
本发明提出的一种高效的软件程序释放后重用漏洞判定方法,对于本领域的技术人员而言,可以根据需要自己部署不同的程序动态监控方案,以及在逆向分析过程中添加更加复杂的回溯规则,可以根据情况针对每种语义类型部署不同的特殊回溯规则、程序敏感点以及处理方法,从而获得达到特定需求的分析目的。
基于同一发明构思,本发明的另一个实施例提供一种高效的软件程序释放后重用漏洞判定装置,其包括:
程序崩溃信息记录模块,用于利用已知的漏洞触发样本使得程序在运行过程中发生崩溃,并记录从程序开始运行到崩溃发生时的所有执行过的指令;
堆管理操作行为记录模块,用于根据程序运行过程中对于***函数的调用情况,实时记录所有堆管理操作行为;
逆向回溯分析模块,用于采用逆向动态污点传播技术,从程序崩溃时开始,向前回溯分析与崩溃指令相关的传播指令集;
关联分析模块,用于根据堆管理操作行为记录模块和逆向回溯分析模块的结果进行关联分析,寻找到崩溃指令相关的对象赋值时刻,并以此为基础寻找对应的对象分配与释放周期,进而判定在崩溃发生时该对象是否已经释放,如果是则判定该崩溃是由释放后重用漏洞导致。
基于同一发明构思,本发明的另一个实施例提供一种电子装置(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
基于同一发明构思,本发明的另一个实施例提供一种计算机可读存储介质(如ROM/RAM、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (10)

1.一种高效的软件程序释放后重用漏洞判定方法,其步骤包括:
1)利用已知的漏洞触发样本使得程序在运行过程中发生崩溃,并记录从程序开始运行到崩溃发生时的所有执行过的指令;
2)根据程序运行过程中对于***函数的调用情况,实时记录所有堆管理操作行为;
3)采用逆向动态污点传播技术,从程序崩溃时开始,向前回溯分析与崩溃指令相关的传播指令集;
4)根据步骤2)和步骤3)的结果进行关联分析,寻找到崩溃指令相关的对象赋值时刻,并以此为基础寻找对应的对象分配与释放周期,进而判定在崩溃发生时该对象是否已经释放,如果是则判定该崩溃是由释放后重用漏洞导致。
2.如权利要求1所述的方法,其特征在于,步骤1)中记录的信息包括指令执行记录集合InsnTrace={(TraecID,Instruction,OperandAddress,OperandValue,ThreadID)}以及程序崩溃信息CrashInfo=(TraecID,Instruction,OperandAddress,OperandValue,ThreadID),其中,TraceID表示该指令对应的记录ID,Instruction表示该指令的具体汇编形式,OperandAddress表示指令操作数的内存地址,如果是寄存器,则需要映射到特定的内存上,OperandValue表示指令操作数的值,ThreadID表示线程ID。
3.如权利要求1所述的方法,其特征在于,步骤2)中记录的信息包括:HeapInfo=(ThreadID,HeapBase,HeapSize),其中,ThreadID表示负责分配堆块的线程标识,HeapBase表示分配的堆起始地址,也称为堆地址指针,HeapSize表示堆块的实际分配大小。
4.如权利要求3所述的方法,其特征在于,步骤3)根据崩溃时所记录的指令信息即崩溃指令,采用逆向动态污点传播技术进行逆向数据流回溯分析并提取所有相关的指令集合;如果崩溃指令涉及到内存读/写,则以指针即寄存器为目标进行逆向分析;如果崩溃指令是某个函数调用,则以存放函数的变量为起点向前回溯到变量的来源,并以该来源作为回溯起点进行逆向分析。
5.如权利要求4所述的方法,其特征在于,步骤3)包括:
从崩溃指令开始,假设其TraceID=i,向前回溯分析指令i-1,i-2,…,如果崩溃是由错误的内存读/写导致且假设该指令中的内存指针由某寄存器reg来表示,则开始从指令i-1,i-2,…中寻找该寄存器是从哪块内存读取的,假设在第j条指令是由内存mem位置读取,随后继续向前查找指令序列j-1,j-2,…,寻找reg是从何时存储到内存mem中,假设在第k条指令,对象指针reg存储到内存mem中;
如果崩溃指令是由错误的对象成员函数调用导致,则向前回溯分析寄存器reg来源于哪个对象内存,仍假设在第j条指令是由内存mem位置读取,同样的,从第j条指令开始向前继续查找指令序列j-1,j-2,…,寻找reg何时存储到内存mem中,同样假设在第k条指令,对象成员函数reg存储到内存mem中。
6.如权利要求5所述的方法,其特征在于,步骤4)包括:无论崩溃指令是哪种指令类型,都假设第k条指令是崩溃相关的指针寄存器reg存储到了内存mem中,然后以k为索引,从HeapInfo中查询指针寄存器reg所指向的对象,假设reg指向对象ObjA;以ObjA为索引,查找该对象的释放时刻,假设释放时刻为tfree;判断程序最后一次从内存mem中读取指针寄存器reg的时刻treuse,是否存在treuse>tfree,如果该不等式成立,则说明读取时对象已经释放,从而检测出了释放后重用漏洞,否则说明该崩溃不是由释放后重用漏洞导致。
7.一种高效的软件程序释放后重用漏洞判定装置,其特征在于,包括:
程序崩溃信息记录模块,用于利用已知的漏洞触发样本使得程序在运行过程中发生崩溃,并记录从程序开始运行到崩溃发生时的所有执行过的指令;
堆管理操作行为记录模块,用于根据程序运行过程中对于***函数的调用情况,实时记录所有堆管理操作行为;
逆向回溯分析模块,用于采用逆向动态污点传播技术,从程序崩溃时开始,向前回溯分析与崩溃指令相关的传播指令集;
关联分析模块,用于根据堆管理操作行为记录模块和逆向回溯分析模块的结果进行关联分析,寻找到崩溃指令相关的对象赋值时刻,并以此为基础寻找对应的对象分配与释放周期,进而判定在崩溃发生时该对象是否已经释放,如果是则判定该崩溃是由释放后重用漏洞导致。
8.如权利要求7所述的装置,其特征在于,所述逆向回溯分析模块根据崩溃时所记录的指令信息即崩溃指令,采用逆向动态污点传播技术进行逆向数据流回溯分析并提取所有相关的指令集合;如果崩溃指令涉及到内存读/写,则以指针即寄存器为目标进行逆向分析;如果崩溃指令是某个函数调用,则以存放函数的变量为起点向前回溯到变量的来源,并以该来源作为回溯起点进行逆向分析。
9.一种电子装置,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~6中任一权利要求所述方法的指令。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~6中任一权利要求所述的方法。
CN202010285957.0A 2020-04-13 2020-04-13 一种高效的软件程序释放后重用漏洞判定方法和装置 Active CN111625833B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010285957.0A CN111625833B (zh) 2020-04-13 2020-04-13 一种高效的软件程序释放后重用漏洞判定方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010285957.0A CN111625833B (zh) 2020-04-13 2020-04-13 一种高效的软件程序释放后重用漏洞判定方法和装置

Publications (2)

Publication Number Publication Date
CN111625833A true CN111625833A (zh) 2020-09-04
CN111625833B CN111625833B (zh) 2023-06-13

Family

ID=72258805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010285957.0A Active CN111625833B (zh) 2020-04-13 2020-04-13 一种高效的软件程序释放后重用漏洞判定方法和装置

Country Status (1)

Country Link
CN (1) CN111625833B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181833A (zh) * 2020-09-28 2021-01-05 全球能源互联网研究院有限公司 一种智能化模糊测试方法、装置及***
CN112287353A (zh) * 2020-10-28 2021-01-29 北京智游网安科技有限公司 一种漏洞检测方法、终端及存储介质
CN113268427A (zh) * 2021-06-15 2021-08-17 中国电子科技网络信息安全有限公司 一种针对二进制程序的崩溃分析方法及***
CN113918371A (zh) * 2021-10-18 2022-01-11 北京字节跳动网络技术有限公司 一种内存处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346542A (zh) * 2013-07-24 2015-02-11 阿里巴巴集团控股有限公司 基于二进制程序的漏洞挖掘方法及装置
CN105808430A (zh) * 2016-03-03 2016-07-27 中国科学院软件研究所 一种多语义动态污点分析方法
WO2018086292A1 (zh) * 2016-11-14 2018-05-17 平安科技(深圳)有限公司 应用软件安全漏洞检测方法、***、设备及存储介质
CN108073817A (zh) * 2017-12-05 2018-05-25 中国科学院软件研究所 一种基于主动构造的离线堆溢出漏洞挖掘方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346542A (zh) * 2013-07-24 2015-02-11 阿里巴巴集团控股有限公司 基于二进制程序的漏洞挖掘方法及装置
CN105808430A (zh) * 2016-03-03 2016-07-27 中国科学院软件研究所 一种多语义动态污点分析方法
WO2018086292A1 (zh) * 2016-11-14 2018-05-17 平安科技(深圳)有限公司 应用软件安全漏洞检测方法、***、设备及存储介质
CN108073817A (zh) * 2017-12-05 2018-05-25 中国科学院软件研究所 一种基于主动构造的离线堆溢出漏洞挖掘方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
沙乐天;肖甫;杨红柯;喻辉;王汝传;: "基于自适应模糊测试的IaaS层漏洞挖掘方法" *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181833A (zh) * 2020-09-28 2021-01-05 全球能源互联网研究院有限公司 一种智能化模糊测试方法、装置及***
CN112287353A (zh) * 2020-10-28 2021-01-29 北京智游网安科技有限公司 一种漏洞检测方法、终端及存储介质
CN113268427A (zh) * 2021-06-15 2021-08-17 中国电子科技网络信息安全有限公司 一种针对二进制程序的崩溃分析方法及***
CN113918371A (zh) * 2021-10-18 2022-01-11 北京字节跳动网络技术有限公司 一种内存处理方法及装置
CN113918371B (zh) * 2021-10-18 2023-06-20 抖音视界有限公司 一种内存处理方法及装置

Also Published As

Publication number Publication date
CN111625833B (zh) 2023-06-13

Similar Documents

Publication Publication Date Title
CN111625833B (zh) 一种高效的软件程序释放后重用漏洞判定方法和装置
CN109583200B (zh) 一种基于动态污点传播的程序异常分析方法
CN103399812B (zh) 基于Xen硬件虚拟化的磁盘文件操作监控***及监控方法
US7346476B2 (en) Event tracing with time stamp compression
US7369954B2 (en) Event tracing with time stamp compression and history buffer based compression
US8566795B2 (en) Selectively obtaining call stack information based on criteria
US7373637B2 (en) Method and apparatus for counting instruction and memory location ranges
US7698690B2 (en) Identifying code that wastes time performing redundant computation
US20080148241A1 (en) Method and apparatus for profiling heap objects
KR101979329B1 (ko) 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치
US10558439B2 (en) Automatic reference counting
CN113268427B (zh) 一种针对二进制程序的崩溃分析方法及***
CN112733150A (zh) 一种基于脆弱性分析的固件未知漏洞检测方法
CN110647472A (zh) 崩溃信息统计方法、装置、计算机设备及存储介质
CN107506622B (zh) 一种基于内存对象访问序列的软件动态胎记及抄袭检测方法
US20060212243A1 (en) Event tracing using hash tables with support for dynamic address to name resolution
US8176286B2 (en) Memory recycling in computer systems
CN108469997B (zh) 一种基于动态特征的自定义堆管理函数的自动识别方法
CN107729747A (zh) 一种面向二进制程序的堆溢出检测方法
CN111931191A (zh) Linux平台二进制软件堆溢漏洞动态检测方法及***
US20050086455A1 (en) Method and apparatus for generating interrupts for specific types of instructions
CN114741700B (zh) 基于符号化污点分析的公共组件库漏洞可利用性分析方法及装置
CN114443418A (zh) 一种基于硬件虚拟化的riscv内存溢出漏洞检测方法及装置
CN113886774B (zh) 一种反调试方法及装置
CN117369868B (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