#include #include void main() { HANDLE proceso; LPVOID RemoteString; LPVOID nLoadLibrary; int pid; // OBTENEMOS EL PID DEL PROCESO // (estas apis no las he esplicado, mirad la msnd si quereis más información) HANDLE handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); PROCESSENTRY32 procinfo = { sizeof(PROCESSENTRY32) }; while(Process32Next(handle, &procinfo)) { if(!strcmp(procinfo.szExeFile, "explorer.exe")) { CloseHandle(handle); pid = procinfo.th32ProcessID; } } CloseHandle(handle); // INYECTAMOS LA DLL // (en mi caso se encuentra en H:\Dll.dll, vosotros cambiadlo a vuestro gusto) proceso = OpenProcess(PROCESS_ALL_ACCESS, false, pid); nLoadLibrary = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"),"LoadLibraryA"); RemoteString = (LPVOID)VirtualAllocEx(proceso,NULL,strlen("H:\\Dll.dll"),MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE); WriteProcessMemory(proceso,(LPVOID)RemoteString,"H:\\Dll.dll",strlen("H:\\Dll.dll"),NULL); CreateRemoteThread(proceso,NULL,NULL,(LPTHREAD_START_ROUTINE)nLoadLibrary,(LPVOID)RemoteString,NULL,NULL); CloseHandle(proceso); }