[发明专利]一种函数调用路径获取的方法和相关装置有效
| 申请号: | 201810800298.2 | 申请日: | 2018-07-20 |
| 公开(公告)号: | CN110737465B | 公开(公告)日: | 2023-09-22 |
| 发明(设计)人: | 周志刚 | 申请(专利权)人: | 深圳市大梦龙途网络科技有限公司 |
| 主分类号: | G06F8/75 | 分类号: | G06F8/75 |
| 代理公司: | 深圳市恒程创新知识产权代理有限公司 44542 | 代理人: | 赵爱蓉 |
| 地址: | 518000 广东省深圳市南山区粤海*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 函数 调用 路径 获取 方法 相关 装置 | ||
1.一种函数调用路径获取的方法,所述方法应用于Windows系统,其特征在于,包括:
调用应用程序编程接口API中的EnumProcessModule函数获取当前进程中加载的所有模块的模块信息,所述模块信息包括内存起始地址、内存结束地址和模块的标识信息;
通过标准模板库STL中的链表listModuleInfo存储所述所有模块的模块信息;
获取核心函数的调用链路,所述调用链路与所述核心函数的内存地址对应;
将所述核心函数的调用链路包含于try_except 函数中以进行读取操作;
当所述读取操作正常执行时,确定获取到的所述核心函数的调用链路是否存在于链路存储集合中;
当所述核心函数的调用链路不存在于所述链路存储集合中时,通过所述STL中的数组VectorDWORD将所述核心函数的调用链路保存在所述链路存储集合中;
所述通过所述STL中的数组VectorDWORD将所述核心函数的调用链路保存在所述链路存储集合之后,所述方法还包括:
根据所述核心函数的调用链路查询所述调用链路对应的模块信息;
所述获取核心函数的调用链路之前,所述方法还包括:
编写GetModuleNameByAddress函数,所述GetModuleNameByAddress用于传入所述核心函数的内存地址并查询所述内存地址所在的进程中所属模块。
2.根据权利要求1所述的方法,其特征在于,所述根据所述核心函数的调用链路查询所述调用链路对应的模块信息包括:
编写所述调用链路的第一迭代器,所述第一迭代器的赋值为所述调用链路的头结点;
编写for循环函数,并根据所述第一迭代器遍历所述链路存储集合,以获取所述核心函数的调用地址;
根据所述核心函数的调用地址查询与所述核心函数的调用地址对应的模块信息。
3.根据权利要求1所述的方法,其特征在于,所述通过调用API中的EnumProcessModule函数获取当前进程中加载的所有模块的模块信息包括:
调用所述API中的OpenProcess函数以打开所述当前进程的句柄;
调用所述API中的GetModuleInformation函数获取所述所有模块的内存起始地址和内存结束地址;
调用所述API中的GetModuleFileNameEx函数获取所述所有模块的标识信息;
调用所述EnumProcessModule函数,并根据所述当前进程的句柄和存放所述句柄的数组, 获取所述所有模块的模块信息。
4.根据权利要求3所述的方法,其特征在于,所述通过标准模板库STL中的链表listModuleInfo存储所述所有模块的模块信息包括:
将所述所有模块的内存起始地址存储在Data.ModuleStart中,所述所有模块的内存结束地址存储在Data.ModuleEnd中,所述所有模块的标识信息存储在Data.ModuleEnd中,所述Data.ModuleStart、所述Data.ModuleEnd和所述Data.ModuleEnd包含于Data结构中;
通过所述链表listModuleInfo的接口将所述Data结构中的数据存储到所述链表listModuleInfo中。
5.根据权利要求1所述的方法,其特征在于,所述编写GetModuleNameByAddress函数包括:
编写所述调用链路的第二迭代器,所述第二迭代器的赋值为所述链表listModuleInfo头的指针;
判断传入所述核心函数的内存地址是否大于所述内存起始地址且小于所述内存结束地址;
若是,则确定传入所述核心函数的内存地址对应的模块,并返回所述模块的标识信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市大梦龙途网络科技有限公司,未经深圳市大梦龙途网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810800298.2/1.html,转载请声明来源钻瓜专利网。





