一种空指针引用的检测方法及检测装置

    公开(公告)号:CN110471669B

    公开(公告)日:2023-09-05

    申请号:CN201910713776.0

    申请日:2019-08-02

    发明人: 李隆 赖建新

    IPC分类号: G06F8/41 G06F11/36

    摘要: 本申请公开了一种空指针引用的检测方法及检测装置,该检测方法包括获取多个源代码,对所述源代码进行转换,得到保留控制流信息的内部表示;对所述多个源代码进行解析,获取每个源代码以及各源代码之间的上下文信息;遍历多个源代码,基于所述内部表示和所述上下文信息,检测各源代码中是否存在空指针引用。本申请的检测方法保留了控制流信息,在软件内部有复杂的控制流程的情况下,能够有效判断单一指针在不同分支情况下是否为空,同时,获取每个代码以及多个代码之间的上下文信息,当指针访问的需求来源于其他上下文时,可以有效判断该指针会否为空,从而检测出软件中可能发生空指针引用的地方,以提示软件开发者进行修改,避免空指针引用。

    一种软件缺陷检测规则确定方法、装置、设备和存储介质

    公开(公告)号:CN110990294B

    公开(公告)日:2023-07-14

    申请号:CN201911314484.6

    申请日:2019-12-19

    IPC分类号: G06F11/36

    摘要: 本发明适用于计算机技术领域,提供了一种软件缺陷检测规则确定方法、装置、设备和存储介质,所述方法包括:编译处理待检测软件源代码得到抽象语法树及中间表达式;可视化展示可选检测对象;根据用户对可选检测对象的选择操作确定待检测对象;根据用户对可选检测条件的选择操作确定检测条件;根据待检测对象和检测条件确定检测规则。本发明实施例提供的软件缺陷检测规则确定方法先通过进行编译处理并可视化展示可选检测对象,再根据用户对可选检测对象和可选检测条件的选择操作直接确定待检测对象和检测条件,并直接确定检测规则,无需用户自行编写相应的检测规则程序,对用户的专业技能要求低,适用性更强。

    一种数组越界访问的检测方法、装置及设备

    公开(公告)号:CN110674495A

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

    申请号:CN201910828384.9

    申请日:2019-09-03

    发明人: 赖建新 李隆

    IPC分类号: G06F21/52 G06F21/56 G06F8/41

    摘要: 本说明书实施例公开了一种数组越界访问的检测方法、装置及设备,所述方法包括:获取待检测的程序代码中包含的函数,以及所述函数之间的调用关系信息;如果所述函数之间的调用关系信息中包括未被访问的目标程序语句,则检测所述目标程序语句是否需要访问数组;如果所述目标程序语句需要访问数组,则获取所述目标程序语句访问的数组的预定变量在所述数组对应的程序区域内的值范围;基于所述目标程序语句访问的数组的预定变量在所述数组对应的程序区域内的值范围,对所述程序代码中是否包含数组越界访问进行检测。

    一种数组越界访问的检测方法、装置及设备

    公开(公告)号:CN110674495B

    公开(公告)日:2021-07-09

    申请号:CN201910828384.9

    申请日:2019-09-03

    发明人: 赖建新 李隆

    IPC分类号: G06F21/52 G06F21/56 G06F8/41

    摘要: 本说明书实施例公开了一种数组越界访问的检测方法、装置及设备,所述方法包括:获取待检测的程序代码中包含的函数,以及所述函数之间的调用关系信息;如果所述函数之间的调用关系信息中包括未被访问的目标程序语句,则检测所述目标程序语句是否需要访问数组;如果所述目标程序语句需要访问数组,则获取所述目标程序语句访问的数组的预定变量在所述数组对应的程序区域内的值范围;基于所述目标程序语句访问的数组的预定变量在所述数组对应的程序区域内的值范围,对所述程序代码中是否包含数组越界访问进行检测。

    一种软件缺陷检测方法、装置、计算机设备和存储介质

    公开(公告)号:CN111026663A

    公开(公告)日:2020-04-17

    申请号:CN201911249611.9

    申请日:2019-12-09

    IPC分类号: G06F11/36

    摘要: 本发明属于计算机技术领域,尤其涉及一种软件缺陷检测方法、装置、计算机设备和存储介质,所述软件缺陷检测方法包括:获取软件源代码以及规则描述源代码,其中规则描述源代码包含至少一条用户自定义的检测规则信息;将软件源代码和规则描述源代码分别转化为以静态单赋值形式表示的软件中介码和规则描述中介码;根据软件中介码以及规则描述中介码确定所述检测规则信息是否被违反。本发明提供的软件缺陷检测方法,能够支持用户使用自己熟知的编程语言自定义编写检测需求,利用语义推导确定用户的检测需求并进行软件缺陷检测。

    一种软件缺陷检测规则确定方法、装置、设备和存储介质

    公开(公告)号:CN110990294A

    公开(公告)日:2020-04-10

    申请号:CN201911314484.6

    申请日:2019-12-19

    IPC分类号: G06F11/36

    摘要: 本发明适用于计算机技术领域,提供了一种软件缺陷检测规则确定方法、装置、设备和存储介质,所述方法包括:编译处理待检测软件源代码得到抽象语法树及中间表达式;可视化展示可选检测对象;根据用户对可选检测对象的选择操作确定待检测对象;根据用户对可选检测条件的选择操作确定检测条件;根据待检测对象和检测条件确定检测规则。本发明实施例提供的软件缺陷检测规则确定方法先通过进行编译处理并可视化展示可选检测对象,再根据用户对可选检测对象和可选检测条件的选择操作直接确定待检测对象和检测条件,并直接确定检测规则,无需用户自行编写相应的检测规则程序,对用户的专业技能要求低,适用性更强。

    一种软件缺陷检测方法、装置、计算机设备和存储介质

    公开(公告)号:CN111026663B

    公开(公告)日:2023-06-09

    申请号:CN201911249611.9

    申请日:2019-12-09

    IPC分类号: G06F11/36

    摘要: 本发明属于计算机技术领域,尤其涉及一种软件缺陷检测方法、装置、计算机设备和存储介质,所述软件缺陷检测方法包括:获取软件源代码以及规则描述源代码,其中规则描述源代码包含至少一条用户自定义的检测规则信息;将软件源代码和规则描述源代码分别转化为以静态单赋值形式表示的软件中介码和规则描述中介码;根据软件中介码以及规则描述中介码确定所述检测规则信息是否被违反。本发明提供的软件缺陷检测方法,能够支持用户使用自己熟知的编程语言自定义编写检测需求,利用语义推导确定用户的检测需求并进行软件缺陷检测。