using System; namespace Lithnet.CredentialProvider { [Flags] public enum ConsentUIFlags { SkipSignatureVerification = 0x01, /// /// Indicates to ConsentUI that it needs to switch to the Secure Desktop /// SecureDesktop = 0x02, Unknown1 = 0x04, Unknown2 = 0x08, Unknown3 = 0x10, /// /// This flag seems to cause ConsentUI to /// skip all signature verification related code. /// SkipVerification = 0x20, /// /// Indicates that the executable file is contained within a Windows directory. /// As all the executables in System32, etc. are unsigned, ConsentUI /// uses this to toggle catalog verification, if required. /// InWindowsDirectory = 0x40, /// /// Seems to indicates to ConsentUI that automatic elevation should occur, /// and that the executable is in a safe Windows location /// AutoElevationWindows = 0x80, /// /// Like `AutoElevationWindows`, this seems indicates to ConsentUI that /// automatic elevation should occur, but that further verification /// inside ConsentUI should occur. /// AutoElevationOther = 0x100, Unknown4 = 0x200, /// /// ConsentUI uses this flag to determine if it should pass /// SIF_BASE_VERIFICATION | SIF_AUTHENTICODE_SIGNED to WTGetSignatureInfo /// PerformBaseVerification = 0x400, /// /// Indicates that the publisher is untrusted - this is what seems to trigger /// an AMSI scan (i.e., SmartScreen) /// UntrustedPublisher = 0x800, /// /// This flag seems to cause ConsentUI to skip all elevation-related code and exit. /// BlockElevation = 0x1000, /// /// Corresponds to `ConsentUIElevationType.AutomaticAdmin` /// This seems to be an instance where UAC creates a local, secondary /// account called '%username%_admin' which is used to elevate a process. /// AutomaticAdminMode = 0x2000 } }