如何获取进程模块中特定函数的地址进行驱动开发?

更新于
2026-10-10 07:03:18
0阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2132个文字,预计阅读时间需要9分钟。

如何获取进程模块中特定函数的地址进行驱动开发?

在《驱动开发:内核取应用层模块基地址》一文中,作者简要介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位地址,进而获取应用程序中特定模块的基地址。由于这是入门系列的一部分,内容简洁明了。

在笔者上一篇文章《驱动开发:内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通用的获取函数,本章将继续延申这个话题,并依次实现通用版GetUserModuleBaseAddress()取远程进程中指定模块的基址和GetModuleExportAddress()取远程进程中特定模块中的函数地址,此类功能也是各类安全工具中常用的代码片段。

首先封装一个lyshark.h头文件,此类头文件中的定义都是微软官方定义好的规范,如果您想获取该结构的详细说明文档请参阅微软官方,此处不做过多的介绍。

阅读全文

本文共计2132个文字,预计阅读时间需要9分钟。

如何获取进程模块中特定函数的地址进行驱动开发?

在《驱动开发:内核取应用层模块基地址》一文中,作者简要介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位地址,进而获取应用程序中特定模块的基地址。由于这是入门系列的一部分,内容简洁明了。

在笔者上一篇文章《驱动开发:内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获取到32位应用程序中特定模块的基地址,由于是入门系列所以并没有封装实现太过于通用的获取函数,本章将继续延申这个话题,并依次实现通用版GetUserModuleBaseAddress()取远程进程中指定模块的基址和GetModuleExportAddress()取远程进程中特定模块中的函数地址,此类功能也是各类安全工具中常用的代码片段。

首先封装一个lyshark.h头文件,此类头文件中的定义都是微软官方定义好的规范,如果您想获取该结构的详细说明文档请参阅微软官方,此处不做过多的介绍。

阅读全文