首页
社区
课程
招聘
[旧帖] [求助]windows7下提权遇到问题 0.00雪花
发表于: 2013-4-20 00:31 1538

[旧帖] [求助]windows7下提权遇到问题 0.00雪花

2013-4-20 00:31
1538
void UpdateToken()
{
  HANDLE hToken;
  LUID DebugNameValue;
  TOKEN_PRIVILEGES Privileges;
  DWORD dwRot;
  OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES |TOKEN_QUERY,&hToken);
  Privileges.PrivilegeCount=1;
  Privileges.Privileges[0].Luid=DebugNameValue;
  Privileges.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
  AdjustTokenPrivileges(hToken,false,&Privileges,sizeof(Privileges),NULL,&dwRot);
  CloseHandle(hToken);
}

编译的时候会有各一个警告说LUID DebugNameValue没有初始化,我自己查看了下MSDN,发现LUID其实是个结构typedef struct _LUID {  DWORD LowPart;  LONG HighPart;} LUID,  *PLUID;MSDN上是这样说的:An LUID is a 64-bit value guaranteed to be unique only on the system on which it was generated. The uniqueness of a locally unique identifier (LUID) is guaranteed only until the system is restarted.(LUID是一个64位的值保证是唯一的在它的系统生成。一个本地唯一标识符的唯一性,只能保证直到重新启动系统),我的理解是这个结构是系统赋值的,不需要再赋值了。
请各位大侠不吝赐教啊!(说的越详细越好,不胜感激

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你没弄明白MSDN的意思,LUID的确是唯一的,所以要求使用API函数获取这个值,而不是自己去生成。(“Applications must use functions and structures to manipulate LUID values.”)

但是回到代码上去DebugNameValue是你自己声明的一个LUID类型的变量,系统怎么会自动去给你赋值呢?你应该用API函数AllocateLocallyUniqueId去得到LUID值。
2013-4-20 10:29
0
游客
登录 | 注册 方可回帖
返回
//