利索能及
我要发布
收藏
专利号: 2020103678394
申请人: 平安科技(深圳)有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种共享库文件模拟方法,其特征在于,所述共享库文件模拟方法包括:通过模拟执行框架,将待模拟共享库文件映射到所述模拟执行框架的虚拟内存中;

通过所述模拟执行框架的虚拟内存机制,将所述虚拟内存与系统内存隔离;

通过模拟执行框架中的虚拟文件系统,将对虚拟文件的访问映射到系统文件;

根据预设的函数地址,对待拦截函数的函数地址进行修改,其中,所述待拦截函数为共享库格式文件中的函数;

对预设的函数变量名和预设的函数名进行注册,以使得所述模拟执行框架中的Hook函数能够根据所述预设的函数变量名和所述预设的函数名对所述待拦截函数进行返回;

通过Objdump命令获取所述待模拟共享库文件的依赖项,并通过所述Hook函数对所述待模拟共享库文件中的所述待拦截函数进行返回,并通过模拟执行框架对所述待拦截函数返回的值进行输出,以实现对所述待模拟共享库文件进行分析;

其中,所述通过模拟执行框架,将待模拟共享库文件映射到所述模拟执行框架的虚拟内存中包括:通过Pyelftools库,对所述待模拟共享库文件进行解析,得到所述待模拟共享库文件中初始化数组的基地址和结构体指针地址;

根据所述基地址和所述结构体指针地址,确定所述初始化数组地址;

根据所述初始化数组地址,将所述初始化数组中的初始化函数映射到所述模拟执行框架的虚拟内存中;

其中,所述通过模拟执行框架中的虚拟文件系统,将对虚拟文件的访问映射到系统文件包括:根据预设的分配方式,对接口调用函数进行分配,得到预设的接口调用函数;

根据预设的虚拟文件目录,通过所述Hook函数将所述预设的接口调用函数的调用路径替换成所述预设的虚拟文件目录路径。

2.如权利要求1所述的共享库文件模拟方法,其特征在于,在所述通过Objdump命令获取所述待模拟共享库文件的依赖项,并通过所述Hook函数对所述待模拟共享库文件中的所述待拦截函数进行返回之前,包括:对所述模拟执行框架的寄存器进行访问,并检测是否存在无条件执行指令,其中,所述寄存器中包括待拦截函数编号;

若存在无条件执行指令,则读取所述寄存器中的数值;

根据所述寄存器中的数值从所述待拦截函数编号提取对应的目标待拦截函数编号;

根据所述目标待拦截函数编号确定所述待拦截函数。

3.如权利要求1所述的共享库文件模拟方法,其特征在于,所述根据预设的函数地址,对待拦截函数的函数地址进行修改包括:从预设的函数地址表中,获取所述待拦截函数地址;

根据预设的函数地址,对所述待拦截函数地址进行修改。

4.一种共享库文件模拟装置,其特征在于,所述共享库文件模拟装置包括:文件映射模块,用于通过模拟执行框架,将待模拟共享库文件映射到所述模拟执行框架的虚拟内存中;

内存隔离模块,用于通过所述模拟执行框架的虚拟内存机制,将所述虚拟内存与系统内存隔离;

访问映射模块,用于通过模拟执行框架中的虚拟文件系统,将对虚拟文件的访问映射到系统文件;

地址修改模块,用于根据预设的函数地址,对待拦截函数的函数地址进行修改,其中,所述待拦截函数为共享库格式文件中的函数;

函数注册模块,用于对预设的函数变量名和预设的函数名进行注册,以使得所述模拟执行框架中的Hook函数能够根据所述预设的函数变量名和所述预设的函数名对所述待拦截函数进行返回;

数据输出模块,用于通过Objdump命令获取所述待模拟共享库文件的依赖项,并通过所述Hook函数对所述待模拟共享库文件中的所述待拦截函数进行返回,并通过模拟执行框架对所述待拦截函数返回的值进行输出,以实现对所述待模拟共享库文件进行分析;

其中,所述文件映射模块包括:

文件解析子模块,用于通过Pyelftools库,对所述待模拟共享库文件进行解析,得到所述待模拟共享库文件中初始化数组的基地址和结构体指针地址;

地址确定子模块,用于根据所述基地址和所述结构体指针地址,确定所述初始化数组地址;

函数映射子模块,用于根据所述初始化数组地址,将所述初始化数组中的初始化函数映射到所述模拟执行框架的虚拟内存中;

其中,所述访问映射模块,还用于根据预设的分配方式,对接口调用函数进行分配,得到预设的接口调用函数;根据预设的虚拟文件目录,通过所述Hook函数将所述预设的接口调用函数的调用路径替换成所述预设的虚拟文件目录路径。

5.如权利要求4所述的共享库文件模拟装置,其特征在于,所述共享库文件模拟装置还包括:指令检测模块,用于对所述模拟执行框架的寄存器进行访问,并检测是否存在无条件执行指令,其中,所述寄存器中包括待拦截函数编号;

数值读取模块,用于当存在无条件执行指令时,则读取所述寄存器中的数值;

函数编号模块,用于根据所述寄存器中的数值从所述待拦截函数编号提取对应的目标待拦截函数编号;

函数确定模块,用于根据所述目标待拦截函数编号确定所述待拦截函数。

6.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至

3任一项所述的共享库文件模拟方法。

7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的共享库文件模拟方法。