-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDLLFunctions.h
More file actions
175 lines (151 loc) · 5.27 KB
/
DLLFunctions.h
File metadata and controls
175 lines (151 loc) · 5.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#pragma once
#include "stdafx.h"
/*
â äàííîì ôàéëå ñîäåðæàòñÿ
îáúÿâëåíèÿ òèïîâ äëÿ ôóíêöèé, êîòîðûå
ïîäêëþ÷àþòñÿ èç äèíàìè÷åñêèõ áèáëèîòåê
*/
typedef NET_API_STATUS(_stdcall* _NetUserEnumT)(
_In_ LPCWSTR servername,
_In_ DWORD level,
_In_ DWORD filter,
_Out_ LPBYTE* bufptr,
_In_ DWORD prefmaxlen,
_Out_ LPDWORD entriesread,
_Out_ LPDWORD totalentries,
_Inout_ LPDWORD resume_handle
);
typedef NET_API_STATUS(_stdcall* _NetApiBufferFreeT)(
_In_ LPVOID Buffer
);
typedef NET_API_STATUS(_stdcall* _NetUserGetLocalGroupsT)(
_In_ LPCWSTR servername,
_In_ LPCWSTR username,
_In_ DWORD level,
_In_ DWORD flags,
_Out_ LPBYTE* bufptr,
_In_ DWORD prefmaxlen,
_Out_ LPDWORD entriesread,
_Out_ LPDWORD totalentries
);
typedef NET_API_STATUS(_stdcall* _NetUserGetGroupsT)(
_In_ LPCWSTR servername,
_In_ LPCWSTR username,
_In_ DWORD level,
_Out_ LPBYTE* bufptr,
_In_ DWORD prefmaxlen,
_Out_ LPDWORD entriesread,
_Out_ LPDWORD totalentries
);
typedef NET_API_STATUS(_stdcall* _NetUserAddT)(
_In_ LMSTR servername,
_In_ DWORD level,
_In_ LPBYTE buf,
_Out_ LPDWORD parm_err
);
typedef NET_API_STATUS(_stdcall* _NetUserDelT)(
_In_ LPCWSTR servername,
_In_ LPCWSTR username
);
typedef NET_API_STATUS(_stdcall* _NetLocalGroupAddMembersT)(
_In_ LPCWSTR servername,
_In_ LPCWSTR groupname,
_In_ DWORD level,
_In_ LPBYTE buf,
_In_ DWORD totalentries
);
typedef NET_API_STATUS(_stdcall* _NetLocalGroupDelMembersT)(
_In_ LPCWSTR servername,
_In_ LPCWSTR groupname,
_In_ DWORD level,
_In_ LPBYTE buf,
_In_ DWORD totalentries
);
typedef NET_API_STATUS(_stdcall* _NetLocalGroupAddT)(
_In_ LPCWSTR servername,
_In_ DWORD level,
_In_ LPBYTE buf,
_Out_ LPDWORD parm_err
);
typedef NET_API_STATUS(_stdcall* _NetLocalGroupDelT)(
_In_ LPCWSTR servername,
_In_ LPCWSTR groupname
);
//--------------------------------------------------------------------------------
typedef BOOL(WINAPI* _ConvertSidToStringSidT)(
_In_ PSID Sid,
_Out_ LPTSTR* StringSid
);
typedef BOOL(WINAPI* _NetLocalGroupEnumT)(LPCWSTR servername, DWORD level,
LPBYTE* bufptr, DWORD prefmaxlen,
LPDWORD entriesread,
LPDWORD totalentries,
PDWORD_PTR resumehandle);
typedef BOOL(WINAPI* _LookupAccountNameT)(
_In_opt_ LPCTSTR lpSystemName,
_In_ LPCTSTR lpAccountName,
_Out_opt_ PSID Sid,
_Inout_ LPDWORD cbSid,
_Out_opt_ LPTSTR ReferencedDomainName,
_Inout_ LPDWORD cchReferencedDomainName,
_Out_ PSID_NAME_USE peUse
);
typedef BOOL(WINAPI* _AdjustTokenPrivilegesT)(
_In_ HANDLE TokenHandle,
_In_ BOOL DisableAllPrivileges,
_In_opt_ PTOKEN_PRIVILEGES NewState,
_In_ DWORD BufferLength,
_Out_opt_ PTOKEN_PRIVILEGES PreviousState,
_Out_opt_ PDWORD ReturnLength
);
typedef NTSTATUS(_stdcall* _LsaAddAccountRightsT)(
_In_ LSA_HANDLE PolicyHandle,
_In_ PSID AccountSid,
_In_ PLSA_UNICODE_STRING UserRights,
_In_ ULONG CountOfRights
);
typedef NTSTATUS(_stdcall* _LsaRemoveAccountRightsT)(
_In_ LSA_HANDLE PolicyHandle,
_In_ PSID AccountSid,
_In_ BOOLEAN AllRights,
_In_ PLSA_UNICODE_STRING UserRights,
_In_ ULONG CountOfRights
);
typedef ULONG(_stdcall* _LsaNtStatusToWinErrorT)(
_In_ NTSTATUS Status
);
typedef NTSTATUS(_stdcall* _LsaOpenPolicyT)(
_In_ PLSA_UNICODE_STRING SystemName,
_In_ PLSA_OBJECT_ATTRIBUTES ObjectAttributes,
_In_ ACCESS_MASK DesiredAccess,
_Inout_ PLSA_HANDLE PolicyHandle
);
typedef NTSTATUS(_stdcall* _LsaEnumerateAccountRightsT)(
_In_ LSA_HANDLE PolicyHandle,
_In_ PSID AccountSid,
_Out_ PLSA_UNICODE_STRING* UserRights,
_Out_ PULONG CountOfRights
);
void Unload_Dll(void);
void Load_Dll(void);
extern HINSTANCE hNetapi32Dll;
extern HINSTANCE hAdvapi32Dll;
extern _NetUserEnumT NetUserEnumPtr;
extern _NetApiBufferFreeT NetApiBufferFreePtr;
extern _NetUserGetLocalGroupsT NetUserGetLocalGroupsPtr;
extern _NetUserGetGroupsT NetUserGetGroupsPtr;
extern _NetUserAddT NetUserAddPtr;
extern _NetUserDelT NetUserDelPtr;
extern _NetLocalGroupAddMembersT NetLocalGroupAddMembersPtr;
extern _NetLocalGroupDelMembersT NetLocalGroupDelMembersPtr;
extern _NetLocalGroupAddT NetLocalGroupAddPtr;
extern _NetLocalGroupDelT NetLocalGroupDelPtr;
extern _NetLocalGroupEnumT NetLocalGroupEnumPtr;
extern _ConvertSidToStringSidT ConvertSidToStringSidPtr;
extern _LookupAccountNameT LookupAccountNamePtr;
extern _AdjustTokenPrivilegesT AdjustTokenPrivilegesPtr;
extern _LsaAddAccountRightsT LsaAddAccountRightsPtr;
extern _LsaRemoveAccountRightsT LsaRemoveAccountRightsPtr;
extern _LsaNtStatusToWinErrorT LsaNtStatusToWinErrorPtr;
extern _LsaOpenPolicyT LsaOpenPolicyPtr;
extern _LsaEnumerateAccountRightsT LsaEnumerateAccountRightsPtr;