【技术实现步骤摘要】
代码注入方法、装置、设备以及存储介质
[0001]本公开涉及计算机
,具体涉及云服务、边缘计算、人工智能、区块链等
,尤其涉及代码注入方法、装置、设备以及存储介质。
技术介绍
[0002]代码注入是将实现一定功能的代码段注入至应用程序代码中,以增加原有应用程序能够实现的功能。由于实现代码注入实质上是在应用程序运行的过程中,动态的将代码段插入到预设位置的过程。
[0003]现有的代码注入方法往往需要对源代码进行修改,这在一些无法获取到源代码的情况下难以实现。
技术实现思路
[0004]本公开提供了一种代码注入方法、装置、设备以及存储介质。
[0005]根据第一方面,提供了一种代码注入方法,包括:获取目标程序在运行时的第一代码;将第一代码转换为可编辑代码;确定可编辑代码的控制流图;根据控制流图,将第二代码注入可编辑代码中,得到第三代码;执行第三代码。
[0006]根据第二方面,提供了一种代码注入装置,包括:获取单元,被配置成获取目标程序在运行时的第一代码;转换单元,被配置成将第 ...
【技术保护点】
【技术特征摘要】
1.一种代码注入方法,包括:获取目标程序在运行时的第一代码;将所述第一代码转换为可编辑代码;确定所述可编辑代码的控制流图;根据所述控制流图,将第二代码注入所述可编辑代码中,得到第三代码;执行所述第三代码。2.根据权利要求1所述的方法,其中,所述根据所述控制流图,将第二代码注入所述可编辑代码中,得到第三代码,包括:根据所述控制流图,确定所述可编辑代码中基本块之间的跳转指令位置;将所述第二代码注入所述可编辑代码的跳转指令位置处,得到所述第三代码。3.根据权利要求1所述的方法,其中,所述根据所述控制流图,将第二代码注入所述可编辑代码中,得到第三代码,包括:根据所述可编辑代码的类型,确定第二代码的注入形式;根据所述注入形式将所述第二代码注入所述可编辑代码中,得到第三代码。4.根据权利要求1所述的方法,其中,所述执行所述第三代码,包括:将所述第三代码进行持久化;执行持久化之后的代码。5.根据权利要求4所述的方法,其中,所述将所述第三代码进行持久化,包括:将所述第三代码序列化后进行存储。6.根据权利要求4所述的方法,其中,所述将所述第三代码进行持久化,包括:将所述第三代码编译成机器码。7.根据权利要求4所述的方法,其中,所述将所述第三代码进行持久化,包括:将所述第三代码转换成与所述第一代码相同的格式。8.一种代码注入装置,包括:获取单元,被配置成获取目标程序在运行时的第一代码;转换单元,被配置成将所述第一代码转换为可编辑代码;确定单元,被配置成确定所述可编辑代码的控制流图;注入单元,被配置成根据所述控制流图,将第二代码注入所述可编辑代码中,得到第三代码;执行单元,被配置成执行所述第三...
【专利技术属性】
技术研发人员:樊冰新,陈逢锦,郑旗,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。