一种基于函数级选择符号化混合执行的软件自动测试方法

    公开(公告)号:CN114138669B

    公开(公告)日:2024-12-06

    申请号:CN202111510194.6

    申请日:2021-12-10

    Abstract: 本发明公开了一种基于函数级选择符号化混合执行的软件自动测试方法,包括以下步骤:步骤S1.确定软件程序中包含的复杂函数,生成复杂函数集合;步骤S2.使用符号执行方法收集待测软件的路径约束,当遇到属于所述复杂函数集合中的复杂函数F时,跳过复杂函数F的符号执行,并创建符号方法调用表达式F’用于表示复杂函数F的符号执行,生成含有符号方法调用表达式F’的路径约束;步骤S3.将步骤S2中搜集到的全部路径约束划分为包含符号方法调用表达式F’的相关部分约束P1和无关部分约束P2,使用求解器求解所述无关部分约束P2中所包含的符号变量的实际值,然后通过模糊测试Fuzzing方法求解P1,产生新的测试用例;本发明能更精确、效率更高地发现软件漏洞。

    面向批量未解释程序的联合验证方法

    公开(公告)号:CN114706757B

    公开(公告)日:2024-10-01

    申请号:CN202210258615.9

    申请日:2022-03-16

    Abstract: 本发明公开一种面向批量未解释程序的联合验证方法,步骤包括:S01.进行程序抽象得到程序自动机,使用保存的抽象模型对程序自动机进行精化;S02.判断精化后的程序自动机是否为空,如果为空则判定程序正确,转入步骤S05,否则转入步骤S03;S03.从精化后的程序自动机中抽取一条路径,若路径可行则判定程序错误,转入步骤S05;若不可行则转入步骤S04;S04.进行路径泛化得到反例自动机,对精化后的程序自动机进行精化,并保存为抽象模型,返回步骤S02;步骤S05.判断是否完成所有程序验证,如果是则退出验证,否则取新的程序返回步骤S01。本发明能够高效、准确的实现批量未解释程序的验证。

    一种基于静态分析与抽象的软件设计重建方法

    公开(公告)号:CN111625223B

    公开(公告)日:2023-04-28

    申请号:CN202010459766.1

    申请日:2020-05-26

    Abstract: 一种基于静态分析与抽象的软件设计重建方法,其步骤为:步骤S1:控制流图提取;对一个给定的软件程序P,提取出其在一组程序控制点上的具体控制流图C,控制点之间的迁移由一个动作序列集合所标注,表示其中的动作序列发生时会导致该控制迁移;步骤S2:动作抽象;根据设定的变量抽象域,计算具体控制流图每条边上的动作序列集合对应的抽象动作,分析出该组动作序列在更高的抽象层的含义;步骤S3:控制点和抽象域调整;步骤S4:程序合成;得到一个抽象的控制流图;根据此控制流图合成一个用来描述软件设计模型的抽象程序,完成设计重建。本发明具有原理简单、设计重建自动化水平高、可提高设计重建抽象程度等优点。

    一种基于数值抽象的程序资源使用量自动分析方法

    公开(公告)号:CN111475420B

    公开(公告)日:2023-04-28

    申请号:CN202010382006.5

    申请日:2020-05-08

    Abstract: 本发明公开了一种基于数值抽象的程序资源使用量自动分析方法,其包括:步骤S1:资源操作API的配置;步骤S2:代码自动插桩;步骤S3:资源引用变量指向分析:通过指向分析得到程序中每个资源引用变量指向的基地址集合及对应的资源大小;利用用于建模资源使用量的数值变量及其依赖关系,对插桩后的代码进行切片,自动剔除与资源操作无关代码,得到数值程序;步骤S4:基于数值抽象的数值程序分析;步骤S5:循环次数上界分析;步骤S6:数值程序分析结果到资源使用量的映射:将分析得到的数值程序分析结果映射到资源使用量的值范围。本发明具有原理简单、适用范围广、分析效率高、分析可靠性好等优点。

    一种小样本条件下的因果关系发现方法及系统

    公开(公告)号:CN114428795A

    公开(公告)日:2022-05-03

    申请号:CN202210027724.X

    申请日:2022-01-11

    Abstract: 本发明公开了一种小样本条件下的因果关系发现方法及系统。方法包括S1、初始化以变量为节点的无向完全图H;S2、设定整数变量n=0;S3、枚举H顶点中的有序节点对x,y,使得x,y相邻,设定集合Z=adjacentH(x)\{y}的节点数不小于n,且N/(z1·z2·…·zm)≥40,若H顶点中符合条件的有序节点对已枚举完毕,则跳转至步骤S6;S4、枚举集合Z的子集S;S5、跳转至步骤S3;S6、将整数变量n加1;S7、若存在x和y使得x,y相邻且集合adjacentH(x)\{y}的节点数不小于n,则跳转至步骤S2;S8、枚举H顶点中的有序节点元组x,y,z;S9、反复按照预设规则将H中的无向边转化成有向边。本发明能避免不必要的迭代,提升因果关系发现方法整体执行效率。

    一种基于路径分析的缓冲区溢出漏洞自动利用方法

    公开(公告)号:CN108959936B

    公开(公告)日:2021-05-25

    申请号:CN201810687808.X

    申请日:2018-06-28

    Abstract: 本发明公开一种基于路径分析的缓冲区溢出漏洞自动利用方法,步骤包括:S1.获取目标二进制程序的程序信息;S2.根据获取的程序信息使用符号执行方法对目标二进制程序进行遍历,搜索程序中存在的软件漏洞,并获取搜索到的软件漏洞的路径信息;S3.获取当前系统的环境信息,根据获取的环境信息以及程序信息,生成所需的利用规约以绕过系统保护;S4.根据软件漏洞的路径信息以及生成的利用规约进行求解,最终生成所需的漏洞利用输入。本发明具有实现方法简单、能够实现软件漏洞的自动搜索以及漏洞利用的自动生成,且可以自动绕过系统防护,自动化程度与执行效率高等优点。

    面向死锁检查的非阻塞MPI程序符号执行方法、系统及介质

    公开(公告)号:CN110554925A

    公开(公告)日:2019-12-10

    申请号:CN201910838017.7

    申请日:2019-09-05

    Abstract: 本发明涉及计算机高性能计算的可靠性保证领域,公开了一种面向死锁检查的非阻塞MPI程序符号执行方法、系统及介质。针对非阻塞MPI程序的异步性和非确定性,本发明通过为通信操作的不同消息匹配情况和不同交叠执行情况创建不同待探索状态来确保符号执行能够系统遍历MPI程序的路径空间。发明框架中的语句符号执行方法能精确刻画不同类型语句执行所对应的符号化状态迁移,阻塞驱动匹配策略能够有效获取符号执行过程中通信行为的所有可能匹配情况。本发明基于符号执行来系统遍历非阻塞MPI程序的路径空间,在探索程序执行路径时自动检测路径是否发生死锁,直到探索完程序路径空间、发现死锁或者超时。

    一种复杂软件系统功能正确性的工程化验证方法与系统

    公开(公告)号:CN119690852A

    公开(公告)日:2025-03-25

    申请号:CN202510192589.8

    申请日:2025-02-21

    Abstract: 本发明公开了一种复杂软件系统功能正确性的工程化验证方法与系统,本发明方法包括进行模块功能分析、模块输入分析以及执行效果分析,根据分析得到的模块功能、输入情况和执行效果构建验证需求的描述;进行运行环境分析确定复杂软件系统运行时所依赖的软硬件环境,进行上下文环境抽象,根据抽象后的上下文环境执行验证场景构建,将验证需求的描述使用验证语言形式化规约插入到验证用例代码中以完成验证用例的构建;利用验证工具执行构建的验证用例得到验证结果并进行验证缺陷分析。本发明旨在通过验证需求构建、验证用例构建及验证用例执行三个阶段形成了一套完整的复杂软件系统功能正确性的工程化验证机制,为复杂软件系统的质量保证提供支撑。

Patent Agency Ranking