Files
hfiref0x 642d37aa13 v 3.7.0
As of version 3.7.0, methods "fixed" between 3.5.0 and 3.7.0 have been removed from UACMe methods table.
If you need them, use the v3.6.x_plus branch
The code for these methods is still available in the current branch for historical purposes.
2026-05-21 21:59:05 +07:00

144 lines
4.7 KiB
C

/*******************************************************************************
*
* (C) COPYRIGHT AUTHORS, 2014 - 2026
*
* TITLE: METHODS.H
*
* VERSION: 3.70
*
* DATE: 21 May 2026
*
* Prototypes and definitions for UAC bypass methods table.
*
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
* PARTICULAR PURPOSE.
*
*******************************************************************************/
#pragma once
typedef enum _UCM_METHOD {
UacMethodTest = 0, //+
UacMethodSysprep1 = 1,
UacMethodSysprep2,
UacMethodOobe,
UacMethodRedirectExe,
UacMethodSimda,
UacMethodCarberp1,
UacMethodCarberp2,
UacMethodTilon,
UacMethodAVrf,
UacMethodWinsat,
UacMethodShimPatch,
UacMethodSysprep3,
UacMethodMMC1,
UacMethodSirefef,
UacMethodGeneric,
UacMethodGWX,
UacMethodSysprep4,
UacMethodManifest,
UacMethodInetMgr,
UacMethodMMC2,
UacMethodSXS,
UacMethodSXSConsent,
UacMethodDISM, //+
UacMethodComet,
UacMethodEnigma0x3,
UacMethodEnigma0x3_2,
UacMethodExpLife,
UacMethodSandworm,
UacMethodEnigma0x3_3,
UacMethodWow64Logger,
UacMethodEnigma0x3_4,
UacMethodUiAccess, //+
UacMethodMsSettings, //+
UacMethodDiskSilentCleanup, //+
UacMethodTokenMod,
UacMethodJunction,
UacMethodSXSDccw,
UacMethodHakril, //+
UacMethodCorProfiler, //+
UacMethodCOMHandlers,
UacMethodCMLuaUtil, //+
UacMethodFwCplLua,
UacMethodDccwCOM, //+
UacMethodVolatileEnv,
UacMethodSluiHijack,
UacMethodBitlockerRC,
UacMethodCOMHandlers2,
UacMethodSPPLUAObject,
UacMethodCreateNewLink,
UacMethodDateTimeWriter,
UacMethodAcCplAdmin,
UacMethodDirectoryMock,
UacMethodShellSdclt, //+
UacMethodEgre55,
UacMethodTokenModUiAccess, //+
UacMethodShellWSReset,
UacMethodSysprep5,
UacMethodEditionUpgradeMgr,
UacMethodDebugObject, //+
UacMethodGlupteba,
UacMethodShellChangePk, //+
UacMethodMsSettings2, //+
UacMethodNICPoison, //+
UacMethodIeAddOnInstall, //+
UacMethodWscActionProtocol,
UacMethodFwCplLua2,
UacMethodMsSettingsProtocol,//+
UacMethodMsStoreProtocol, //+
UacMethodPca,
UacMethodCurVer, //+
UacMethodNICPoison2, //+
UacMethodMsdt, //+
UacMethodDotNetSerial,
UacMethodVFServerTaskSched, //+
UacMethodVFServerDiagProf, //+
UacMethodIscsiCpl, //+
UacMethodAtlHijack, //+
UacMethodSspiDatagram,
UacMethodTokenModUiAccess2,
UacMethodRequestTrace,
UacMethodQuickAssist, //+
UacMethodCleanMgrAdmin, //+
UacMethodMax,
UacMethodInvalid = 0xabcdef
} UCM_METHOD;
typedef struct _UCM_METHOD_AVAILABILITY {
ULONG MinumumWindowsBuildRequired; //if the current build less this value this method is not working here
ULONG MinimumExpectedFixedWindowsBuild; //if the current build equal or greater this value this method is not working here or fixed
} UCM_METHOD_AVAILABILITY;
typedef struct tagUCM_PARAMS_BLOCK {
UCM_METHOD Method;
PVOID PayloadCode;
ULONG PayloadSize;
} UCM_PARAMS_BLOCK, *PUCM_PARAMS_BLOCK;
typedef NTSTATUS(CALLBACK *PUCM_API_ROUTINE)(
_In_ PUCM_PARAMS_BLOCK Parameter
);
#define UCM_API(n) NTSTATUS CALLBACK n( \
_In_ PUCM_PARAMS_BLOCK Parameter)
typedef struct _UCM_API_DISPATCH_ENTRY {
UCM_METHOD MethodId;
PUCM_API_ROUTINE Routine; //method to execute
UCM_METHOD_AVAILABILITY Availability; //min and max supported Windows builds
ULONG PayloadResourceId; //which payload dll must be used
BOOL Win32OrWow64Required;
BOOL DisallowWow64;
BOOL SetParameters; //need shared parameters to be set
} UCM_API_DISPATCH_ENTRY, *PUCM_API_DISPATCH_ENTRY;
#include "elvint.h"
#include "routines.h"
#include "comsup.h"
#include "tests\test.h"
NTSTATUS MethodsManagerCall(
_In_ UCM_METHOD Method);