查询权限提升特权

signed int sub_57F130()
{
  HANDLE v0; // eax
  signed int result; // eax
  struct _LUID Luid; // [esp+0h] [ebp-20h]
  HANDLE TokenHandle; // [esp+8h] [ebp-18h]
  struct _TOKEN_PRIVILEGES NewState; // [esp+Ch] [ebp-14h]

  v0 = GetCurrentProcess();
  if ( !OpenProcessToken(v0, 0x28u, &TokenHandle) )
    return 0;
  if ( LookupPrivilegeValueA(0, "SeRestorePrivilege", &Luid) )
  {
    NewState.PrivilegeCount = 1;
    NewState.Privileges[0].Luid = Luid;
    NewState.Privileges[0].Attributes = 2;
    if ( AdjustTokenPrivileges(TokenHandle, 0, &NewState, 0x10u, 0, 0) )
    {
      result = 1;
    }
    else
    {
      CloseHandle(TokenHandle);
      result = 0;
    }
  }
  else
  {
    CloseHandle(TokenHandle);
    result = 0;
  }
  return result;
}

猜你喜欢

转载自www.cnblogs.com/hshy/p/11163983.html
今日推荐