如何通过长尾获取进程模块中函数的地址?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2122个文字,预计阅读时间需要9分钟。
在文章《驱动开发:内核提取应用层模块基地址》中,作者简要介绍了如何通过遍历PLIST_ENTRY32链表的方式,获取到32位应用程序中特定模块的基地址。由于这是入门系列的一部分,内容相对简单易懂。
在笔者上一篇文章《驱动开发:内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通用的获取函数,本章将继续延申这个话题,并依次实现通用版GetUserModuleBaseAddress()取远程进程中指定模块的基址和GetModuleExportAddress()取远程进程中特定模块中的函数地址,此类功能也是各类安全工具中常用的代码片段。
首先封装一个lyshark.h头文件,此类头文件中的定义都是微软官方定义好的规范,如果您想获取该结构的详细说明文档请参阅微软官方,此处不做过多的介绍。
本文共计2122个文字,预计阅读时间需要9分钟。
在文章《驱动开发:内核提取应用层模块基地址》中,作者简要介绍了如何通过遍历PLIST_ENTRY32链表的方式,获取到32位应用程序中特定模块的基地址。由于这是入门系列的一部分,内容相对简单易懂。
在笔者上一篇文章《驱动开发:内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通用的获取函数,本章将继续延申这个话题,并依次实现通用版GetUserModuleBaseAddress()取远程进程中指定模块的基址和GetModuleExportAddress()取远程进程中特定模块中的函数地址,此类功能也是各类安全工具中常用的代码片段。
首先封装一个lyshark.h头文件,此类头文件中的定义都是微软官方定义好的规范,如果您想获取该结构的详细说明文档请参阅微软官方,此处不做过多的介绍。

