[发明专利]源码插桩方法、装置、计算机设备和存储介质有效
申请号: | 202210215163.6 | 申请日: | 2022-03-07 |
公开(公告)号: | CN114327491B | 公开(公告)日: | 2022-06-21 |
发明(设计)人: | 方宏伟;万振华;郑明;王颉;李华;董燕 | 申请(专利权)人: | 深圳开源互联网安全技术有限公司;深圳市九州安域科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/72 |
代理公司: | 深圳市恒申知识产权事务所(普通合伙) 44312 | 代理人: | 廖厚琪 |
地址: | 518100 广东省深圳市龙华区民治*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 源码 方法 装置 计算机 设备 存储 介质 | ||
本申请涉及一种源码插桩方法、装置、计算机设备和存储介质。所述方法包括:在接收到待编译的用户代码时,根据编译命令对用户代码进行编译;在编译过程中读取到所述编译命令中的插桩编译参数时,对待插桩源码进行插桩处理,生成插桩处理后的更新源码;其中,所述待插桩源码为所述用户代码所依赖的标准库源代码,所述更新源码用于生成具备数据流跟踪功能的可执行程序。基于上述源码插桩方法,在利用编译命令对用户代码编译过程中,读取到编译命令中的插桩编译函数时,则对用户代码所依赖的标准库源代码进行插桩处理,从而生成插桩处理后的更新源码,无需对用户代码进行侵入修改,减少了用户代码的版本数量,简化了用户代码的版本维护操作。
技术领域
本申请涉及计算机技术领域,尤其涉及一种源码插桩方法、装置、计算机设备和存储介质。
背景技术
编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
目前行业内,针对编程语言插桩的方式主要是直接修改用户级源码,具体通过修改用户级源码和增加源码的方式,来实现对特定函数的数据流跟踪和分析。但是此方法对用户源码有侵入性,需要修改用户代码,直接导致用户代码需要维护两个版本,一个生产版本一个插桩版本,从而衍生各种版本维护的问题。
发明内容
为了解决上述技术问题,本申请提供了一种源码插桩方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种源码插桩方法,包括:
在接收到待编译的用户代码时,根据编译命令对用户代码进行编译;
在编译过程中读取到所述编译命令中的插桩编译参数时,对待插桩源码进行插桩处理,生成插桩处理后的更新源码;其中,所述待插桩源码为所述用户代码所依赖的标准库源代码,所述更新源码用于生成具备数据流跟踪功能的可执行程序。
第二方面,本申请提供了一种源码插桩装置,包括:
确定模块,用于在接收到待编译的用户代码时,根据编译命令对用户代码进行编译;
插桩模块,用于在编译过程中读取到所述编译命令中的插桩编译参数时,对待插桩源码进行插桩处理,生成插桩处理后的更新源码;其中,所述待插桩源码为所述用户代码所依赖的标准库源代码,所述更新源码用于生成具备数据流跟踪功能的可执行程序。
第三方面,本申请提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
在接收到待编译的用户代码时,根据编译命令对用户代码进行编译;
在编译过程中读取到所述编译命令中的插桩编译参数时,对待插桩源码进行插桩处理,生成插桩处理后的更新源码;其中,所述待插桩源码为所述用户代码所依赖的标准库源代码,所述更新源码用于生成具备数据流跟踪功能的可执行程序。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在接收到待编译的用户代码时,根据编译命令对用户代码进行编译;
在编译过程中读取到所述编译命令中的插桩编译参数时,对待插桩源码进行插桩处理,生成插桩处理后的更新源码;其中,所述待插桩源码为所述用户代码所依赖的标准库源代码,所述更新源码用于生成具备数据流跟踪功能的可执行程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳开源互联网安全技术有限公司;深圳市九州安域科技有限公司,未经深圳开源互联网安全技术有限公司;深圳市九州安域科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210215163.6/2.html,转载请声明来源钻瓜专利网。