一种性能缺陷自动检测的方法

    公开(公告)号:CN114490369A

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

    申请号:CN202210060556.4

    申请日:2022-01-19

    Applicant: 南京大学

    Abstract: 软件系统在运行时出现性能问题,可能是由于代码中存在性能缺陷,如冗余的操作、变量重复赋值等。本发明提出一种方法,用来自动检测C/C++代码中潜在的性能缺陷,该方法首先基于性能缺陷的代码特征,定义用于表示该性能缺陷的标签,基于性能缺陷发生的语句序列,构建表示性能缺陷行为特征的标签约束集合;第二步,对源代码进行程序分析的构建过程间控制流图,在此基础上引入性能标签,构建带标签的过程间控制流图;第三步,在带标签的过程间控制流图上,通过深度优先遍历,同时收集路径上的标签序列,根据标签序列与标签约束集合的一致性,判定待检测系统是否存在性能缺陷,从而报告相应的性能缺陷。

    一种基于指令级数据流分析的新指令扩展方法

    公开(公告)号:CN115543439A

    公开(公告)日:2022-12-30

    申请号:CN202211256469.2

    申请日:2022-10-14

    Applicant: 南京大学

    Abstract: 本发明公开一种基于指令级数据流分析的新指令扩展方法,包括以下步骤:首先基于静态分析构建指令级数据流图;接着基于指令约束条件对指令级数据流图进行划分得到子图集合;然后基于子图等价关系的定义对子图集合进行等价类划分,并基于指令序列特征和频次筛选出符合特征的高频子图;最后基于抽象指令序列,描述每一个高频子图对应的新指令语义。之后可以根据抽象指令序列来实现新指令并通过在代码生成时使用新指令,达到性能优化的效果。本方法使得用户仅需要提供指令约束条件和指令序列特征等少量信息,就可以自动发掘程序中可优化的指令片段,从而有效降低人工成本,提高指令挖掘的准确性和效率。

    中断驱动嵌入式系统数据竞争的自动检测方法

    公开(公告)号:CN112817787A

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

    申请号:CN202110119762.3

    申请日:2021-01-28

    Applicant: 南京大学

    Abstract: 本发明提出中断嵌入式系统数据竞争的自动检测方法,该方法第一步对被检测代码进行静态分析,基于程序值流以及潜在并发关系分析,识别针对共享资源的潜在并发访问关系,并据此报告潜在数据竞争警报;第二步,针对第一步静态分析报告的数据竞争警报,基于制导符号执行探索数据竞争相关程序路径,排除约束矛盾的路径,基于可解约束生成能触发数据竞争的测试用例,报告可行的数据竞争;最后,针对第二步报告的可行数据竞争及其测试用例,基于仿真平台构建被检测代码所需的硬软件运行时支撑,根据执行测试用例触发的数据竞争,从而报告确认的数据竞争。上述方法也可以检测多线程程序的数据竞争缺陷。

    基于静态程序分析与模糊测试的内核数据竞争检测方法

    公开(公告)号:CN114428733B

    公开(公告)日:2025-04-22

    申请号:CN202210059807.7

    申请日:2022-01-19

    Applicant: 南京大学

    Abstract: 本发明公开一种基于静态程序分析与模糊测试的内核数据竞争检测方法,通过静态程序分析识别代码里的共享资源,并且获得针对共享资源的访问操作,记录该访问操作的读写属性,判定潜在数据竞争的访问对。通过分析内核同步原语语义,过滤不可能产生线程交错的共享资源访问对,以生成更加精确的数据竞争对集合。通过静态分析识别内核资源与系统调用,构建系统调用依赖图。使用数据竞争对集合与系统调用依赖图指导内核模糊测试用例的生成与变异。用一个线程感知模糊测试生成器,将线程的优先级随机化,以探索线程交错,并使用运行时反馈信息更新依赖图的边权值,完善系统调用依赖图,指导之后模糊测试输入的变异。

    一种基于高精度静态程序分析的过程间冗余保护检测方法

    公开(公告)号:CN118152273A

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

    申请号:CN202410221413.6

    申请日:2024-02-28

    Applicant: 南京大学

    Abstract: 本发明公开一种基于高精度静态程序分析的过程间冗余保护检测方法,用于检测代码中一类共同特征为使用前需要保护性判断以避免程序错误的特殊类型或用途的变量在过程间存在的多次效果等价的冗余保护判断代码,该方法包括步骤:分析收集程序中保护性判断语句信息;分析收集程序中该类特殊类型或用途的变量信息;构建上下文敏感的逆向函数调用链;分析逆向函数调用链并检测是否存在冗余保护。本方法首次提出过程间冗余保护这种冗余代码类型;本方法考虑多层函数调用的情况,支持在复杂调用关系下的过程间冗余保护检测;本方法采用局部数据流分析和局部域敏感分析,实现检测效率和精度的平衡。

    大规模程序增量静态分析方法
    6.
    发明公开

    公开(公告)号:CN118094540A

    公开(公告)日:2024-05-28

    申请号:CN202410214319.8

    申请日:2024-02-27

    Applicant: 南京大学

    Abstract: 本发明公开一种大规模程序增量静态分析方法,该方法首先利用进行变更分析得到变化的行号匹配出变化的指令同时构造新旧代码之间的映射;然后基于得到的变化指令和映射关系,更新指向集中的编号;在基于得到的指向集变更,更新静态单赋值中的指向集信息;最后基于得到的静态单赋值信息,连接各个变量的定义点和使用点,形成值流图。本发明可以精确识别源代码和指令的变更,最大程度减少增量静态分析需要处理的数据量,同时本发明最后以值流图的形式,直观地展示了各个变量和对象在程序模块之间的传递关系。

    一种基于静态分析的二进制程序控制流重建方法

    公开(公告)号:CN118034708A

    公开(公告)日:2024-05-14

    申请号:CN202410221415.5

    申请日:2024-02-28

    Applicant: 南京大学

    Abstract: 本发明公开一种基于静态分析的二进制程序控制流重建方法,该方法首先提取输入二进制程序的函数入口地址,然后基于工作列表算法反汇编并构建过程内控制流图和函数调用图;根据过程内控制流图和函数调用图分析构建函数抽象,根据函数抽象分析函数调用指令对应的返回地址并更新过程内控制流图的调用返回关系,再根据过程内控制流图和函数抽象,分析函数内的间接跳转目标并更新过程内控制流图的间接跳转关系,最后构建过程间控制流图,基于过程间静态分析方法更新函数调用图中的间接调用关系、过程间控制流图中的函数调用关系和函数调用指令对应的函数抽象。本发明可以解决目前二进制程序控制流重建的通用方法自动化程度与控制流精度无法兼得的问题。

    基于静态程序分析与模糊测试的内核数据竞争检测方法

    公开(公告)号:CN114428733A

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

    申请号:CN202210059807.7

    申请日:2022-01-19

    Applicant: 南京大学

    Abstract: 本发明公开一种基于静态程序分析与模糊测试的内核数据竞争检测方法,通过静态程序分析识别代码里的共享资源,并且获得针对共享资源的访问操作,记录该访问操作的读写属性,判定潜在数据竞争的访问对。通过分析内核同步原语语义,过滤不可能产生线程交错的共享资源访问对,以生成更加精确的数据竞争对集合。通过静态分析识别内核资源与系统调用,构建系统调用依赖图。使用数据竞争对集合与系统调用依赖图指导内核模糊测试用例的生成与变异。用一个线程感知模糊测试生成器,将线程的优先级随机化,以探索线程交错,并使用运行时反馈信息更新依赖图的边权值,完善系统调用依赖图,指导之后模糊测试输入的变异。

    一种性能缺陷自动检测的方法

    公开(公告)号:CN114490369B

    公开(公告)日:2025-04-22

    申请号:CN202210060556.4

    申请日:2022-01-19

    Applicant: 南京大学

    Abstract: 软件系统在运行时出现性能问题,可能是由于代码中存在性能缺陷,如冗余的操作、变量重复赋值等。本发明提出一种方法,用来自动检测C/C++代码中潜在的性能缺陷,该方法首先基于性能缺陷的代码特征,定义用于表示该性能缺陷的标签,基于性能缺陷发生的语句序列,构建表示性能缺陷行为特征的标签约束集合;第二步,对源代码进行程序分析的构建过程间控制流图,在此基础上引入性能标签,构建带标签的过程间控制流图;第三步,在带标签的过程间控制流图上,通过深度优先遍历,同时收集路径上的标签序列,根据标签序列与标签约束集合的一致性,判定待检测系统是否存在性能缺陷,从而报告相应的性能缺陷。

    基于仿真环境的车载蓝牙软件协议栈模糊测试方法

    公开(公告)号:CN118233947A

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

    申请号:CN202410103288.9

    申请日:2024-01-25

    Applicant: 南京大学

    Abstract: 本发明公开一种基于仿真环境的车载蓝牙软件协议栈模糊测试方法,该方法包括:获取蓝牙协议规范文档,从中自动提取出蓝牙协议数据包格式信息,构建蓝牙协议数据规约模型;获取被测蓝牙软件协议栈二进制代码,构建运行所需的仿真环境,基于仿真环境,通过动态污点分析,得到被测蓝牙协议栈所接收的数据包类型;结合上述步骤构建的蓝牙协议数据规约模型与提取的被测蓝牙协议栈特征信息,以数据包的“请求‑应答对”作为反馈信息,同时利用动态污点追踪发掘其中的数据包关联信息,制导生成符合条件的数据包序列并执行。本发明通过动态污点追踪提取被测试蓝牙软件协议栈特征信息提升测试效率,同时通过构建仿真测试环境实现摆脱硬件依赖的模糊测试。

Patent Agency Ranking