【问题标题】:find base address of current procrss in kernel space在内核空间中查找当前进程的基地址
【发布时间】:2011-04-12 07:56:11
【问题描述】:

您好,我将转储内核驱动程序中的其他进程

并使用 KeStackAttachProcess 更改驱动程序当前上下文

用户态地址改变后如何找到当前进程的基地址 我需要将其转换为 PIMAGE_DOS_HEADER 的基地址(并解析它以查找部分) 可以用PEB吗?

还有其他解决方案吗?

【问题讨论】:

    标签: windows kernel driver dump portable-executable


    【解决方案1】:

    为此有一个特殊的 API 函数:

    NTKERNELAPI
    PVOID
    PsGetProcessSectionBaseAddress(
        __in PEPROCESS Process
        );
    

    您可以在 EPROCESS 结构中使用 SectionBaseAddress 字段:

    +0x128 SectionBaseAddress : 0x00400000 Void
    

    不同的操作系统版本可能会有所不同。

    【讨论】:

    • 我在 WDK 中找不到 PsGetProcessSectionBaseAddress,它是 undoc 吗?使用它可以吗?
    • 是的,它是 undoc。只需检查您要支持的操作系统版本上是否存在此功能。它存在于我的 w2k3 和 w7 机器上,但我不确定早期的系统。
    猜你喜欢
    • 2013-03-27
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 2014-06-28
    • 1970-01-01
    相关资源
    最近更新 更多