📄 subauth.pas
字号:
PCypherBlock = PCYPHER_BLOCK;
PLM_OWF_PASSWORD = ^LM_OWF_PASSWORD;
{$EXTERNALSYM PLM_OWF_PASSWORD}
_LM_OWF_PASSWORD = record
data: array [0..1] of CYPHER_BLOCK;
end;
{$EXTERNALSYM _LM_OWF_PASSWORD}
LM_OWF_PASSWORD = _LM_OWF_PASSWORD;
{$EXTERNALSYM LM_OWF_PASSWORD}
TLmOwfPassword = LM_OWF_PASSWORD;
PLmOwfPassword = PLM_OWF_PASSWORD;
LM_CHALLENGE = CLEAR_BLOCK;
{$EXTERNALSYM LM_CHALLENGE}
PLM_CHALLENGE = ^LM_CHALLENGE;
{$EXTERNALSYM PLM_CHALLENGE}
NT_OWF_PASSWORD = LM_OWF_PASSWORD;
{$EXTERNALSYM NT_OWF_PASSWORD}
PNT_OWF_PASSWORD = ^NT_OWF_PASSWORD;
{$EXTERNALSYM PNT_OWF_PASSWORD}
NT_CHALLENGE = LM_CHALLENGE;
{$EXTERNALSYM NT_CHALLENGE}
PNT_CHALLENGE = ^NT_CHALLENGE;
{$EXTERNALSYM PNT_CHALLENGE}
const
USER_SESSION_KEY_LENGTH = (CYPHER_BLOCK_LENGTH * 2);
{$EXTERNALSYM USER_SESSION_KEY_LENGTH}
type
PUSER_SESSION_KEY = ^USER_SESSION_KEY;
{$EXTERNALSYM PUSER_SESSION_KEY}
_USER_SESSION_KEY = record
data: array [0..1] of CYPHER_BLOCK;
end;
{$EXTERNALSYM _USER_SESSION_KEY}
USER_SESSION_KEY = _USER_SESSION_KEY;
{$EXTERNALSYM USER_SESSION_KEY}
TUserSessionKey = USER_SESSION_KEY;
PUserSessionKey = PUSER_SESSION_KEY;
_NETLOGON_LOGON_INFO_CLASS = (
NetlogonFiller0,
NetlogonInteractiveInformation,
NetlogonNetworkInformation,
NetlogonServiceInformation,
NetlogonGenericInformation,
NetlogonInteractiveTransitiveInformation,
NetlogonNetworkTransitiveInformation,
NetlogonServiceTransitiveInformation);
{$EXTERNALSYM _NETLOGON_LOGON_INFO_CLASS}
NETLOGON_LOGON_INFO_CLASS = _NETLOGON_LOGON_INFO_CLASS;
{$EXTERNALSYM NETLOGON_LOGON_INFO_CLASS}
PNETLOGON_LOGON_IDENTITY_INFO = ^NETLOGON_LOGON_IDENTITY_INFO;
{$EXTERNALSYM PNETLOGON_LOGON_IDENTITY_INFO}
_NETLOGON_LOGON_IDENTITY_INFO = record
LogonDomainName: UNICODE_STRING;
ParameterControl: ULONG;
LogonId: OLD_LARGE_INTEGER;
UserName: UNICODE_STRING;
Workstation: UNICODE_STRING;
end;
{$EXTERNALSYM _NETLOGON_LOGON_IDENTITY_INFO}
NETLOGON_LOGON_IDENTITY_INFO = _NETLOGON_LOGON_IDENTITY_INFO;
{$EXTERNALSYM NETLOGON_LOGON_IDENTITY_INFO}
TNetlogonLogonIdentityInfo = NETLOGON_LOGON_IDENTITY_INFO;
PNetlogonLogonIdentityInfo = PNETLOGON_LOGON_IDENTITY_INFO;
PNETLOGON_INTERACTIVE_INFO = ^NETLOGON_INTERACTIVE_INFO;
{$EXTERNALSYM PNETLOGON_INTERACTIVE_INFO}
_NETLOGON_INTERACTIVE_INFO = record
Identity: NETLOGON_LOGON_IDENTITY_INFO;
LmOwfPassword: LM_OWF_PASSWORD;
NtOwfPassword: NT_OWF_PASSWORD;
end;
{$EXTERNALSYM _NETLOGON_INTERACTIVE_INFO}
NETLOGON_INTERACTIVE_INFO = _NETLOGON_INTERACTIVE_INFO;
{$EXTERNALSYM NETLOGON_INTERACTIVE_INFO}
TNetlogonInteractiveInfo = NETLOGON_INTERACTIVE_INFO;
PNetlogonInteractiveInfo = PNETLOGON_INTERACTIVE_INFO;
PNETLOGON_SERVICE_INFO = ^NETLOGON_SERVICE_INFO;
{$EXTERNALSYM PNETLOGON_SERVICE_INFO}
_NETLOGON_SERVICE_INFO = record
Identity: NETLOGON_LOGON_IDENTITY_INFO;
LmOwfPassword: LM_OWF_PASSWORD;
NtOwfPassword: NT_OWF_PASSWORD;
end;
{$EXTERNALSYM _NETLOGON_SERVICE_INFO}
NETLOGON_SERVICE_INFO = _NETLOGON_SERVICE_INFO;
{$EXTERNALSYM NETLOGON_SERVICE_INFO}
TNetlogonServiceInfo = NETLOGON_SERVICE_INFO;
PNetlogonServiceInfo = PNETLOGON_SERVICE_INFO;
PNETLOGON_NETWORK_INFO = ^NETLOGON_NETWORK_INFO;
{$EXTERNALSYM PNETLOGON_NETWORK_INFO}
_NETLOGON_NETWORK_INFO = record
Identity: NETLOGON_LOGON_IDENTITY_INFO;
LmChallenge: LM_CHALLENGE;
NtChallengeResponse: STRING;
LmChallengeResponse: STRING;
end;
{$EXTERNALSYM _NETLOGON_NETWORK_INFO}
NETLOGON_NETWORK_INFO = _NETLOGON_NETWORK_INFO;
{$EXTERNALSYM NETLOGON_NETWORK_INFO}
TNetlogonNetworkInfo = NETLOGON_NETWORK_INFO;
PNetlogonNetworkInfo = PNETLOGON_NETWORK_INFO;
PNETLOGON_GENERIC_INFO = ^NETLOGON_GENERIC_INFO;
{$EXTERNALSYM PNETLOGON_GENERIC_INFO}
_NETLOGON_GENERIC_INFO = record
Identity: NETLOGON_LOGON_IDENTITY_INFO;
PackageName: UNICODE_STRING;
DataLength: ULONG;
LogonData: PUCHAR;
end;
{$EXTERNALSYM _NETLOGON_GENERIC_INFO}
NETLOGON_GENERIC_INFO = _NETLOGON_GENERIC_INFO;
{$EXTERNALSYM NETLOGON_GENERIC_INFO}
TNetlogonGenericInfo = NETLOGON_GENERIC_INFO;
PNetlogonGenericInfo = PNETLOGON_GENERIC_INFO;
// Values for Flags
const
MSV1_0_PASSTHRU = $01;
{$EXTERNALSYM MSV1_0_PASSTHRU}
MSV1_0_GUEST_LOGON = $02;
{$EXTERNALSYM MSV1_0_GUEST_LOGON}
//function Msv1_0SubAuthenticationRoutine(LogonLevel: NETLOGON_LOGON_INFO_CLASS;
// LogonInformation: PVOID; Flags: ULONG; UserAll: PUSER_ALL_INFORMATION;
// WhichFields, UserFlags: PULONG; Authoritative: PBOOLEAN; LogoffTime,
// KickoffTime: PLARGE_INTEGER): NTSTATUS; stdcall;
//{$EXTERNALSYM Msv1_0SubAuthenticationRoutine}
type
PMSV1_0_VALIDATION_INFO = ^MSV1_0_VALIDATION_INFO;
{$EXTERNALSYM PMSV1_0_VALIDATION_INFO}
_MSV1_0_VALIDATION_INFO = record
LogoffTime: LARGE_INTEGER;
KickoffTime: LARGE_INTEGER;
LogonServer: UNICODE_STRING;
LogonDomainName: UNICODE_STRING;
SessionKey: USER_SESSION_KEY;
Authoritative: ByteBool;
UserFlags: ULONG;
WhichFields: ULONG;
UserId: ULONG;
end;
{$EXTERNALSYM _MSV1_0_VALIDATION_INFO}
MSV1_0_VALIDATION_INFO = _MSV1_0_VALIDATION_INFO;
{$EXTERNALSYM MSV1_0_VALIDATION_INFO}
TMsv10ValidationInfo = MSV1_0_VALIDATION_INFO;
PMsv10ValidationInfo = PMSV1_0_VALIDATION_INFO;
// values for WhichFields
const
MSV1_0_VALIDATION_LOGOFF_TIME = $00000001;
{$EXTERNALSYM MSV1_0_VALIDATION_LOGOFF_TIME}
MSV1_0_VALIDATION_KICKOFF_TIME = $00000002;
{$EXTERNALSYM MSV1_0_VALIDATION_KICKOFF_TIME}
MSV1_0_VALIDATION_LOGON_SERVER = $00000004;
{$EXTERNALSYM MSV1_0_VALIDATION_LOGON_SERVER}
MSV1_0_VALIDATION_LOGON_DOMAIN = $00000008;
{$EXTERNALSYM MSV1_0_VALIDATION_LOGON_DOMAIN}
MSV1_0_VALIDATION_SESSION_KEY = $00000010;
{$EXTERNALSYM MSV1_0_VALIDATION_SESSION_KEY}
MSV1_0_VALIDATION_USER_FLAGS = $00000020;
{$EXTERNALSYM MSV1_0_VALIDATION_USER_FLAGS}
MSV1_0_VALIDATION_USER_ID = $00000040;
{$EXTERNALSYM MSV1_0_VALIDATION_USER_ID}
// legal values for ActionsPerformed
MSV1_0_SUBAUTH_ACCOUNT_DISABLED = $00000001;
{$EXTERNALSYM MSV1_0_SUBAUTH_ACCOUNT_DISABLED}
MSV1_0_SUBAUTH_PASSWORD = $00000002;
{$EXTERNALSYM MSV1_0_SUBAUTH_PASSWORD}
MSV1_0_SUBAUTH_WORKSTATIONS = $00000004;
{$EXTERNALSYM MSV1_0_SUBAUTH_WORKSTATIONS}
MSV1_0_SUBAUTH_LOGON_HOURS = $00000008;
{$EXTERNALSYM MSV1_0_SUBAUTH_LOGON_HOURS}
MSV1_0_SUBAUTH_ACCOUNT_EXPIRY = $00000010;
{$EXTERNALSYM MSV1_0_SUBAUTH_ACCOUNT_EXPIRY}
MSV1_0_SUBAUTH_PASSWORD_EXPIRY = $00000020;
{$EXTERNALSYM MSV1_0_SUBAUTH_PASSWORD_EXPIRY}
MSV1_0_SUBAUTH_ACCOUNT_TYPE = $00000040;
{$EXTERNALSYM MSV1_0_SUBAUTH_ACCOUNT_TYPE}
MSV1_0_SUBAUTH_LOCKOUT = $00000080;
{$EXTERNALSYM MSV1_0_SUBAUTH_LOCKOUT}
//function Msv1_0SubAuthenticationRoutineEx(LogonLevel: NETLOGON_LOGON_INFO_CLASS;
// LogonInformation: PVOID; Flags: ULONG; UserAll: PUSER_ALL_INFORMATION;
// UserHandle: SAM_HANDLE; ValidationInfo: PMSV1_0_VALIDATION_INFO;
// ActionsPerformed: PULONG): NTSTATUS; stdcall;
//{$EXTERNALSYM Msv1_0SubAuthenticationRoutineEx}
//function Msv1_0SubAuthenticationRoutineGeneric(SubmitBuffer: PVOID;
// SubmitBufferLength: ULONG; ReturnBufferLength: PULONG;
// ReturnBuffer: PPVOID): NTSTATUS; stdcall;
//{$EXTERNALSYM Msv1_0SubAuthenticationRoutineGeneric}
//function Msv1_0SubAuthenticationFilter(LogonLevel: NETLOGON_LOGON_INFO_CLASS;
// LogonInformation: PVOID; Flags: ULONG; UserAll: PUSER_ALL_INFORMATION;
// WhichFields, UserFlags: PULONG; Authoritative: PBOOLEAN; LogoffTime,
// KickoffTime: PLARGE_INTEGER): NTSTATUS; stdcall;
//{$EXTERNALSYM Msv1_0SubAuthenticationFilter}
const
STATUS_SUCCESS = NTSTATUS($00000000);
{$EXTERNALSYM STATUS_SUCCESS}
STATUS_INVALID_INFO_CLASS = NTSTATUS($C0000003);
{$EXTERNALSYM STATUS_INVALID_INFO_CLASS}
STATUS_NO_SUCH_USER = NTSTATUS($C0000064);
{$EXTERNALSYM STATUS_NO_SUCH_USER}
STATUS_WRONG_PASSWORD = NTSTATUS($C000006A);
{$EXTERNALSYM STATUS_WRONG_PASSWORD}
STATUS_PASSWORD_RESTRICTION = NTSTATUS($C000006C);
{$EXTERNALSYM STATUS_PASSWORD_RESTRICTION}
STATUS_LOGON_FAILURE = NTSTATUS($C000006D);
{$EXTERNALSYM STATUS_LOGON_FAILURE}
STATUS_ACCOUNT_RESTRICTION = NTSTATUS($C000006E);
{$EXTERNALSYM STATUS_ACCOUNT_RESTRICTION}
STATUS_INVALID_LOGON_HOURS = NTSTATUS($C000006F);
{$EXTERNALSYM STATUS_INVALID_LOGON_HOURS}
STATUS_INVALID_WORKSTATION = NTSTATUS($C0000070);
{$EXTERNALSYM STATUS_INVALID_WORKSTATION}
STATUS_PASSWORD_EXPIRED = NTSTATUS($C0000071);
{$EXTERNALSYM STATUS_PASSWORD_EXPIRED}
STATUS_ACCOUNT_DISABLED = NTSTATUS($C0000072);
{$EXTERNALSYM STATUS_ACCOUNT_DISABLED}
STATUS_INSUFFICIENT_RESOURCES = NTSTATUS($C000009A);
{$EXTERNALSYM STATUS_INSUFFICIENT_RESOURCES}
STATUS_ACCOUNT_EXPIRED = NTSTATUS($C0000193);
{$EXTERNALSYM STATUS_ACCOUNT_EXPIRED}
STATUS_PASSWORD_MUST_CHANGE = NTSTATUS($C0000224);
{$EXTERNALSYM STATUS_PASSWORD_MUST_CHANGE}
STATUS_ACCOUNT_LOCKED_OUT = NTSTATUS($C0000234);
{$EXTERNALSYM STATUS_ACCOUNT_LOCKED_OUT}
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -