代码动态调整方法、装置、设备、介质和程序产品制造方法及图纸

技术编号:38749481 阅读:11 留言:0更新日期:2023-09-09 11:16
本公开提供了一种代码动态调整方法,可以应用于信息安全技术领域。该代码动态调整方法,所述方法应用于容器端所在设备,所述方法包括:在与代理端建立连接的情况下,监听来自于代理端的命令,所述命令包括加载命令,所述加载命令包括目标程序位置和修改代码;响应于接收到的所述加载命令,基于所述目标程序位置,找出处于内存中的目标程序,所述目标程序包括执行状态;以及在所述执行状态为当前未被使用的情况下,基于所述修改代码修改处于内存中的目标程序。本公开还提供了一种代码动态调整装置、设备、存储介质和程序产品。存储介质和程序产品。存储介质和程序产品。

【技术实现步骤摘要】
代码动态调整方法、装置、设备、介质和程序产品


[0001]本公开涉及信息安全
,具体地涉及一种代码动态调整方法、装置、设备、介质和程序产品。

技术介绍

[0002]为保证大型金融企业中服务不间断运行,在应对紧急的异常事件时,现有技术中多通过预先在程序中埋点、代码级别打桩、硬编码输出日志等形式来满足对生产系统运行情况的监控,如需改变业务逻辑满足特殊场景需要,需通过投产新版本的形式来达标目标。
[0003]现有的技术方案对专业研发人员实现预判能力要求较高,且需投产新版本来满足业务需求,容易导致成本高、风险高等衍生问题。

技术实现思路

[0004]鉴于上述问题,本公开提供了降低代码调整成本、风险的代码动态调整方法、装置、设备、介质和程序产品。
[0005]根据本公开的第一个方面,提供了一种代码动态调整方法,所述方法应用于容器端所在设备,所述方法包括:在与代理端建立连接的情况下,监听来自于代理端的命令,所述命令包括加载命令,所述加载命令包括目标程序位置和修改代码;响应于接收到的所述加载命令,基于所述目标程序位置,找出处于内存中的目标程序,所述目标程序包括执行状态;以及在所述执行状态为当前未被使用的情况下,基于所述修改代码修改处于内存中的目标程序。
[0006]根据本公开的实施例,其中,所述响应于接收到的所述加载命令,基于所述目标程序位置,找出处于内存中的目标程序,包括:基于所述目标程序位置定位动态链接库;以及找出所述动态链接库中的目标程序。
[0007]根据本公开的实施例,其中,所述在所述执行状态为当前未被使用的情况下,基于所述修改代码修改处于内存中的目标程序,包括:获取执行环境,所述执行环境包括多个钩子函数;基于所述钩子函数建立的通道,获取所述目标程序的待修改代码;以及基于所述修改代码替换所述目标程序中的待修改代码。
[0008]根据本公开的实施例,其中,与所述代理端建立连接的方法包括:接收来自于所述代理端的监控启动指令;以及基于所述监控启动指令启动轮询监听器,所述轮询监听器是定期查看来自于所述代理端的命令的。
[0009]根据本公开的实施例,其中,所述执行状态是全局变量的形式。
[0010]根据本公开的第二个方面,提供了一种代码动态调整方法,所述方法应用于代理端所在设备,所述方法包括:建立与容器端的连接;以及在与容器端建立连接的情况下,发送加载命令,所述加载命令包括目标程序位置和修改代码,其中,所述加载命令是指导所述容器端通过所述目标程序位置定位处于内存中的目标程序,并在所述目标程序的执行状态处于未被使用的情况下,通过所述修改代码修改处于内存中的目标程序的。
[0011]根据本公开的实施例,其中,所述建立与容器端的连接,包括:接收来自于客户的业务系统IP和容器端ID;以及基于预设的交互协议和预设的虚拟机接口,通过所述业务系统IP和所述容器端ID,建立与所述容器端的连接。
[0012]本公开的第三个方面,提供了一种代码动态调整装置,所述装置应用于容器端所在设备,所述装置包括:监听模块,用于在与代理端建立连接的情况下,监听来自于代理端的命令,所述命令包括加载命令,所述加载命令包括目标程序位置和修改代码;程序找寻模块,用于响应于接收到的所述加载命令,基于所述目标程序位置,找出处于内存中的目标程序,所述目标程序包括执行状态;以及修改模块,用于在所述执行状态为当前未被使用的情况下,基于所述修改代码修改处于内存中的目标程序。
[0013]根据本公开的实施例,其中,所述程序找寻模块,用于基于所述目标程序位置定位动态链接库;以及找出所述动态链接库中的目标程序。
[0014]根据本公开的实施例,其中,所述修改模块,用于获取执行环境,所述执行环境包括多个钩子函数;基于所述钩子函数建立的通道,获取所述目标程序的待修改代码;以及基于所述修改代码替换所述目标程序中的待修改代码。
[0015]根据本公开的实施例,其中,所述装置还包括简体启动模块,用于接收来自于所述代理端的监控启动指令;以及基于所述监控启动指令启动轮询监听器,所述轮询监听器是定期查看来自于所述代理端的命令的。
[0016]根据本公开的实施例,其中,所述执行状态是全局变量的形式。
[0017]本公开的第四个方面,提供了一种代码动态调整装置,所述装置应用于代理端所在设备,所述装置包括:连接建立模块,用于建立与容器端的连接;以及命令发送模块,用于在与容器端建立连接的情况下,发送加载命令,所述加载命令包括目标程序位置和修改代码,其中,所述加载命令是指导所述容器端通过所述目标程序位置定位处于内存中的目标程序,并在所述目标程序的执行状态处于未被使用的情况下,通过所述修改代码修改处于内存中的目标程序的。
[0018]根据本公开的实施例,其中,所述连接建立模块,用于接收来自于客户的业务系统IP和容器端ID;以及基于预设的交互协议和预设的虚拟机接口,通过所述业务系统IP和所述容器端ID,建立与所述容器端的连接。
[0019]本公开的第五个方面,提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述代码动态调整方法。
[0020]本公开的第六个方面,还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述代码动态调整方法。
[0021]本公开的第七个方面,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述代码动态调整方法。
[0022]在本公开的实施例中,可以至少达到以下有益效果:
[0023]1.通过建立好的通道,接收代理端的指令,直接对容器端中内存里加载的目标程序进行修改。克服了现有方案无法通过工具来支撑,灵活性低、落地效率低、实施成本高、投产风险高、不易推广及复用的痛点,,特别在针对应急处置的场景,能够保证对现有业务运行流畅度的情况下,完成程序逻辑的修改。
[0024]2.通过设置目标程序的执行状态,保证目标程序执行状态的是直接可以查看的,使得目标程序实施度更加自由,无需通过查看更加底层的堆栈来确保目标程序的执行状态。
附图说明
[0025]通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
[0026]图1示意性示出了根据本公开实施例的代码动态调整方法的应用场景图;
[0027]图2示意性示出了根据本公开实施例的代码动态调整方法的流程图;
[0028]图3示意性示出了根据本公开实施例的目标程序定位方法的流程图;
[0029]图4示意性示出了根据本公开实施例的代码动态修改方法的流程图;
[0030]图5示意性示出了根据本公开实施例的代码动态调整方法的流程图;
[0031]图6示意性示出了根据本公开实施例的代码动态调整装置的结构框图;
[0032]图7示意性示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码动态调整方法,所述方法应用于容器端所在设备,所述方法包括:在与代理端建立连接的情况下,监听来自于代理端的命令,所述命令包括加载命令,所述加载命令包括目标程序位置和修改代码;响应于接收到的所述加载命令,基于所述目标程序位置,找出处于内存中的目标程序,所述目标程序包括执行状态;以及在所述执行状态为当前未被使用的情况下,基于所述修改代码修改处于内存中的目标程序。2.根据权利要求1所述的方法,其中,所述响应于接收到的所述加载命令,基于所述目标程序位置,找出处于内存中的目标程序,包括:基于所述目标程序位置定位动态链接库;以及找出所述动态链接库中的目标程序。3.根据权利要求2所述的方法,其中,所述在所述执行状态为当前未被使用的情况下,基于所述修改代码修改处于内存中的目标程序,包括:获取执行环境,所述执行环境包括多个钩子函数;基于所述钩子函数建立的通道,获取所述目标程序的待修改代码;以及基于所述修改代码替换所述目标程序中的待修改代码。4.根据权利要求1所述的方法,其中,与所述代理端建立连接的方法包括:接收来自于所述代理端的监控启动指令;以及基于所述监控启动指令启动轮询监听器,所述轮询监听器是定期查看来自于所述代理端的命令的。5.根据权利要求1

4任一项所述的方法,其中,所述执行状态是全局变量的形式。6.一种代码动态调整方法,所述方法应用于代理端所在设备,所述方法包括:建立与容器端的连接;以及在与容器端建立连接的情况下,发送加载命令,所述加载命令包括目标程序位置和修改代码,其中,所述加载命令是指导所述容器端通过所述目标程序位置定位处于内存中的目标程序,并在所述目标程序的执行状态处于未被使用的情况下,通过所述修改代码修改处于内存中的目标...

【专利技术属性】
技术研发人员:蔡兵克鲁金彪杨彬徐博
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1