[发明专利]一种堆栈还原方法和计算机系统有效
申请号: | 201310486069.5 | 申请日: | 2013-10-16 |
公开(公告)号: | CN104572046B | 公开(公告)日: | 2019-01-11 |
发明(设计)人: | 龙磊;邱金涛 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F11/36 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 贾允;肖丁 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存地址 函数调用堆栈 应用程序 偏移量 计算机系统 还原 堆栈 计算机技术领域 层级关系 调用堆栈 关系确定 函数信息 输出函数 符号化 调试 应用 | ||
1.一种堆栈还原方法,其特征在于,包括:
当计算机系统在运行应用程序时,获取所述应用程序对应的各个函数的名称和起始内存地址的对应关系;
获取所述应用程序的函数调用堆栈中第一函数的函数内存地址;
根据所述函数内存地址,及与所述函数内存地址最近的起始内存地址,确定对应第一函数的偏移量,并根据所述对应关系确定所述第一函数的名称;
输出所述函数调用堆栈的信息,所述函数调用堆栈的信息中包括所述确定的第一函数的名称和偏移量。
2.如权利要求1所述的方法,其特征在于,所述获取所述应用程序对应的各个函数的名称和起始内存地址的对应关系之前,还包括:
将堆栈还原的代码注入到所述应用程序中,所述堆栈还原的代码包括所述获取对应关系,获取函数内存地址,确定第一函数的名称和偏移量。
3.如权利要求2所述的方法,其特征在于,所述将堆栈还原的代码注入到所述应用程序中,具体包括:
确定所述应用程序的进程所在的内存空间,并将所述堆栈还原的代码注入到所述确定的内存空间;
触发所述计算机系统执行所述注入代码后的应用程序的进程。
4.如权利要求1至3任一项所述的方法,其特征在于,所述获取所述应用程序对应的各个函数的名称和起始内存地址的对应关系,具体包括:
调用获取所有类的列表函数,获取所述应用程序对应的所有函数的名称;
调用获取某个类中所有方法函数,获取所述所有函数中各个函数的起始内存地址。
5.如权利要求1至3任一项所述的方法,其特征在于,所述获取所述应用程序的函数调用堆栈中第一函数的函数内存地址,具体包括:
调用线程打印的应用程序编程接口获取所述函数调用堆栈的信息;
在所述函数调用堆栈的信息中提取所述第一函数的函数内存地址,所述第一函数包括未被符号化的函数。
6.如权利要求1至3任一项所述的方法,其特征在于,所述根据所述函数内存地址,及与所述函数内存地址最近的起始内存地址,确定对应第一函数的偏移量,具体包括:
用所述函数内存地址减去与所述函数内存地址最近的起始内存地址得到所述函数内存地址对应的第一函数的偏移量;
则所述根据所述对应关系确定所述第一函数的名称,具体包括:将所述对应关系中与所述函数内存地址最近的起始内存地址对应的函数名称,作为所述第一函数的名称。
7.一种计算机系统,其特征在于,包括:
对应关系获取单元,用于当计算机系统在运行应用程序时,获取所述应用程序对应的各个函数的名称和起始内存地址的对应关系;
内存地址获取单元,用于获取所述应用程序的函数调用堆栈中第一函数的函数内存地址;
函数信息确定单元,用于根据所述函数内存地址,及与所述函数内存地址最近的起始内存地址,确定对应第一函数的偏移量,并根据所述对应关系确定所述第一函数的名称;
输出单元,用于输出所述函数调用堆栈的信息,所述函数调用堆栈的信息中包括所述确定的第一函数的名称和偏移量。
8.如权利要求7所述的系统,其特征在于,还包括:
代码注入单元,用于将堆栈还原的代码注入到所述应用程序中,所述堆栈还原的代码包括所述获取对应关系,获取函数内存地址,确定第一函数的名称和偏移量。
9.如权利要求8所述的系统,其特征在于,所述代码注入单元,具体包括:
注入单元,用于确定所述应用程序的进程所在的内存空间,并将所述堆栈还原的代码注入到所述确定的内存空间;
触发单元,用于触发所述计算机系统执行所述注入代码后的应用程序的进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310486069.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种解锁屏幕的方法和装置
- 下一篇:一种基于UEFI的身份标识生成系统和方法