13,825
社区成员
发帖
与我相关
我的任务
分享
// HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);
HANDLE hProcess = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_VM_OPERATION | PROCESS_VM_WRITE, FALSE, dwProcessId);
if(hProcess == NULL)
{
ShowMessage("失败");
}
else
{
ShowMessage("成功");
ShowMessage(GetLastError()); // 真灵异!!!!!
}
LPVOID pBuffer = VirtualAllocEx(hProcess, NULL, MAX_PATH, MEM_COMMIT, PAGE_READWRITE);
BOOL Ret = WriteProcessMemory(hProcess, pBuffer, (LPVOID)lpszLibName, strlen(DLLPath)+1, NULL);
PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA");
HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, pfnThreadRtn, pBuffer, 8192, NULL);
WaitForSingleObject(hThread, INFINITE);
VirtualFreeEx(hProcess, pBuffer, 0, MEM_RELEASE);
CloseHandle(hThread);
CloseHandle(hProcess);