总结:
DLL注入主要有几个步骤1,提升当前进程的权限(提升权限后才能获取宿主进程的句柄)
2,通过进程IP 获取宿主进程的句柄
3,在宿主进程内申请足够的空间
4,把DLL地址写入到宿主进程里
5,在宿主进程里创建线程(创建远程线程)
6,运行线程
7, 注入成功
//进程提权
bool enableDebugPriv()
{
HANDLE hToken;
LUID debugNameValue;
TOKEN_PRIVILEGES tkp;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS,&hToken))
{
return FALSE;
}
//提升到SE_DEBUG_NAME权限
if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &debugNameValue))
{
CloseHandle(hToken);
return FALSE;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = debugNameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges