[发明专利]一种系统库的访问方法、装置以及计算机可读存储介质有效
申请号: | 202010093417.2 | 申请日: | 2020-02-14 |
公开(公告)号: | CN111309396B | 公开(公告)日: | 2023-08-15 |
发明(设计)人: | 朴英敏 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京中知法苑知识产权代理有限公司 11226 | 代理人: | 李明;赵吉阳 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 系统 访问 方法 装置 以及 计算机 可读 存储 介质 | ||
1.一种系统库的访问方法,其特征在于,所述访问方法包括:
响应于无法通过调用系统接口获取动态库中待查询符号的运行地址信息,通过调用系统接口获取应用进程中加载的各动态库的动态库标识和程序头信息;
根据已知的所述待查询符号所属目标动态库的动态库标识,与获取的所述各动态库的动态库标识进行比对,从而从获取的所述各动态库的程序头信息中,查找到所述目标动态库的程序头信息;
根据所述待查询符号对应的用于查询的符号标识,和查找到的所述目标动态库的程序头信息,确定所述待查询符号的运行地址信息。
2.根据权利要求1所述的访问方法,其特征在于,根据所述待查询符号的符号标识,和查找到的所述目标动态库的程序头信息,确定所述待查询符号的运行地址信息,包括:
基于查找到的所述目标动态库的程序头信息,计算得到符号运行起始地址信息,和所述目标动态库的动态Dynamic段信息;
基于所述Dynamic段信息,和所述待查询符号的符号标识,确定所述待查询符号的偏移信息;
基于所述符号运行起始地址信息和所述待查询符号的偏移信息,确定所述待查询符号的运行地址信息。
3.根据权利要求2所述的方法,其特征在于,基于所述Dynamic段信息,和所述待查询符号的符号标识,确定所述待查询符号的偏移信息,包括:
基于所述Dynamic段信息,查找到符号表;
基于所述待查询符号的符号标识,从所述符号表中查找到所述待查询符号的偏移信息。
4.根据权利要求3所述的方法,其特征在于,基于所述待查询符号的符号标识,从所述符号表中查找到所述待查询符号的偏移信息,包括:
基于所述Dynamic段信息,查找到哈希表;并基于所述待查询符号的符号标识计算哈希值;
基于所述哈希值从所述哈希表中查找到所述待查询符号的偏移信息在所述符号表中的位置信息,并基于该位置信息,从所述符号表中查找到所述待查询符号的偏移信息。
5.根据权利要求2~4任一所述的方法,其特征在于,所述偏移信息包括运行地址偏移信息;
所述基于所述符号运行起始地址信息和所述待查询符号的偏移信息,确定所述待查询符号的运行地址信息,包括:
基于所述符号运行起始地址信息和所述运行地址偏移信息,确定所述待查询符号的运行地址信息。
6.根据权利要求5所述的方法,其特征在于,所述偏移信息还包括符号标识地址偏移信息;
所述方法还包括:
基于所述Dynamic段信息,查找到字符串表地址信息;
基于所述符号标识地址偏移信息,和所述字符串表地址信息,查找到与所述运行地址信息对应的符号标识;
判断查找到的与所述运行地址信息对应的符号标识与所述待查询符号对应的用于查询的符号标识是否一致;
若一致,则基于确定的所述运行地址信息运行所述待查询符号。
7.一种系统库的访问装置,其特征在于,所述装置包括:
获取模块,用于响应于无法通过调用系统接口获取动态库中待查询符号的运行地址信息,通过调用系统接口获取应用进程中加载的各动态库的动态库标识和程序头信息;
查找模块,用于根据已知的所述待查询符号所属目标动态库的动态库标识,与获取的所述各动态库的动态库标识进行比对,从而从获取的所述各动态库的程序头信息中,查找到所述目标动态库的程序头信息;
确定模块,用于根据所述待查询符号对应的用于查询的符号标识,和查找到的所述目标动态库的程序头信息,确定所述待查询符号的运行地址信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010093417.2/1.html,转载请声明来源钻瓜专利网。