一种埋点自动插桩方法、装置及计算机可读存储介质制造方法及图纸

技术编号:34265312 阅读:54 留言:0更新日期:2022-07-24 14:46
根据本申请方案涉及一种埋点自动插桩方法、装置及计算机可读存储介质,当被测项目被访问时,通过加载公共语言运行库构建相应探针运行环境;在探针运行环境下,控制探针分析器读取探针配置信息探针配置信息;在对被测项目的编译过程中,根据配置信息确定待插桩埋点;在确定待插桩埋点之后,控制探针分析器对待插桩埋点进行插桩。通过本申请方案的实施,通过加载公共语言运行库构建相应探针运行环境,在探针运行环境下,根据探针配置信息对待插桩埋点进行插桩,使安装探针时对被测项目不会存在代码入侵,并根据探针分析器自动插桩埋点。并根据探针分析器自动插桩埋点。并根据探针分析器自动插桩埋点。

A method, device and computer-readable storage medium for automatic pile insertion at buried points

【技术实现步骤摘要】
一种埋点自动插桩方法、装置及计算机可读存储介质


[0001]本申请涉及网络安全
,尤其涉及一种埋点自动插桩方法、装置及计算机可读存储介质。

技术介绍

[0002]随着人们对软件开发的性能和安全的认知意识的进步,越来越多的传统系统开发问题也逐渐暴露出来,系统安全问题如何避免,系统性能如何优化这些问题越来越多,比如系统中存在的一些安全漏洞,一些地方的性能问题等等。如果没有一个合适的手段在上线前检查出这些问题,系统一旦上线可能会造成无法挽回的损失。但是目前还没有一个简单高效的方式来针对.Net平台的性能安全和系统安全做全面的分析和嗅探。目前大部分市场上的探针分析器都是对项目代码存在侵入,即开发人员在开发阶段必须引用或者修改项目代码来使用探针或者分析器从而达到分析目的,然而一些线上的项目必须需要源代码才能引入,使用十分有限。传统的数据分析器存在以下问题:存在代码侵入性,使用者必须在开发阶段手动修改项目部分代码来引用分析器探针,使用完成后手动修改代码卸载探针分析器;需要第三方组件依赖,在使用探针时还需引用第三方组件,可能会对项目出现兼容性问题;安装卸载麻烦,特别是一些上线后的项目,无法做到随时使用,灵活性太差。

技术实现思路

[0003]本申请实施例提供了一种埋点自动插桩方法、装置及计算机可读存储介质,至少能够解决相关技术中安装探针时对被测项目存在代码入侵,安装好的探针无法自动插桩埋点的问题。
[0004]本申请实施例第一方面提供了一种埋点自动插桩方法,包括:
[0005]当被测项目被访问时,通过加载公共语言运行库构建相应探针运行环境;
[0006]在所述探针运行环境下,控制探针分析器读取探针配置信息;
[0007]在对所述被测项目的编译过程中,根据所述探针配置信息确定待插桩埋点;
[0008]控制所述探针分析器对所述待插桩埋点进行插桩。
[0009]本申请实施例第二方面提供了一种埋点自动插桩装置,包括:
[0010]构建模块,用于当被测项目被访问时,通过加载公共语言运行库构建相应探针运行环境;
[0011]读取模块,用于在所述探针运行环境下,控制探针分析器读取探针配置信息;
[0012]确定模块,用于在对所述被测项目的编译过程中,根据所述探针配置信息确定待插桩埋点;
[0013]插桩模块,用于控制所述探针分析器对所述待插桩埋点进行插桩。
[0014]本申请实施例第三方面提供了一种电子设备,其特征在于,包括存储器及处理器,其中,所述处理器用于执行存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时上述本申请实施例第一方面提供的埋点自动插桩方法中的各步骤。
[0015]本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的埋点自动插桩方法中的各步骤。
[0016]由上可见,根据本申请方案所提供的方法、装置及计算机可读存储介质,当被测项目被访问时,通过加载公共语言运行库构建相应探针运行环境;在所述探针运行环境下,控制探针分析器读取探针配置信息;在对所述被测项目的编译过程中,根据所述探针配置信息确定待插桩埋点;控制所述探针分析器对所述待插桩埋点进行插桩。通过本申请方案的实施,通过加载公共语言运行库构建相应探针运行环境,在探针运行环境下,根据探针配置信息对待插桩埋点进行插桩,使安装探针时对被测项目不会存在代码入侵,并根据探针分析器自动插桩埋点。
附图说明
[0017]图1为本申请第一实施例提供的埋点自动插桩方法的基本流程示意图;
[0018]图2为本申请第一实施例提供的探针架构示意图;
[0019]图3为本申请第二实施例提供的埋点自动插桩方法的细化流程示意图;
[0020]图4为本申请第三实施例提供的埋点自动插桩装置的程序模块示意图;
[0021]图5为本申请第四实施例提供的电子装置的结构示意图。
[0022]具体实施内容
[0023]为使得本申请的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0024]为了解决相关技术中安装探针时对被测项目存在代码入侵,安装好的探针无法自动插桩埋点的问题,本申请第一实施例提供了一种埋点自动插桩方法,如图1为本实施例提供的埋点自动插桩方法的基本流程图,该埋点自动插桩方法包括以下步骤:
[0025]步骤101、当被测项目被访问时,通过加载公共语言运行库构建相应探针运行环境。
[0026]具体的,在实际应用中,现有技术大部分都是对被测项目的源代码进行修改来实现插桩的过程,破坏了被测项目的代码整体结构。在本实施例中,当被测项目接收到相关技术人员的访问请求时,被测项目的运行容器会加载公共语言运行库(Common Language Runtime,CLR),通过公共语言运行库构建一个探针运行环境,在探针运行环境中对被测项目进行编译和运行,不需要破坏被测项目的代码整体结构,所以也就不存在代码入侵。
[0027]步骤102、在探针运行环境下,控制探针分析器读取探针配置信息。
[0028]具体的,在本实施例中,探针运行环境构建好之后,公共语言运行库会加载探针分析器,如图2所示为本实施例提供的探针框架示意图,其中,探针分析器为.NET profiling部分,探针分析器第一次加载时会读取探针配置信息,该探针分析器属于探针框架的外挂模块,主要用于对被测项目中需要检测的埋点自动插桩。
[0029]在本实施例一种可选的实施方式中,在探针运行环境下,控制探针分析器读取探针配置信息的步骤之后,还包括:初始化探针分析器;在探针分析器初始化完成之后,加载
与探针相关的对应模块。
[0030]具体的,在本实施例中,在探针分析器读取完探针配置信息之后,开始进行探针分析器初始化,使探针分析器进入插桩的准备状态,在探针分析器初始化完成之后,公共语言运行库开始加载探针架构中其它相关的模块,如图2探针架构示意图所示的组件接口、通信模块Event Bus(事件总线)以及探针引擎模块(如图2中Agent Engine部分)。
[0031]步骤103、在对被测项目的编译过程中,根据探针配置信息确定待插桩埋点。
[0032]具体的,在本实施例中,在探针分析器初始化完成之后,开始对被测项目中的基础方法进行编译,在编译过程中,探针分析器会根据探针配置信息检测编译的基础方法,从编译的基础方法中确定需要插桩的埋点。
[0033]在本实施例一种可选的实施方式中,在对被测项目的编译过程中,根据探针配置信息确定待插桩埋点的步骤,包括:根据JIT编译器依次对被测项目进行编译;控制探针分析器根据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种埋点自动插桩方法,其特征在于,包括:当被测项目被访问时,通过加载公共语言运行库构建相应探针运行环境;在所述探针运行环境下,控制探针分析器读取探针配置信息;在对所述被测项目的编译过程中,根据所述探针配置信息确定待插桩埋点;控制所述探针分析器对所述待插桩埋点进行插桩。2.根据权利要求1所述的埋点自动插桩方法,其特征在于,所述在对所述被测项目的编译过程中,根据所述探针配置信息确定待插桩埋点的步骤,包括:根据JIT编译器依次对所述被测项目进行编译;控制所述探针分析器根据所述探针配置信息对待编译内容进行检测;根据检测结果确定待插桩埋点。3.根据权利要求1所述的埋点自动插桩方法,其特征在于,所述控制所述探针分析器对所述待插桩埋点进行插桩的步骤,包括:控制所述探针分析器获取相应的插桩配置信息;根据所述插桩配置信息对所述待插桩埋点进行CIL修改;通过编译CIL修改后的所述待插桩埋点,对所述待插桩埋点进行插桩。4.根据权利要求1所述的埋点自动插桩方法,其特征在于,所述在所述探针运行环境下,控制探针分析器读取探针配置信息的步骤之后,还包括:初始化所述探针分析器;在所述探针分析器初始化完成之后,加载与所述探针对应的功能模块;其中,所述功能模块包括功能组件以及探针引擎;所述控制所述探针分析器对所述待插桩埋点进行插桩的步骤之后,还包括:根据所述待插桩埋点的埋点配置信息自动访问所述探针引擎;控制所述探针引擎加载对应于所述待插桩埋点的相应功能组件。5.根据权利要求4所述的埋点自动插桩方法,其特征在于,所述功能模块还包括事件总线,所述控制所述探针引擎加载对应于所述待插桩埋点的相应功能组件的步骤之后,还包括:检测所述功能组件的完整性;按照组件接口的运行条件,将检测通过的所述功能组件加载进对应所述被测项目的应用程序域;在所述应用程序域中,控...

【专利技术属性】
技术研发人员:贾宏祥万振华王颉董燕李华
申请(专利权)人:深圳市九州安域科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1