代码检测方法及相关设备与流程

    技术2026-07-06  18


    本申请涉及计算机,尤其涉及一种代码检测方法、一种代码检测装置、一种计算机设备、一种计算机可读存储介质、一种计算机程序产品。


    背景技术:

    1、随着计算机技术的发展,计算机设备中可通过软件和硬件互相支持以实现特定的功能。代码作为一种计算机语言,是一种能够被计算机设备执行的程序,可被部署至相应环境中来实现特定的功能。在代码被部署至相应环境之前,对代码进行检测是必要的,通过代码检测可检查代码中的缺陷或者漏洞,防止因代码存在的问题而导致不必要的损失。举例来说,对于各种智能合约在部署至区块链之前,均需对智能合约进行安全审计,以检测智能合约中的合约代码是否存在漏洞,从而有效避免因代码漏洞造成的损失。

    2、目前可以通过人工检测代码,或者借助于一些工具实现自动化地检测代码,例如在智能合约审计中可采用一些合约安全分析工具(如mythril工具)来检测智能合约中可能出现的安全漏洞。但经实践表明,当前的代码检测方法的检测效率较低。


    技术实现思路

    1、本申请实施例提供一种代码检测方法及相关设备,可并行地对数据代码中的不同代码块进行检测,从而提升代码检测效率。

    2、一方面,本申请实施例提供了一种代码检测方法,该方法包括:

    3、获取待检测的数据代码;所述数据代码包含多个代码块,一个代码块中的代码内容用于描述一个功能服务;

    4、基于所述数据代码中各代码块的代码内容,及不同代码内容之间的依赖关系构建图结构;所述图结构包含多个顶点和连边,一个顶点用于存储一个代码块的代码内容,一个连边用于指示连接顶点中存储的代码内容之间的依赖关系;

    5、在按照所述图结构对所述数据代码进行代码检测处理过程中,从所述图结构中确定出支持并行检测的参考顶点;

    6、对所述参考顶点中存储的代码内容进行并行检测处理,以得到所述数据代码的检测结果。

    7、一方面,本申请实施例提供了一种代码检测装置,该装置包括:

    8、获取单元,用于获取待检测的数据代码;所述数据代码包含多个代码块,一个代码块中的代码内容用于描述一个功能服务;

    9、处理单元,用于基于所述数据代码中各代码块的代码内容,及不同代码内容之间的依赖关系构建图结构;所述图结构包含多个顶点和连边,一个顶点用于存储一个代码块的代码内容,一个连边用于指示连接顶点中存储的代码内容之间的依赖关系;在按照所述图结构对所述数据代码进行代码检测处理过程中,从所述图结构中确定出支持并行检测的参考顶点;对所述参考顶点中存储的代码内容进行并行检测处理,以得到所述数据代码的检测结果。

    10、一方面,本申请实施例提供一种计算机设备,该计算机设备包括:

    11、处理器,适用于执行计算机程序;

    12、计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时,实现如上述代码检测方法。

    13、一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器加载并执行如上述代码检测方法。

    14、一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机指令,该计算机程序或计算机指令被处理器执行时实现上述代码检测方法。

    15、在本申请实施例中,可获取待检测的数据代码,该数据代码包括多个代码块,一个代码块的代码内容用于描述一个功能服务;根据数据代码中包含的各代码块的代码内容以及不同代码内容之间的依赖关系,可构建出一个图结构。其中,图结构中一个顶点用于存储代码内容,一条连接用于指示不同顶点存储的代码内容之间的依赖关系。可见,上述过程可将数据代码抽象为一个图结构,基于图结构能够更加简洁明了地描述数据代码中各个代码内容之间的依赖关系,以便为后续基于图结构进行并行的代码检测处理提供支撑。即:在按照该图结构对数据代码进行代码检测处理的过程中,可从图结构中确定出支持并行检测的参考顶点,并对支持并行检测的参考顶点存储的代码内容进行并行检测处理。如此,基于构建出的图结构可便捷、高效确定出支持并行检测的参考顶点。对支持并行检测的参考顶点进行并行检测处理,可使得数据代码中各个代码块对应代码内容的检测处理同步执行,实现数据代码的高并发检测,从而使得数据代码的检测效率得到有效提升,还可充分利用资源以提升资源的利用率。



    技术特征:

    1.一种代码检测方法,其特征在于,包括:

    2.如权利要求1所述的方法,其特征在于,构建的图结构为调整后的图结构,且所述调整后的图结构中包含的连边为有向边;所述基于所述数据代码中各代码块的代码内容,及不同代码内容之间的依赖关系构建图结构,包括:

    3.如权利要求2所述的方法,其特征在于,所述根据所述初始的图结构包含的顶点及有向边的指向,对所述初始的图结构进行调整,得到调整后的图结构,包括:

    4.如权利要求3所述的方法,其特征在于,所述存储空间用于存储已知检测结果的代码内容的哈希值;所述在存储空间中,查询所述初始的图结构中任一顶点所存储代码内容的检测结果,包括:

    5.如权利要求2所述的方法,其特征在于,所述根据所述初始的图结构包含的顶点及有向边的指向,对所述初始的图结构进行调整,得到调整后的图结构,包括:

    6.如权利要求1所述的方法,其特征在于,所述从所述图结构中确定出支持并行检测的参考顶点,包括:

    7.如权利要求6所述的方法,其特征在于,所述根据所述图结构确定出各顶点的优先级,包括:

    8.如权利要求7所述的方法,其特征在于,当图结构中存在与所述任一顶点的层级信息相同且与所述任一顶点的父顶点不同的顶点时;所述方法还包括:

    9.如权利要求1所述的方法,其特征在于,所述数据代码的检测结果包含对所述数据代码中各代码块的检测结果;所述方法还包括:

    10.如权利要求1所述的方法,其特征在于,所述数据代码的检测结果包含:并行检测处理的检测结果和串行检测处理的检测结果,其中,所述检测结果是由计算集群包含的至少两个计算节点进行代码检测处理后得到的;调用所述计算集群进行代码检测处理的方式包括:

    11.如权利要求10所述的方法,其特征在于,所述根据各个计算节点的负载剩余量,及所述目标顶点存储的代码内容的数据量,从所述各个计算节点中确定出目标计算节点,包括:

    12.如权利要求10所述的方法,其特征在于,所述获取所述计算集群中各个计算节点的负载剩余量,包括:

    13.如权利要求10所述的方法,其特征在于,所述基于所述图结构中各个顶点的优先级,从所述图结构中确定出当前待执行代码检测处理的目标顶点,包括:

    14.如权利要求10所述的方法,其特征在于,所述每个计算节点包含:计算模块以及监测模块;其中,所述计算模块用于进行代码检测处理,所述监测模块用于监测所述计算集群中对应计算节点的已负载量以及资源占用率;

    15.如权利要求1所述的方法,其特征在于,所述数据代码包括以下任一种:待部署至区块链的智能合约中的合约代码,待发布的应用程序的程序代码,待部署至目标环境的脚本代码。

    16.一种代码检测装置,其特征在于,包括:

    17.一种计算机设备,其特征在于,包括:

    18.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时,执行如权利要求1-15任一项所述的代码检测方法。

    19.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或计算机指令,所述计算机程序或计算机指令被处理器执行实现如权利要求1-15任一项所述代码检测方法。


    技术总结
    本申请实施例提供了一种代码检测方法及相关设备,其中方法包括:获取待检测的数据代码;数据代码包含多个代码块,一个代码块中的代码内容用于描述一个功能服务;基于数据代码中各代码块的代码内容,及不同代码内容之间的依赖关系构建图结构;图结构包含多个顶点和连边,一个顶点用于存储一个代码块的代码内容,一个连边用于指示连接顶点中存储的代码内容之间的依赖关系;在按照图结构对数据代码进行代码检测处理过程中,从图结构中确定出支持并行检测的参考顶点;对参考顶点中存储的代码内容进行并行检测处理,以得到数据代码的检测结果。通过本申请实施例,能够有效提升代码检测效率。

    技术研发人员:卢光宏
    受保护的技术使用者:腾讯科技(深圳)有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-44782.html

    最新回复(0)