CN108681672A - 一种基于A-Star的引导型符号执行方法及系统、Android应用程序 - Google Patents

一种基于A-Star的引导型符号执行方法及系统、Android应用程序 Download PDF

Info

Publication number
CN108681672A
CN108681672A CN201810437332.4A CN201810437332A CN108681672A CN 108681672 A CN108681672 A CN 108681672A CN 201810437332 A CN201810437332 A CN 201810437332A CN 108681672 A CN108681672 A CN 108681672A
Authority
CN
China
Prior art keywords
basic block
address
path
program
tables
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
CN201810437332.4A
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.)
Xidian University
Original Assignee
Xidian 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 Xidian University filed Critical Xidian University
Priority to CN201810437332.4A priority Critical patent/CN108681672A/zh
Publication of CN108681672A publication Critical patent/CN108681672A/zh
Pending legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

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

Abstract

本发明属于计算机漏洞挖掘技术领域,公开了一种基于A‑Star的引导型符号执行方法及系统、Android应用程序,通过A‑Star算法引导程序执行危险区域得到漏洞相关的路径约束条件,采用汇编转换方法将原生库文件翻译并划分为基本块,并利用基本块重用方法和循环简化方法优化符号执行过程,实现对Android原生库漏洞的快速发现和定位问题。本发明采用循环简化方法,在路径遍历过程中,分指定次数循环和无限循环两种情况进行优化,减少循环次数,降低路径约束条件求解的难度。本发明采用基本块重用方法,存储已经分析过的基本块状态,防止符号执行技术重复分析程序中的基本块,减少符号执行时间,提高符号执行效率。

Description

一种基于A-Star的引导型符号执行方法及系统、Android应用 程序
技术领域
本发明属于计算机漏洞挖掘技术领域,尤其涉及一种基于A-Star(A*算法)的引导型符号执行方法及系统、Android应用程序。
背景技术
目前,业内常用的现有技术是这样的:近几年随着Android应用市场的不断发展和漏洞挖掘的技术的不断发展,漏洞的数量在不断增多。从2008年Android正式进入大众市场以来,漏洞的数量在不断的增多,其中,从官方给出的数据看出2014年爆出大量的Android系统的漏洞,其中主要原因是SSL协议类库中出现了多个影响范围非常广泛的漏洞,影响到了大量的应用;当年漏洞总数的92%都是此类漏洞。除此之外,当年还出现TowelRoot本地提权漏洞和FakeID代码注入漏洞等多个非常严重的系统漏洞。安全问题,尤其是Android安全漏洞的研究和挖掘,己经引起国内外的广泛关注,成为了炙手可热的课题。利用漏洞挖掘技术,不仅能够帮助安全分析人员在应用程序发布之前快速发现其中潜在的安全漏洞,而且可以帮助程序开发人员在开发程序时提前预防漏洞的产生,保障用户的信息安全。目前国内外比较关注的漏洞挖掘技术有污染流传播分析、可达路径分析、符号执行、模糊测试等技术,而符号执行技术由于其能够遍历程序全部路径,完整分析程序的特点,已经成为近几年学术界关注的重点。传统符号执行技术为了完整分析程序,得到程序有效的路径特征,会遍历程序中所有路径。然而当对较大的程序进行分析时,传统符号执行技术是非常低效的,它会执行大量的与漏洞不相关的路径,生成冗余且复杂的路径约束条件。对这样的路径约束条件求解是困难的,并且无法达到发现漏洞的目的。尤其当对Android原生库文件使用符号执行技术时,如果产生大量的无用测试数据,那么在漏洞挖掘过程中,由于需要不断地启动Android模拟器中的程序测试数据,就会耗费大量的时间,同时得不到预期效果。
综上所述,现有技术存在的问题是:传统符号执行技术中采用深度优先遍历算法易产生路径爆炸;产生大量的无用测试数据,耗费大量的时间。
发明内容
针对现有技术存在的问题,本发明提供了一种基于A-Star的引导型符号执行方法及系统、Android应用程序。
本发明是这样实现的,一种基于A-Star的引导型符号执行方法,所述基于A-Star的引导型符号执行方法通过A-Star算法引导程序执行危险区域得到漏洞相关的路径约束条件,采用汇编转换方法将原生库文件翻译并划分为基本块,并利用基本块重用方法和循环简化方法优化符号执行过程,实现对Android原生库漏洞的快速发现和定位问题。
进一步,所述基于A-Star的引导型符号执行方法包括以下步骤:
步骤一,输入目标程序,反汇编,将目标程序的代码段转换为VEX中间语言的形式,读取目标程序数据段,数据段存储在一个连续的内存空间;
步骤二,目标程序的VEX中间语言形式划分为基本块,每个基本块的第一行与最后一行是跳转指令,中间是顺序执行的指令;遇到跳转指令,自动划分为下一个基本块;
步骤三,采用IDA获取目标程序主函数入口地址和结束地址,从入口地址开始读取目标程序基本块,将基本块中的变量变成符号值,模拟程序的执行过程,记录符号值的约束条件;
步骤四,采用A-Star算法引导程序读取漏洞函数所在路径的基本块,得到程序的执行路径和对应的路径约束条件;
步骤五,符号执行结束后,利用约束求解器求解路径约束条件,得到的实际值即为该条路径最终的测试数据;
步骤六,将测试数据输入作为目标程序的入口参数输入,运行目标程序,通过目标程序的状态分析路径状态,出现崩溃或者内存溢出则为漏洞。
进一步,所述步骤四包括:
(1)初始化danger表,形式是键值对<危险函数名,地址>方式,将总结的危险函数名按照字母排序存入danger表;采用IDA搜索并记录目标程序中危险函数所在的地址,存入danger表中;
(2)初始化open表,形式是键值对<地址,权重,路径约束条件>集合,其中地址存储的是程序执行中遇到的所有基本块首地址,权重是整数,路径约束条件就是执行该基本块的跳转条件;open表初始化为<目标程序主函数地址,0,1>;
(3)初始化close表,形式是键值对<地址,权重,路径约束条件>集合,其中地址存储的是程序执行中遇到的所有基本块首地址,权重是整数路径约束条件就是执行该基本块的跳转条件;close表初始化为<空,0,1>;
(4)初始化road表,形式是键值对<路径,约束条件>方式,其中路径存储的是一条执行路径上经过的基本块首地址集合,约束条件存储的是该条路径中所有分支条件的合取范式;road表初始化为<空,1>;
(5)取open表第一个键值对开始模拟执行基本块,遇到基本块的分支跳转时,分析分支条件和跳转后的位置是否是危险函数所在地址,并更新open表、close表和road表;
(6)循环(5),直到将open表中所有地址分析完毕时,符号执行结束。
本发明的另一目的在于提供一种所述基于A-Star的引导型符号执行方法的基于A-Star的引导型符号执行系统,所述基于A-Star的引导型符号执行系统包括:
加载目标程序模块,用于输入目标程序;
汇编转换模块,用于反汇编输入目标程序,并将目标程序的代码段转换为VEX中间语言的形式,读取目标程序数据段;
读取入口地址模块,用于获取目标程序主函数入口地址和结束地址;
引导符号执行模块,用于引导程序读取漏洞函数所在路径的基本块,得到程序的执行路径和对应的路径约束条件;
求解路径约束条件模块,用于利用约束求解器求解路径约束条件,得到的实际值即为该条路径最终的测试数据;
输入目标程序模块,用于测试数据输入作为目标程序的入口参数输入;
运行目标程序模块,用于通过目标程序的状态分析路径状态。
进一步,所述求解路径约束条件模块包括:
初始化danger表单元,用于将总结的危险函数名按照字母排序存入danger表,采用IDA技术搜索并记录目标程序中危险函数所在的地址,存入danger表中;
初始化open表单元,用于将程序执行中遇到的所有基本块首地址,权重是整数,路径约束条件就是执行该基本块的跳转条件;
初始化close表单元,用于将程序执行中遇到的所有基本块首地址,权重是整数路径约束条件就是执行该基本块的跳转条件;
初始化road表单元,用于将一条执行路径上经过的基本块首地址集合,约束条件存储的是该条路径中所有分支条件的合取范式;
执行基本块单元,用于取open表第一个键值对开始模拟执行基本块;
循环模块,用于将open表中所有地址分析完毕时,符号执行结束。
本发明的另一目的在于提供一种实现所述基于A-Star的引导型符号执行方法的Android应用程序。
本发明的另一目的在于提供一种搭载所述Android应用程序的计算机、手机、IPAD。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的基于A-Star的引导型符号执行方法。
综上所述,本发明的优点及积极效果为:本发明采用A*算法启发式地进行路径遍历,能够引导程序执行漏洞相关的路径;通过设置路径权重,快速收集权重大的漏洞路径约束条件,相比传统遍历算法DFS全遍历路径,大大减少了对时间的耗费,有效缓解路径爆炸问题。本发明采用循环简化方法,在路径遍历过程中,分指定次数循环和无限循环两种情况进行优化,减少循环次数,降低路径约束条件求解的难度。本发明采用基本块重用方法,存储已经分析过的基本块状态,防止符号执行技术重复分析程序中的基本块,减少符号执行时间,提高符号执行效率。
附图说明
图1是本发明实施例提供的基于A-Star的引导型符号执行方法流程图。
图2是本发明实施例提供的基于A-Star的引导型符号执行方法实现流程图。
图3是本发明实施例提供的基于A-Star的引导型符号执行系统结构示意图;
图中:1、加载目标程序模块;2、汇编转换模块;3、读取入口地址模块;4、引导符号执行模块;5、求解路径约束条件模块;6、输入目标程序模块;7、运行目标程序模块。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明通过A*算法引导程序执行危险区域得到漏洞相关的路径约束条件,采用汇编转换方法将原生库文件翻译并划分为基本块,并利用基本块重用方法和循环简化方法优化符号执行过程。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的基于A-Star的引导型符号执行方法包括以下步骤:
S101:输入目标程序,对其反汇编,并将目标程序的代码段转换为VEX中间语言的形式,读取目标程序数据段,将数据段存储在一个连续的内存空间中;
S102:将目标程序的VEX中间语言形式划分为基本块,要求每个基本块的第一行与最后一行是跳转指令,中间都是顺序执行的指令,即划分规则是遇到跳转指令,自动划分为下一个基本块;
S103:采用IDA技术获取目标程序主函数入口地址和结束地址,并从这个入口地址开始读取目标程序基本块,将基本块中的变量变成符号值,模拟程序的执行过程,记录符号值的约束条件;
S104:采用A*算法引导程序读取漏洞函数所在路径的基本块,得到程序的执行路径和对应的路径约束条件;
S105:符号执行结束后,利用约束求解器求解路径约束条件,得到的实际值即为该条路径最终的测试数据;
S106:将测试数据输入作为目标程序的入口参数输入,运行目标程序,通过目标程序的状态分析路径状态,如果出现崩溃或者内存溢出则为漏洞。
在本发明的优选实施例中,步骤S104具体包括:
(1)初始化danger表,形式是键值对<危险函数名,地址>方式,将总结的危险函数名按照字母排序存入danger表,采用IDA技术搜索并记录目标程序中危险函数所在的地址,存入danger表中;
(2)初始化open表,形式是键值对<地址,权重,路径约束条件>集合,其中地址存储的是程序执行中遇到的所有基本块首地址,权重是整数,路径约束条件就是执行该基本块的跳转条件。open表初始化为<目标程序主函数地址,0,1>;
(3)初始化close表,形式是键值对<地址,权重,路径约束条件>集合,其中地址存储的是程序执行中遇到的所有基本块首地址,权重是整数路径约束条件就是执行该基本块的跳转条件。close表初始化为<空,0,1>;
(4)初始化road表,形式是键值对<路径,约束条件>方式,其中路径存储的是一条执行路径上经过的基本块首地址集合,约束条件存储的是该条路径中所有分支条件的合取范式。road表初始化为<空,1>;
(5)取open表第一个键值对开始模拟执行基本块,遇到基本块的分支跳转时,分析分支条件和跳转后的位置是否是危险函数所在地址,并更新open表、close表和road表;
(6)循环(5),直到将open表中所有地址分析完毕时,符号执行结束。
下面结合附图对本发明的应用原理作进一步的描述。
如图2所示,本发明实施例提供的基于A-Star的引导型符号执行方法具体包括以下步骤:
步骤一,输入目标程序,对其反汇编,并将目标程序的代码段转换为VEX中间语言的形式,读取目标程序数据段,将数据段存储在一个连续的内存空间中;
步骤二,将目标程序的VEX中间语言形式划分为基本块,要求每个基本块的第一行与最后一行是跳转指令,中间都是顺序执行的指令,即划分规则是遇到跳转指令,自动划分为下一个基本块;
步骤三,采用IDA技术获取目标程序主函数入口地址和结束地址,并从这个入口地址开始读取目标程序基本块,将基本块中的变量变成符号值,模拟程序的执行过程,记录符号值的约束条件;
步骤四,初始化danger表,形式是键值对<危险函数名,地址>方式,将总结的危险函数名按照字母排序存入danger表,采用IDA技术搜索并记录目标程序中危险函数所在的地址,存入danger表中;
步骤五,初始化open表,形式是键值对<地址,权重,路径约束条件>集合,其中地址存储的是程序执行中遇到的所有基本块首地址,权重是整数,路径约束条件就是执行该基本块的跳转条件。open表初始化为<目标程序主函数地址,0,1>;
步骤六,初始化close表,形式是键值对<地址,权重,路径约束条件>集合,其中地址存储的是程序执行中遇到的所有基本块首地址,权重是整数路径约束条件就是执行该基本块的跳转条件。close表初始化为<空,0,1>;
步骤七,初始化road表,形式是键值对<路径,约束条件>方式,其中路径存储的是一条执行路径上经过的基本块首地址集合,约束条件存储的是该条路径中所有分支条件的合取范式。road表初始化为<空,1>;
步骤八,取open表第一个键值对开始模拟执行基本块,遇到基本块的分支跳转时,分析分支条件和跳转后的位置是否是危险函数所在地址,并更新open表、close表和road表;
执行open表中第一个键值对,将open表第一个地址存入road表路径中,将open表第一个约束条件合取road表约束条件并替换road表约束条件;
分析基本块是否已经读取过,即在close表中查找是否存在该基本块的地址,如果不存在,则表示没有读取过,需要顺序执行基本块,按照步骤三进行,如果存在,表示已经读取过,可以直接从close表中取出该基本块的地址、权重和分支条件更新road表,然后继续读取open表;
分析基本块的分支跳转,如果下一个基本块是危险函数地址,那么计算当前基本块地址和危险函数地址的差值,加上当前基本块地址的权重记为危险函数地址的权重,按照权重从小到大的顺序将危险函数地址、权重和执行该基本块的分支条件插入open表中,并将当前基本块地址和权重从open表中删除,存入close表中;
如果不是危险函数地址,舍弃该地址信息,将当前基本块地址存入close表中。
步骤九,循环步骤八,直到将open表中所有地址分析完毕时,符号执行结束。
步骤十,符号执行结束后,利用约束求解器求解路径约束条件,得到的实际值即为该条路径最终的测试数据;
步骤十一,将测试数据输入作为目标程序的入口参数输入,运行目标程序,通过目标程序的状态分析路径状态,如果出现崩溃或者内存溢出则为漏洞。
如图3所示,本发明实施例提供的基于A-Star的引导型符号执行系统包括:
加载目标程序模块1,用于输入目标程序;
汇编转换模块2,用于反汇编输入目标程序,并将目标程序的代码段转换为VEX中间语言的形式,读取目标程序数据段;
读取入口地址模块3,用于获取目标程序主函数入口地址和结束地址;
引导符号执行模块4,用于引导程序读取漏洞函数所在路径的基本块,得到程序的执行路径和对应的路径约束条件;
求解路径约束条件模块5,用于利用约束求解器求解路径约束条件,得到的实际值即为该条路径最终的测试数据;
输入目标程序模块6,用于测试数据输入作为目标程序的入口参数输入;
运行目标程序模块7,用于通过目标程序的状态分析路径状态。
本发明通过A*算法引导程序执行危险区域得到漏洞相关的路径约束条件,采用汇编转换方法将原生库文件翻译并划分为基本块,并利用基本块重用方法和循环简化方法优化符号执行过程,实现对Android原生库漏洞的快速发现和定位问题。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于A-Star的引导型符号执行方法,其特征在于,所述基于A-Star的引导型符号执行方法通过A-Star算法引导程序执行危险区域得到漏洞相关的路径约束条件,采用汇编转换方法将原生库文件翻译并划分为基本块,并利用基本块重用方法和循环简化方法优化符号执行过程,实现对Android原生库漏洞的快速发现和定位问题。
2.如权利要求1所述的基于A-Star的引导型符号执行方法,其特征在于,所述基于A-Star的引导型符号执行方法包括以下步骤:
步骤一,输入目标程序,反汇编,将目标程序的代码段转换为VEX中间语言的形式,读取目标程序数据段,数据段存储在一个连续的内存空间;
步骤二,目标程序的VEX中间语言形式划分为基本块,每个基本块的第一行与最后一行是跳转指令,中间是顺序执行的指令;遇到跳转指令,自动划分为下一个基本块;
步骤三,采用IDA获取目标程序主函数入口地址和结束地址,从入口地址开始读取目标程序基本块,将基本块中的变量变成符号值,模拟程序的执行过程,记录符号值的约束条件;
步骤四,采用A-Star算法引导程序读取漏洞函数所在路径的基本块,得到程序的执行路径和对应的路径约束条件;
步骤五,符号执行结束后,利用约束求解器求解路径约束条件,得到的实际值即为该条路径最终的测试数据;
步骤六,将测试数据输入作为目标程序的入口参数输入,运行目标程序,通过目标程序的状态分析路径状态,出现崩溃或者内存溢出则为漏洞。
3.如权利要求2所述的基于A-Star的引导型符号执行方法,其特征在于,所述步骤四包括:
(1)初始化danger表,形式是键值对<危险函数名,地址>方式,将总结的危险函数名按照字母排序存入danger表;采用IDA搜索并记录目标程序中危险函数所在的地址,存入danger表中;
(2)初始化open表,形式是键值对<地址,权重,路径约束条件>集合,其中地址存储的是程序执行中遇到的所有基本块首地址,权重是整数,路径约束条件就是执行该基本块的跳转条件;open表初始化为<目标程序主函数地址,0,1>;
(3)初始化close表,形式是键值对<地址,权重,路径约束条件>集合,其中地址存储的是程序执行中遇到的所有基本块首地址,权重是整数路径约束条件就是执行该基本块的跳转条件;close表初始化为<空,0,1>;
(4)初始化road表,形式是键值对<路径,约束条件>方式,其中路径存储的是一条执行路径上经过的基本块首地址集合,约束条件存储的是该条路径中所有分支条件的合取范式;road表初始化为<空,1>;
(5)取open表第一个键值对开始模拟执行基本块,遇到基本块的分支跳转时,分析分支条件和跳转后的位置是否是危险函数所在地址,并更新open表、close表和road表;
(6)循环(5),直到将open表中所有地址分析完毕时,符号执行结束。
4.一种如权利要求1所述基于A-Star的引导型符号执行方法的基于A-Star的引导型符号执行系统,其特征在于,所述基于A-Star的引导型符号执行系统包括:
加载目标程序模块,用于输入目标程序;
汇编转换模块,用于反汇编输入目标程序,并将目标程序的代码段转换为VEX中间语言的形式,读取目标程序数据段;
读取入口地址模块,用于获取目标程序主函数入口地址和结束地址;
引导符号执行模块,用于引导程序读取漏洞函数所在路径的基本块,得到程序的执行路径和对应的路径约束条件;
求解路径约束条件模块,用于利用约束求解器求解路径约束条件,得到的实际值即为该条路径最终的测试数据;
输入目标程序模块,用于测试数据输入作为目标程序的入口参数输入;
运行目标程序模块,用于通过目标程序的状态分析路径状态。
5.如权利要求4所述的基于A-Star的引导型符号执行系统,其特征在于,所述求解路径约束条件模块包括:
初始化danger表单元,用于将总结的危险函数名按照字母排序存入danger表,采用IDA技术搜索并记录目标程序中危险函数所在的地址,存入danger表中;
初始化open表单元,用于将程序执行中遇到的所有基本块首地址,权重是整数,路径约束条件就是执行该基本块的跳转条件;
初始化close表单元,用于将程序执行中遇到的所有基本块首地址,权重是整数路径约束条件就是执行该基本块的跳转条件;
初始化road表单元,用于将一条执行路径上经过的基本块首地址集合,约束条件存储的是该条路径中所有分支条件的合取范式;
执行基本块单元,用于取open表第一个键值对开始模拟执行基本块;
循环模块,用于将open表中所有地址分析完毕时,符号执行结束。
6.一种实现权利要求1~3任意一项所述基于A-Star的引导型符号执行方法的Android应用程序。
7.一种搭载权利要求7所述Android应用程序的计算机、手机、IPAD。
8.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-3任意一项所述的基于A-Star的引导型符号执行方法。
CN201810437332.4A 2018-05-09 2018-05-09 一种基于A-Star的引导型符号执行方法及系统、Android应用程序 Pending CN108681672A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810437332.4A CN108681672A (zh) 2018-05-09 2018-05-09 一种基于A-Star的引导型符号执行方法及系统、Android应用程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810437332.4A CN108681672A (zh) 2018-05-09 2018-05-09 一种基于A-Star的引导型符号执行方法及系统、Android应用程序

Publications (1)

Publication Number Publication Date
CN108681672A true CN108681672A (zh) 2018-10-19

Family

ID=63805903

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810437332.4A Pending CN108681672A (zh) 2018-05-09 2018-05-09 一种基于A-Star的引导型符号执行方法及系统、Android应用程序

Country Status (1)

Country Link
CN (1) CN108681672A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112307485A (zh) * 2020-11-09 2021-02-02 浙江大学 一种面向跨架构漏洞挖掘的符号执行引擎优化方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120192162A1 (en) * 2011-01-20 2012-07-26 Fujitsu Limited Optimizing Handlers for Application-Specific Operations for Validating C++ Programs Using Symbolic Execution
CN102708045A (zh) * 2012-04-13 2012-10-03 电子科技大学 一种缓解路径爆炸的动态符号执行方法
CN104503901A (zh) * 2014-12-04 2015-04-08 中国人民解放军总参谋部第五十四研究所 一种基于静态路径分析的导向符号执行方法
CN104794401A (zh) * 2015-04-15 2015-07-22 南京大学 一种静态分析辅助的符号执行漏洞检测方法
CN106599695A (zh) * 2016-06-03 2017-04-26 南京大学 一种基于路径合并的可引导符号执行漏洞检测方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120192162A1 (en) * 2011-01-20 2012-07-26 Fujitsu Limited Optimizing Handlers for Application-Specific Operations for Validating C++ Programs Using Symbolic Execution
CN102708045A (zh) * 2012-04-13 2012-10-03 电子科技大学 一种缓解路径爆炸的动态符号执行方法
CN104503901A (zh) * 2014-12-04 2015-04-08 中国人民解放军总参谋部第五十四研究所 一种基于静态路径分析的导向符号执行方法
CN104794401A (zh) * 2015-04-15 2015-07-22 南京大学 一种静态分析辅助的符号执行漏洞检测方法
CN106599695A (zh) * 2016-06-03 2017-04-26 南京大学 一种基于路径合并的可引导符号执行漏洞检测方法

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
宋岩: ""基于A_Star算法的进路搜索研究"", 《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》 *
张可新等: ""基于region的动态重用技术"", 《计算机科学》 *
朱云虹等: ""基于改进A*算法的最优路径搜索"", 《计算机技术与发展》 *
秦书锴等: ""符号执行中非线性归纳变量循环优化分析方法"", 《信息工程大学学报》 *
赵跃华等: ""基于符号执行的测试数据生成方法的研究与设计"", 《计算机应用与软件》 *
颜慧颖等: ""基于符号执行的Android原生代码控制流图提取方法"", 《网络与信息安全学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112307485A (zh) * 2020-11-09 2021-02-02 浙江大学 一种面向跨架构漏洞挖掘的符号执行引擎优化方法
CN112307485B (zh) * 2020-11-09 2024-03-26 浙江大学 一种面向跨架构漏洞挖掘的符号执行引擎优化方法

Similar Documents

Publication Publication Date Title
US11797582B2 (en) Regular expression generation based on positive and negative pattern matching examples
US10540350B2 (en) Source code search engine
EP3072070B1 (en) Callpath finder
CN107908403A (zh) 一种移动端业务模块组件化的配置方法及系统
TW201915850A (zh) 應用程式的生成方法、裝置、系統、設備和媒體
US11481200B1 (en) Checking source code validity at time of code update
CN105335137A (zh) 用于处理源文件的方法和装置
CN105335412A (zh) 用于数据转换、数据迁移的方法和装置
JP2016511894A (ja) プロセスを構成するためのアプリケーションの構築
US10031936B2 (en) Database table data fabrication
Nguyen et al. Mining interprocedural, data-oriented usage patterns in JavaScript web applications
CN112783786B (zh) 测试案例的生成方法、装置、设备、介质和程序产品
CN104636130A (zh) 用于生成事件树的方法和系统
CN107797820A (zh) 用于生成补丁的方法和装置
CN108563561B (zh) 一种程序隐性约束提取方法及系统
CN108681672A (zh) 一种基于A-Star的引导型符号执行方法及系统、Android应用程序
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
EP3438818B1 (en) Method and device for compiling computer language
US10489151B1 (en) Locating business rules in application source code
KR101681154B1 (ko) 데이터 수집기 구축 방법, 이를 수행하는 데이터 수집기 구축 서버 및 이를 저장하는 기록매체
Nguyen et al. Pydhnet: a python library for dynamic heterogeneous network representation learning and evaluation
Xiao et al. Embedding code contexts for cryptographic api suggestion: New methodologies and comparisons
JP6511793B2 (ja) テストケース生成プログラム、テストケース生成方法及びテストケース生成装置
CN115391780B (zh) 应用代码的安全加固方法、系统、设备及存储介质
CN117539492A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181019

WD01 Invention patent application deemed withdrawn after publication