CN107491387A - 一种文件处理程序的加密点和检查点定位方法及系统 - Google Patents

一种文件处理程序的加密点和检查点定位方法及系统 Download PDF

Info

Publication number
CN107491387A
CN107491387A CN201710587017.5A CN201710587017A CN107491387A CN 107491387 A CN107491387 A CN 107491387A CN 201710587017 A CN201710587017 A CN 201710587017A CN 107491387 A CN107491387 A CN 107491387A
Authority
CN
China
Prior art keywords
documentor
point
module
stain
pass point
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
Application number
CN201710587017.5A
Other languages
English (en)
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.)
PLA Information Engineering University
Original Assignee
PLA Information Engineering University
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 PLA Information Engineering University filed Critical PLA Information Engineering University
Priority to CN201710587017.5A priority Critical patent/CN107491387A/zh
Publication of CN107491387A publication Critical patent/CN107491387A/zh
Pending legal-status Critical Current

Links

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/366Software debugging using diagnostics
    • 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

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

本发明属于软件测试技术领域,尤其涉及一种文件处理程序的加密点和检查点定位方法及系统。一种文件处理程序的加密点和检查点定位方法,包括:载入被测对象,即文件处理程序,对文件处理程序进行污点分析;根据污点分析的结果,构造候选检查点集合;逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;根据污点分析的结果,定位文件处理程序的加密点。一种文件处理程序的加密点和检查点定位系统,包括:载入分析模块;候选检查点生成模块;检查点定位模块;加密点定位模块。本发明提出一种文件处理程序的加密点和检查点定位方法及系统,可以提高模糊测试生成的有效样本的比例。

Description

一种文件处理程序的加密点和检查点定位方法及系统
技术领域
本发明涉及软件测试技术领域,尤其涉及一种文件处理程序的加密点和检查点定位方法及系统。
背景技术
从当前软件脆弱性测试技术的发展情况来看,模糊测试技术 (Fuzzing)仍然是文件处理软件脆弱性检测的主要手段。模糊测试是一种基于缺陷注入的自动软件测试技术,通过构造大量畸形数据作为应用程序的输入,导致一些未对输入做校验或者校验不严格的应用触发异常行为。文件处理软件作为当前操作系统应用频率最高的软件,由于其代码复杂性往往包含一些未知的0day漏洞。目前针对该类软件的模糊测试主要集中于对文件格式数据的变异方面。
尽管现在有很多支持对文件进行模糊测试的工具,例如Peach,Sulley,FileFuzz等,但当被测软件中存在数据加密机制以及完整性检查机制的情况下,会导致模糊测试生成的大量测试用例因无效而被过早丢弃,从而大大降低了这些工具的有效性,具体原因如下:
(1)为保证数据的私密性,很多文件处理软件都会对数据进行加密,但是这种加密机制会限制模糊测试生成的测试用例的有效性,如果直接对加密数据进行变异会导致解密后的数据完全不可控,使得解密后的数据直接被程序丢弃,从而无法测试代码的深层逻辑。
(2)为保证数据的完整性,通常文件处理软件在对文件进行格式解析前也会对文件的完整性进行检查,只有通过验证点的文件才会被处理。然而这种完整性检查机制使得模糊测试产生的大量畸形测试用例都会被验证点过滤掉,导致针对该类程序的模糊测试失效。
综上分析,用于模糊测试的程序中采用的加密机制以及完整性检查机制为软件脆弱性测试带来很大障碍,亟需进行解决。
发明内容
本发明的目的在于克服上述模糊测试的不足,提出一种文件处理程序的加密点和检查点定位方法及系统,可以提高模糊测试生成的有效样本的比例。
为了实现上述目的,本发明采用以下技术方案:
一种文件处理程序的加密点和检查点定位方法,包括以下步骤:
步骤1:载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;
步骤2:根据污点分析的结果,构造候选检查点集合;
步骤3:逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;
步骤4:根据污点分析的结果,定位文件处理程序的加密点。
优选地,所述步骤1包括:
步骤11:载入被测对象,即文件处理程序;
步骤12:通过污点分析对文件处理过程中的数据流进行跟踪;
步骤13:通过静态分析方法去除、合并不必要的污点传播过程。
优选地,所述污点分析通过PIN插桩的方式实现,记录文件处理程序中的污染源的传播过程,污点分析结果能够反映数据流之间的依赖关系。
优选地,所述步骤2包括:
步骤21:通过PIN插桩每一条被污染的条件跳转指令;
步骤22:查看所述每一条被污染的条件跳转指令的EFLAGS寄存器的内存依赖度关系;
步骤23:筛选出高依赖度关系的条件跳转指令,作为候选检查点集合。
优选地,所述候选检查点集合的大小由用户输入的阈值决定,阈值越大检查点集合中的元素个数越小。
优选地,在所述步骤3之后,还包括:
修改文件处理程序的二进制文件实现检查点绕过;
对修改后的文件处理程序进行模糊测试;
模糊测试过程中某个或某些测试样本使得文件处理程序出现故障;
根据污点分析结果逆向定位出加密函数所加密的明文在内存中的原始位置。
优选地,所述定位文件处理程序的加密点的方法有两种:一种是通过动态定位密码函数内部的循环结构,对循环结构的输入输出进行分析,收集包含解密数据的内存集合,在此基础上结合解密数据的特性从中进一步筛选出加密点;另一种是根据细颗粒度污点分析技术表达密文与明文之间的强关联特性,利用该特性定位加密点。
优选地,在所述步骤4之后,还包括:
利用污点分析过程中密码函数的雪崩效应识别加密点对应位置内存中的加密内容,为后续构造故障再现的测试样本提供依据;
修改样本中致使故障出现的数据对应的密文,构造故障再现的测试样本;
将修改后的样本在二进制文件未被修改的文件处理程序中进行故障再现;
保留故障再现成功的测试样本。
基于上述的一种文件处理程序的加密点和检查点定位方法的一种文件处理程序的加密点和检查点定位系统,包括:
载入分析模块,用于载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;
候选检查点生成模块,用于根据污点分析的结果,构造候选检查点集合;
检查点定位模块,用于逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;
加密点定位模块,用于根据污点分析的结果,定位文件处理程序的加密点。
优选地,还包括:
检查点绕过模块,用于修改文件处理程序的二进制文件实现检查点绕过;
模糊测试模块,用于对修改后的文件处理程序进行模糊测试;
故障模块,用于模糊测试过程中某个或某些测试样本使得文件处理程序出现故障;
逆向定位模块,用于根据污点分析结果逆向定位出加密函数所加密的明文在内存中的原始位置。
优选地,还包括:
识别加密内容模块,用于利用污点分析过程中密码函数的雪崩效应识别加密点对应位置内存中的加密内容,为后续构造故障再现的测试样本提供依据;
修改构造模块,用于修改样本中致使故障出现的数据对应的密文,构造故障再现的测试样本;
故障再现模块,用于将修改后的样本在二进制文件未被修改的文件处理程序中进行故障再现;
保留模块,用于保留故障再现成功的测试样本。
优选地,所述载入分析模块进一步包括:
载入模块,用于载入被测对象,即文件处理程序;
跟踪模块,用于通过污点分析对文件处理过程中的数据流进行跟踪;
静态分析模块,用于通过静态分析方法去除、合并不必要的污点传播过程。
优选地,所述候选检查点生成模块进一步包括:
插桩模块,用于通过PIN插桩每一条被污染的条件跳转指令;
查看依赖模块,用于查看所述每一条被污染的条件跳转指令的EFLAGS寄存器的内存依赖度关系;
筛选模块,用于筛选出高依赖度关系的条件跳转指令,作为候选检查点集合。
与现有技术相比,本发明具有的有益效果:
(1)本发明解决模糊测试中采用随机法构造的样本失效的问题
通过污点分析法对文件处理过程中的数据流进行跟踪,利用数据流污点特征构造出候选检查点集合,并定位检查点;定位出检查点后,修改二进制程序的跳转指令完成检查点绕过;对按照上述方法修改后的文件处理软件再次进行模糊测试,随机法构造的测试样本则不会失效。
(2)本发明克服软件故障无法重现的问题
通过检查点定位和绕过过程后,模糊测试过程中会出现导致被测对象崩溃、闪退等故障现象,但是利用该样本无法直接对未修改的被测对象进行故障重现,因此需要通过识别被测对象在处理数据过程中的加密位置和加密内容,通过修改对应加密内容构造合法的测试样本才能够再现软件故障;本专利利用污点分析过程中密码函数的雪崩效应识别内存中的加密数据,在密文识别的基础上按照产生故障的测试样本修改对应密文,重新构造合法测试样本对原被测对象进行故障重现。
附图说明
图1为本发明一种文件处理程序的加密点和检查点定位方法的基本流程示意图之一。
图2为本发明一种文件处理程序的加密点和检查点定位方法的基本流程示意图之二。
图3为本发明一种文件处理程序的加密点和检查点定位方法的Picasa检查点定位图。
图4为本发明一种文件处理程序的加密点和检查点定位方法的Picasa检查点绕过图。
图5为本发明一种文件处理程序的加密点和检查点定位方法的故障重现测试样本构造图。
图6为本发明一种文件处理程序的加密点和检查点定位系统的结构示意图之一。
图7为本发明一种文件处理程序的加密点和检查点定位系统的结构示意图之二。
具体实施方式
为了便于理解,对本发明的具体实施方式中出现的部分名词作以下解释说明:
污点分析:通过跟踪污点数据的输入,记录数据的流向,从而分析得到违反规则或者相应约束的软件脆弱性代码,针对性更强,相对更加高效准确。
模糊测试:是一种基于缺陷注入的自动软件测试技术。
PIN:是intel公司开发的用于程序测试的一款工具软件, 是一种动态二进制检测框架,适用于x86、x64架构,一般用于程序动态分析用,是多个平台都支持,windows 、linux以及OSX,可以检测程序运行过程中的命令、内存、地址等的详细信息。
插桩:程序插桩,最早是由J.C. Huang 教授提出的,它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”,本质上就是进行信息采集的代码段,可以是赋值语句或采集覆盖信息的函数调用),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。
静态分析:指的是一种在不执行程序的情况下对程序行为进行分析的理论、技术。
EFLAGS寄存器:是一个32位的寄存器,包含了一组状态标志、一个控制标志和一组系统标志,在系统引导阶段,ELFAGS寄存器被置为0000002H,1、3、5、15以及22-32位是被保留的位。
Picasa:是由Google提供的免费图片管理工具,可以帮助用户在计算机上立即找到、修改和共享所有图片,只需通过简单的操作就可以可使照片拥有出色的呈现效果,并将照片分享给其他人。
雪崩效应:是一种不稳定的平衡状态,也是加密算法的一种特征,它指明文或密钥的少量变化会引起密文的很大变化,就像雪崩前,山上看上去很平静,但是只要有一点问题,就会造成一片大崩溃。
下面结合附图和具体的实施例对本发明做进一步的解释说明:
实施例一:
如图1所示,本发明的一种文件处理程序的加密点和检查点定位方法,包括以下步骤:
步骤S101:载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序。
步骤S102:根据污点分析的结果,构造候选检查点集合。
步骤S103:逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点。
步骤S104:根据污点分析的结果,定位文件处理程序的加密点。
值得说明的是,所述污点分析通过PIN插桩的方式实现,记录文件处理程序中的污染源的传播过程,污点分析结果能够反映数据流之间的依赖关系;所述候选检查点集合的大小由用户输入的阈值决定,阈值越大检查点集合中的元素个数越小;所述定位文件处理程序的加密点的方法有两种:一种是通过动态定位密码函数内部的循环结构,对循环结构的输入输出进行分析,收集包含解密数据的内存集合,在此基础上结合解密数据的特性从中进一步筛选出加密点;另一种是根据细颗粒度污点分析技术表达密文与1之间的强关联特性,利用该特性定位加密点。
实施例二:
如图2-5所示,本发明的另一种文件处理程序的加密点和检查点定位方法,包括以下步骤:
步骤S201:载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;所述污点分析通过PIN插桩的方式实现,记录文件处理程序中的污染源的传播过程,污点分析结果能够反映数据流之间的依赖关系,包括:
步骤S2011:载入被测对象,即文件处理程序;
步骤S2012:通过污点分析对文件处理过程中的数据流进行跟踪;
步骤S2013:通过静态分析方法去除、合并不必要的污点传播过程。
步骤S202:根据污点分析的结果,构造候选检查点,生成候选检查点集合,包括:
步骤S2021:通过PIN插桩每一条被污染的条件跳转指令;
步骤S2022:查看所述每一条被污染的条件跳转指令的EFLAGS寄存器的内存依赖度关系;
步骤S2023:筛选出高依赖度关系的条件跳转指令,作为候选检查点集合。
步骤S203:逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点。
步骤S204:修改文件处理程序的二进制文件实现检查点绕过。
步骤S205:对修改后的文件处理程序进行模糊测试。
步骤S206:模糊测试过程中某个或某些测试样本使得文件处理程序出现故障。
步骤S207:根据污点分析结果逆向定位出加密函数所加密的明文在内存中的原始位置。
步骤S208:根据污点分析的结果,定位文件处理程序的加密点,所述定位文件处理程序的加密点的方法有两种:一种是通过动态定位密码函数内部的循环结构,对循环结构的输入输出进行分析,收集包含解密数据的内存集合,在此基础上结合解密数据的特性从中进一步筛选出加密点;另一种是根据细颗粒度污点分析技术表达密文与明文之间的强关联特性,利用该特性定位加密点。
步骤S209:利用污点分析过程中密码函数的雪崩效应识别加密点对应位置内存中的加密内容,为后续构造故障再现的测试样本提供依据。
步骤S210:修改样本中致使故障出现的数据对应的密文,构造故障再现的测试样本。
步骤S211:将修改后的样本在二进制文件未被修改的文件处理程序中进行故障再现。
步骤S212:保留故障再现成功的测试样本。
作为一种可实施的方式,针对谷歌的图片处理软件Picasa进行测试,png图片格式中存在CRC校验字段,Picasa在对png文件进行加载过程中同样对png文件进行了完整性检查,利用本实施例中所述方法定位到0xb16666处的条件跳转指令的污点特征值超过了阈值,对应的反汇编代码如图3所示:
首先调用函数sub_B166C0,并在该函数中的0xb16739处进行了校验点检查,并根据检查结果设置al寄存器的值,0xb16666的跳转指令根据al寄存器的值进行跳转;当数据通过完整性检查,则执行右侧的分支函数,正常执行返回;否则执行左侧分支进入错误处理流程,文件无法打开;在模糊测试阶段将0xb16666处的jz指令修改为jmp指令使其强制跳转到正确的处理流程,强制通过检查后的结果如图4所示。
作为一种可实施的方式,为了验证修改后的Picasa程序可以成功绕过完整性检查,人工创建一个畸形文件,将一个正常的png文件normal.png偏移为0017的字节“14”随机替换成“15”得到一个畸形文件crash.png,如图5所示,使用修改前的Picasa打开该文件,发现无法正常打开,使用修改后的Picasa程序可以成功打开该文件。
值得说明的是,所述候选检查点集合的大小由用户输入的阈值决定,阈值越大检查点集合中的元素个数越小。
实施例三:
如图6所示,本发明的一种文件处理程序的加密点和检查点定位系统,包括:
载入分析模块301,用于载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;
候选检查点生成模块302,用于根据污点分析的结果,构造候选检查点集合;
检查点定位模块303,用于逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;
加密点定位模块304,用于根据污点分析的结果,定位文件处理程序的加密点。
实施例四:
如图7所示,本发明的另一种文件处理程序的加密点和检查点定位系统,包括:
载入分析模块401,用于载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序。
候选检查点生成模块402,用于根据污点分析的结果,构造候选检查点集合。
检查点定位模块403,用于逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点。
检查点绕过模块404,用于修改文件处理程序的二进制文件实现检查点绕过。
模糊测试模块405,用于对修改后的文件处理程序进行模糊测试。
故障模块406,用于模糊测试过程中某个或某些测试样本使得文件处理程序出现故障。
逆向定位模块407,用于根据污点分析结果逆向定位出加密函数所加密的明文在内存中的原始位置。
加密点定位模块408,用于根据污点分析的结果,定位文件处理程序的加密点。
识别加密内容模块409,用于利用污点分析过程中密码函数的雪崩效应识别加密点对应位置内存中的加密内容,为后续构造故障再现的测试样本提供依据。
修改构造模块410,用于修改样本中致使故障出现的数据对应的密文,构造故障再现的测试样本。
故障再现模块411,用于将修改后的样本在二进制文件未被修改的文件处理程序中进行故障再现。
保留模块412,用于保留故障再现成功的测试样本。
所述载入分析模块401进一步包括:
载入模块4011,用于载入被测对象,即文件处理程序;
跟踪模块4012,用于通过污点分析对文件处理过程中的数据流进行跟踪;
静态分析模块4013,用于通过静态分析方法去除、合并不必要的污点传播过程;
所述候选检查点生成模块402进一步包括:
插桩模块4021,用于通过PIN插桩每一条被污染的条件跳转指令;
查看依赖模块4022,用于查看所述每一条被污染的条件跳转指令的EFLAGS寄存器的内存依赖度关系;
筛选模块4023,用于筛选出高依赖度关系的条件跳转指令,作为候选检查点集合。
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种文件处理程序的加密点和检查点定位方法,其特征在于,包括以下步骤:
步骤1:载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;
步骤2:根据污点分析的结果,构造候选检查点集合;
步骤3:逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;
步骤4:根据污点分析的结果,定位文件处理程序的加密点。
2.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,所述步骤1包括:
步骤11:载入被测对象,即文件处理程序;
步骤12:通过污点分析对文件处理过程中的数据流进行跟踪;
步骤13:通过静态分析方法去除、合并不必要的污点传播过程。
3.根据权利要求1或2所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,所述污点分析通过PIN插桩的方式实现,记录文件处理程序中的污染源的传播过程,污点分析结果能够反映数据流之间的依赖关系。
4.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,所述步骤2包括:
步骤21:通过PIN插桩每一条被污染的条件跳转指令;
步骤22:查看所述每一条被污染的条件跳转指令的EFLAGS寄存器的内存依赖度关系;
步骤23:筛选出高依赖度关系的条件跳转指令,作为候选检查点集合。
5.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,所述候选检查点集合的大小由用户输入的阈值决定,阈值越大检查点集合中的元素个数越小。
6.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,在所述步骤3之后,还包括:
修改文件处理程序的二进制文件实现检查点绕过;
对修改后的文件处理程序进行模糊测试;
模糊测试过程中某个或某些测试样本使得文件处理程序出现故障;
根据污点分析结果逆向定位出加密函数所加密的明文在内存中的原始位置。
7.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,所述定位文件处理程序的加密点的方法有两种:一种是通过动态定位密码函数内部的循环结构,对循环结构的输入输出进行分析,收集包含解密数据的内存集合,在此基础上结合解密数据的特性从中进一步筛选出加密点;另一种是根据细颗粒度污点分析技术表达密文与明文之间的强关联特性,利用该特性定位加密点。
8.根据权利要求1所述的一种文件处理程序的加密点和检查点定位方法,其特征在于,在所述步骤4之后,还包括:
利用污点分析过程中密码函数的雪崩效应识别加密点对应位置内存中的加密内容,为后续构造故障再现的测试样本提供依据;
修改样本中致使故障出现的数据对应的密文,构造故障再现的测试样本;
将修改后的样本在二进制文件未被修改的文件处理程序中进行故障再现;
保留故障再现成功的测试样本。
9.基于权利要求1-8任一所述的一种文件处理程序的加密点和检查点定位方法的一种文件处理程序的加密点和检查点定位系统,其特征在于,包括:
载入分析模块,用于载入被测对象,即文件处理程序,对文件处理程序进行污点分析,所述文件处理程序为文件处理软件的可执行程序;
候选检查点生成模块,用于根据污点分析的结果,构造候选检查点集合;
检查点定位模块,用于逆向分析候选检查点集合中的每一个检查点,根据其与加密数据的关系定位检查点;
加密点定位模块,用于根据污点分析的结果,定位文件处理程序的加密点。
10.根据权利要求9所述的一种文件处理程序的加密点和检查点定位系统,其特征在于,还包括:
检查点绕过模块,用于修改文件处理程序的二进制文件实现检查点绕过;
模糊测试模块,用于对修改后的文件处理程序进行模糊测试;
故障模块,用于模糊测试过程中某个或某些测试样本使得文件处理程序出现故障;
逆向定位模块,用于根据污点分析结果逆向定位出加密函数所加密的明文在内存中的原始位置;
优选地,还包括:
识别加密内容模块,用于利用污点分析过程中密码函数的雪崩效应识别加密点对应位置内存中的加密内容,为后续构造故障再现的测试样本提供依据;
修改构造模块,用于修改样本中致使故障出现的数据对应的密文,构造故障再现的测试样本;
故障再现模块,用于将修改后的样本在二进制文件未被修改的文件处理程序中进行故障再现;
保留模块,用于保留故障再现成功的测试样本;
优选地,所述载入分析模块进一步包括:
载入模块,用于载入被测对象,即文件处理程序;
跟踪模块,用于通过污点分析对文件处理过程中的数据流进行跟踪;
静态分析模块,用于通过静态分析方法去除、合并不必要的污点传播过程;
优选地,所述候选检查点生成模块进一步包括:
插桩模块,用于通过PIN插桩每一条被污染的条件跳转指令;
查看依赖模块,用于查看所述每一条被污染的条件跳转指令的EFLAGS寄存器的内存依赖度关系;
筛选模块,用于筛选出高依赖度关系的条件跳转指令,作为候选检查点集合。
CN201710587017.5A 2017-07-18 2017-07-18 一种文件处理程序的加密点和检查点定位方法及系统 Pending CN107491387A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710587017.5A CN107491387A (zh) 2017-07-18 2017-07-18 一种文件处理程序的加密点和检查点定位方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710587017.5A CN107491387A (zh) 2017-07-18 2017-07-18 一种文件处理程序的加密点和检查点定位方法及系统

Publications (1)

Publication Number Publication Date
CN107491387A true CN107491387A (zh) 2017-12-19

Family

ID=60644598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710587017.5A Pending CN107491387A (zh) 2017-07-18 2017-07-18 一种文件处理程序的加密点和检查点定位方法及系统

Country Status (1)

Country Link
CN (1) CN107491387A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255711A (zh) * 2017-12-29 2018-07-06 湖南优利泰克自动化系统有限公司 一种基于污点分析的plc固件模糊测试系统及测试方法
CN109308415A (zh) * 2018-09-21 2019-02-05 四川大学 一种面向二进制的导向性模糊测试方法与系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521543A (zh) * 2011-12-23 2012-06-27 中国人民解放军国防科学技术大学 一种基于动态污点分析进行消息语义解析的方法
US8381192B1 (en) * 2007-08-03 2013-02-19 Google Inc. Software testing using taint analysis and execution path alteration
CN103440201A (zh) * 2013-09-05 2013-12-11 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用
CN103995782A (zh) * 2014-06-17 2014-08-20 电子科技大学 一种基于污点不变集的污点分析方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381192B1 (en) * 2007-08-03 2013-02-19 Google Inc. Software testing using taint analysis and execution path alteration
CN102521543A (zh) * 2011-12-23 2012-06-27 中国人民解放军国防科学技术大学 一种基于动态污点分析进行消息语义解析的方法
CN103440201A (zh) * 2013-09-05 2013-12-11 北京邮电大学 动态污点分析装置及其在文件格式逆向解析中的应用
CN103995782A (zh) * 2014-06-17 2014-08-20 电子科技大学 一种基于污点不变集的污点分析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李程: "网络加密通信软件脆弱性检测技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108255711A (zh) * 2017-12-29 2018-07-06 湖南优利泰克自动化系统有限公司 一种基于污点分析的plc固件模糊测试系统及测试方法
CN109308415A (zh) * 2018-09-21 2019-02-05 四川大学 一种面向二进制的导向性模糊测试方法与系统

Similar Documents

Publication Publication Date Title
Meng et al. Mystique: Evolving android malware for auditing anti-malware tools
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
Huang et al. Crax: Software crash analysis for automatic exploit generation by modeling attacks as symbolic continuations
Groce et al. What are the actual flaws in important smart contracts (and how can we find them)?
Chen et al. A Data-Driven Finite State Machine Model for Analyzing Security Vulnerabilities.
Li et al. CLORIFI: software vulnerability discovery using code clone verification
Xue et al. xfuzz: Machine learning guided cross-contract fuzzing
Aggarwal et al. I spy with my little eye: Analysis and detection of spying browser extensions
CN116204882A (zh) 基于异构图的Android恶意软件检测方法及装置
CN107491387A (zh) 一种文件处理程序的加密点和检查点定位方法及系统
Alnaeli et al. Source code vulnerabilities in IoT software systems
Lubuva et al. A review of static malware detection for Android apps permission based on deep learning
Khalid et al. Web vulnerability finder (WVF): automated black-box web vulnerability scanner
CN111625448B (zh) 协议包生成方法、装置、设备及存储介质
Noseevich et al. Detecting insufficient access control in web applications
Sun et al. Silent Vulnerable Dependency Alert Prediction with Vulnerability Key Aspect Explanation
Borzykh et al. Detecting Code Security Breaches by Means of Dataflow Analysis
Le et al. Tracking data flow at gate-level through structural checking
US11573887B2 (en) Extracting code patches from binary code for fuzz testing
US10002253B2 (en) Execution of test inputs with applications in computer security assessment
Crincoli et al. Code reordering obfuscation technique detection by means of weak bisimulation
Gao et al. Automatic buffer overflow warning validation
Meng et al. Wemint: Tainting Sensitive Data Leaks in WeChat Mini-Programs
Harzevili et al. Automatic Static Vulnerability Detection for Machine Learning Libraries: Are We There Yet?
Kumar Reverse Engineering and Vulnerability Analysis in Cyber Security.

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: 20171219

RJ01 Rejection of invention patent application after publication