Windows内核:检索模块内部的函数地址

时间:2018-10-20 13:42:25

标签: windows winapi kernel reverse-engineering windows-kernel

我试图在win32kfull.sys模块中的内核中调用一个函数。 我使用ZwQuerySystemInformation获得了模块的基地址。 现在,我想找出位于win32kfull.sys模块中的NtUserSendInput函数的偏移量。 当我在IDA Pro中打开win32kfull.sys并打开该函数时,我得到两个地址: IDA Pro location of NtUserSendInput

不幸的是,我不知道如何将偏移量添加到win32kfull.sys的基址中以获得函数地址。

如果有人能向我解释我现在该如何进行,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

由于NtUserSendInput是导出函数,因此,如果正确解析了函数的地址,则图像的PE格式(特别是导出目录)将使您知道该函数的地址。

这是一个更好的解决方案,从IDA Pro中获取偏移量将为您提供特定于版本的地址,这意味着我将必须为每个win32kfull.sys构建以及每次获取偏移量。有新版本需要更新驱动程序。

因此,如果您具有win32kfull.sys的基址,则可以将其视为PE结构的起始地址并对其进行解析,在线上有很多关于如何执行此操作的教程。