home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2471 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.8 KB  |  76 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import pywintypes
  5. import win32api
  6. import win32security
  7. import win32con
  8. import winerror
  9. from security_enums import TOKEN_GROUP_ATTRIBUTES, TOKEN_PRIVILEGE_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, TOKEN_TYPE, TOKEN_ELEVATION_TYPE
  10.  
  11. def dump_token(th):
  12.     token_type = win32security.GetTokenInformation(th, win32security.TokenType)
  13.     print 'TokenType:', token_type, TOKEN_TYPE.lookup_name(token_type)
  14.     if token_type == win32security.TokenImpersonation:
  15.         imp_lvl = win32security.GetTokenInformation(th, win32security.TokenImpersonationLevel)
  16.         print 'TokenImpersonationLevel:', imp_lvl, SECURITY_IMPERSONATION_LEVEL.lookup_name(imp_lvl)
  17.     
  18.     print 'TokenSessionId:', win32security.GetTokenInformation(th, win32security.TokenSessionId)
  19.     privs = win32security.GetTokenInformation(th, win32security.TokenPrivileges)
  20.     print 'TokenPrivileges:'
  21.     for priv_luid, priv_flags in privs:
  22.         (flag_names, unk) = TOKEN_PRIVILEGE_ATTRIBUTES.lookup_flags(priv_flags)
  23.         flag_desc = ' '.join(flag_names)
  24.         if unk:
  25.             flag_desc += '(' + str(unk) + ')'
  26.         
  27.         priv_name = win32security.LookupPrivilegeName('', priv_luid)
  28.         priv_desc = win32security.LookupPrivilegeDisplayName('', priv_name)
  29.         print '\t', priv_name, priv_desc, priv_flags, flag_desc
  30.     
  31.     print 'TokenGroups:'
  32.     groups = win32security.GetTokenInformation(th, win32security.TokenGroups)
  33.     for group_sid, group_attr in groups:
  34.         (flag_names, unk) = TOKEN_GROUP_ATTRIBUTES.lookup_flags(group_attr)
  35.         flag_desc = ' '.join(flag_names)
  36.         if unk:
  37.             flag_desc += '(' + str(unk) + ')'
  38.         
  39.         if group_attr & TOKEN_GROUP_ATTRIBUTES.SE_GROUP_LOGON_ID:
  40.             sid_desc = 'Logon sid'
  41.         else:
  42.             sid_desc = win32security.LookupAccountSid('', group_sid)
  43.         print '\t', group_sid, sid_desc, group_attr, flag_desc
  44.     
  45.     
  46.     try:
  47.         is_elevated = win32security.GetTokenInformation(th, win32security.TokenElevation)
  48.         print 'TokenElevation:', is_elevated
  49.     except pywintypes.error:
  50.         details = None
  51.         if details[0] != winerror.ERROR_INVALID_PARAMETER:
  52.             raise 
  53.         details[0] != winerror.ERROR_INVALID_PARAMETER
  54.         return None
  55.  
  56.     print 'TokenHasRestrictions:', win32security.GetTokenInformation(th, win32security.TokenHasRestrictions)
  57.     print 'TokenMandatoryPolicy', win32security.GetTokenInformation(th, win32security.TokenMandatoryPolicy)
  58.     print 'TokenVirtualizationAllowed:', win32security.GetTokenInformation(th, win32security.TokenVirtualizationAllowed)
  59.     print 'TokenVirtualizationEnabled:', win32security.GetTokenInformation(th, win32security.TokenVirtualizationEnabled)
  60.     elevation_type = win32security.GetTokenInformation(th, win32security.TokenElevationType)
  61.     print 'TokenElevationType:', elevation_type, TOKEN_ELEVATION_TYPE.lookup_name(elevation_type)
  62.     if elevation_type != win32security.TokenElevationTypeDefault:
  63.         lt = win32security.GetTokenInformation(th, win32security.TokenLinkedToken)
  64.         print 'TokenLinkedToken:', lt
  65.     else:
  66.         lt = None
  67.     return lt
  68.  
  69. ph = win32api.GetCurrentProcess()
  70. th = win32security.OpenProcessToken(ph, win32con.MAXIMUM_ALLOWED)
  71. lt = dump_token(th)
  72. if lt:
  73.     print '\n\nlinked token info:'
  74.     dump_token(lt)
  75.  
  76.