首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在内核模式钩子中获取调用者SID?(windows)

如何在内核模式钩子中获取调用者SID?(windows)
EN

Stack Overflow用户
提问于 2012-11-04 02:01:18
回答 2查看 1.6K关注 0票数 6

我正在开发一个可以在windows中挂接一些功能的驱动程序(强化驱动程序,可以阻止一些操作)。问题是,我想记录试图运行这些操作的用户。

例如,我在ZwSetValueKey上放置了一个钩子,以便过滤注册表写入。

钩子工作得很好,但我不知道如何获取调用者的SID。我发现我可以使用ExGetPreviousMode确定调用者的模式(即用户模式或内核模式)。但是,如果调用者处于用户模式,我真的不确定如何确定SID。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-08 05:45:49

如果这是用户模式,您应该从GetCurrentProcessGetCurrentThread开始,然后调用GetProcessTokenGetThreadToken。这将为您提供一个访问令牌,SID can be extracted将直接从该令牌访问。在内核模型中,有用于线程的PsGetCurrentProcessZwOpenProcessTokenEx等。

下面是用户空间的等效问题:How to get Calling-Process Windows User Access Token

我还没有测试过它,但我希望它能帮助您入门。

票数 4
EN

Stack Overflow用户

发布于 2018-09-27 21:05:46

VOID SeCaptureSubjectContext(outntifs.h)可能是您正在寻找的内核模式PSECURITY_SUBJECT_CONTEXT,至少如果您有可用的ntifs.h的话。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13211970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档