长度
PTOKEN_PRIVILEGES PreviousState, // original state buffer 存放修改前访问权限的信息
PDWORD ReturnLength // required buffer size
);
LookupPrivilegeva lue 获取本地唯一的标识
[cpp]
BOOL LookupPrivilegeva lue(
LPCTSTR lpSystemName, // system name
LPCTSTR lpName, // privilege name
PLUID lpLuid // locally unique identifier
);
看一下封装好的函数:
[cpp]
BOOL EnablePrivilege(LPCTSTR lpszPrivilegeName, BOOL bEnable)
{
HANDLE hToken = NULL;
TOKEN_PRIVILEGES tp;
LUID luid;
if(!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY | TOKEN_READ, &hToken))
return FALSE;
if(!LookupPrivilegeva lue(NULL, lpszPrivilegeName, &luid))
return FALSE;
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = (bEnable) SE_PRIVILEGE_ENABLED : 0;
AdjustTokenPrivileges(hToken, FALSE, &tp, NULL, NULL, NULL);
CloseHandle(hToken);
return (GetLastError() == ERROR_SUCCESS);
}
本文讲的是利用远程进程来注入DLL,
DLL注入技术还有: 用注册表来注入DLL, 用windows钩子来注入DLL, 用木马DLL来注入DLL,
用CreateProces来注入代码 用木马DLL 来注入DLL
这些在后续的文章中还会讲到。