代码之家  ›  专栏  ›  技术社区  ›  JustHobby

有人能解释一下你的特权吗?

  •  0
  • JustHobby  · 技术社区  · 8 年前

    我有Java和Python的知识,但是任何包含C语言的名字都是很难理解和学习的。最近,我尝试用NTRAISHARDRRROR在Windows中创建BSOD,并且在C++(C++)中尝试了很少(不成功的)后,转到C。

    使用来自的代码 here 我做了一个程序,导致了疯牛病。后来我试图完全理解代码,但我不明白rtladjustprivilege在做什么。

    我看到这是一种特权更改,但是在程序运行时,我没有看到管理员密码提示,尽管我使用的是用户帐户,所以我相信它不会升级为管理员特权。如果有人知道这个函数的确切作用或工作原理,请解释一下。实现方法如下:

    要导入它:

    [DllImport("ntdll.dll")]
    private static extern uint RtlAdjustPrivilege
    (
        int Privilege,
        bool bEnablePrivilege,
        bool IsThreadPrivilege,
        out bool PreviousValue
    );
    

    以后使用它:

    RtlAdjustPrivilege(19, true, false, out bool previousValue);
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   RbMm    8 年前

    SE_SHUTDOWN_PRIVILEGE -在中声明

    RtlAdjustPrivilege 打开当前进程(如果 ZwAdjustPrivilegeToken AdjustTokenPrivileges 是这个API的瘦外壳),最后关闭开放令牌。

    (

    推荐文章