[发明专利]内存地址的查询方法及装置有效
申请号: | 201811343900.0 | 申请日: | 2018-11-13 |
公开(公告)号: | CN109460255B | 公开(公告)日: | 2022-12-02 |
发明(设计)人: | 雷凌翔 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 地址 查询 方法 装置 | ||
1.一种内存地址的查询方法,包括:
获取查询请求中包含的查询变量的类型,判断所述查询变量的类型是否属于预设的自定义类型;
若判断结果为是,根据预设的自定义脚本文件获取与所述查询变量的类型相对应的类型描述信息;
根据所述与所述查询变量的类型相对应的类型描述信息,从内存布局信息中查询与所述查询变量相对应的变量内存地址;
其中,所述类型描述信息用于定义该类型的变量的变量特征,所述内存布局信息用于存储内存空间所包含的各个内存地址及其对应的存储对象;
所述从内存布局信息中查询与所述查询变量相对应的变量内存地址的步骤,包括:
从所述内存布局信息中存储的各个存储对象中确定与所述类型描述信息描述的类型特征匹配的存储对象;
将所述存储对象的内存地址确定为所述查询变量相对应的变量内存地址。
2.根据权利要求1所述的方法,其中,所述方法执行之前,进一步包括:
预先生成所述预设的自定义脚本文件,并在所述预设的自定义脚本文件中存储与各种预设的自定义类型相对应的类型描述信息;
其中,所述类型描述信息包括以下中的至少一个:变量字长信息、和/或变量类型信息。
3.根据权利要求2所述的方法,其中,所述预设的自定义脚本文件能够根据接收到的脚本更新请求进行更新;其中,所述脚本更新请求包括:用于向所述自定义脚本文件中增加自定义类型及其对应的类型描述信息的增加类更新请求、用于向所述自定义脚本文件中删除自定义类型及其对应的类型描述信息的删除类更新请求、以及用于修改所述自定义脚本文件中已存储的自定义类型及其对应的类型描述信息的修改类更新请求。
4.根据权利要求1-3任一所述的方法,其中,所述根据预设的自定义脚本文件获取与所述查询变量的类型相对应的类型描述信息具体包括:
通过预设的脚本解析器对所述预设的自定义脚本文件进行解析,得到自定义脚本解析结果;
根据所述自定义脚本解析结果获取与所述查询变量的类型相对应的类型描述信息。
5.根据权利要求4任一所述的方法,其中,所述获取查询请求中包含的查询变量的类型具体包括:根据所述查询请求中包含的查询变量的类型标识,获取所述查询请求中包含的查询变量的类型;
且所述预设的自定义类型包括以下中的至少一个:结构体类型、共用体类型、枚举类型、以及类类型。
6.根据权利要求5所述的方法,其中,所述根据所述与所述查询变量的类型相对应的类型描述信息,从内存布局信息中查询与所述查询变量相对应的变量内存地址具体包括:
根据所述与所述查询变量的类型相对应的类型描述信息,从所述内存布局信息中查询与所述查询变量相对应的目标内存地址;
当查询到的目标内存地址为多个时,修改所述查询变量的变量值,判断各个目标内存地址对应的存储数值是否发生变化,根据判断结果从多个目标内存地址中选择一个目标内存地址作为与所述查询变量相对应的变量内存地址。
7.根据权利要求6所述的方法,其中,所述查询请求中进一步包含:查询变量所对应的应用标识、和/或查询变量的变量属性信息;则所述根据所述与所述查询变量的类型相对应的类型描述信息,从内存布局信息中查询与所述查询变量相对应的变量内存地址具体包括:
结合所述应用标识和/或变量属性信息,确定与所述查询变量相对应的内存布局信息,从所述与所述查询变量相对应的内存布局信息中查询与所述查询变量相对应的变量内存地址。
8.根据权利要求7所述的方法,其中,所述自定义脚本文件为Lua脚本文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811343900.0/1.html,转载请声明来源钻瓜专利网。