[发明专利]目标函数定位方法及装置有效
申请号: | 201410231453.5 | 申请日: | 2014-05-28 |
公开(公告)号: | CN105224346B | 公开(公告)日: | 2019-11-29 |
发明(设计)人: | 邱金涛;龙磊 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 11018 北京德琦知识产权代理有限公司 | 代理人: | 谢安昆;宋志强<国际申请>=<国际公布> |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 目标 函数 定位 方法 装置 | ||
本发明提供一种目标函数定位方法及装置。本发明目标函数定位方法,包括:在第一进程处理完毕之后,确定待跟踪的目标函数在第一进程中的第一地址,根据第一地址以及第一进程的动态函数库加载列表确定目标函数所在的函数库,根据函数库的第一地址范围确定第一地址相对于第一地址范围的端点地址的地址偏移量;在处理第二进程的过程中,根据第二进程的动态函数库加载列表确定函数库的第二地址范围,根据第二地址范围的端点地址以及地址偏移量确定目标函数在第二进程中的第二地址。本发明,通过确定目标函数的地址相对于该目标函数所在的函数库地址范围端点地址的地址偏移量,实现了对目标函数的定位,解决了现有技术中无法定位目标函数的技术问题。
技术领域
本发明涉及计算机技术,尤其涉及一种目标函数定位方法及装置。
背景技术
位置空间配置随机加载(Address space layout randomization,简称ASLR),又称为位置空间布局随机化。是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,为资料随机分配地址。
在ASLR机制下,不同进程的处理过程中,其对应的动态函数库加载列表是不断动态变化的,即动态函数库加载列表中各函数库所对应的地址范围是不断变化的。相应地,函数库中各函数的地址也是不断变化的。
由于在不同进程中,目标函数的地址不断变化,使得在进行调试软件时,或者,在运行的软件发生崩溃后,很难对目标函数进行追踪。如何在ASLR机制下定位目标函数是一个亟待解决的问题。
发明内容
本发明提供一种目标函数定位方法及装置,以克服现有技术中难以定位目标函数的技术问题。
本发明提供一种目标函数定位方法,包括:
在第一进程处理完毕之后,确定待跟踪的目标函数在所述第一进程中的第一地址;
根据所述第一地址以及所述第一进程的动态函数库加载列表,确定所述目标函数所在的函数库;
根据所述函数库的第一地址范围,确定所述第一地址相对于所述第一地址范围的端点地址的地址偏移量;
在处理第二进程的过程中,根据所述第二进程的动态函数库加载列表,确定所述函数库的第二地址范围;
根据所述第二地址范围的端点地址以及所述地址偏移量,确定所述目标函数在所述第二进程中的第二地址。
进一步地,所述确定待跟踪的目标函数在所述第一进程中的第一地址,包括:
获取第一进程的运行结果,所述运行结果中包含运行错误的函数地址,所述函数地址为待跟踪的目标函数在所述第一进程中的第一地址。
进一步地,所述端点地址为地址范围的首地址或者尾地址。
本发明还提供一种目标函数定位装置,包括:
第一确定模块,用于在第一进程处理完毕之后,确定待跟踪的目标函数在所述第一进程中的第一地址;
第二确定模块,用于根据所述第一地址以及所述第一进程的动态函数库加载列表,确定所述目标函数所在的函数库;
第三确定模块,用于根据所述函数库的第一地址范围,确定所述第一地址相对于所述第一地址范围的端点地址的地址偏移量;
第四确定模块,用于在处理第二进程的过程中,根据所述第二进程的动态函数库加载列表,确定所述函数库的第二地址范围;
第五确定模块,用于根据所述第二地址范围的端点地址以及所述地址偏移量,确定所述目标函数在所述第二进程中的第二地址。
进一步地,所述第一进程处理模块,具体用于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410231453.5/2.html,转载请声明来源钻瓜专利网。