int 远程线程注入(int pid, const char* _fullPath)
{
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
if (hProc == NULL)
return 1;
size_t dllSize = strlen(_fullPath) + 1;
LPVOID adr = VirtualAllocEx(hProc, NULL, dllSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (adr == NULL)
return 2;
if (!WriteProcessMemory(hProc, adr, _fullPath, dllSize, NULL))
return 3;
HANDLE tProc = CreateRemoteThread(hProc, NULL, 0, (LPTHREAD_START_ROUTINE)&LoadLibraryA, adr, 0, NULL);
if (tProc)
{
WaitForSingleObject(tProc, INFINITE);
CloseHandle(tProc);
MessageBoxA(NULL, "注入成功", "提示", MB_ICONASTERISK);
}
else
return 4;
VirtualFreeEx(hProc, adr, 0, MEM_RELEASE);
CloseHandle(hProc);
return 0;
}
int main(){
int error = 远程线程注入(进程PID, dll模块全路径)
if(error > 0)
}