Buenas a todos ayer estuve viendo en el foro temas sobre inyección DLL, pero me puse a probar un código que encontré en el foro y no me funcionó. Aquí se los dejo si ven el problema háganme saber:
void inyectar(const char * dll, const char * proceso){
DWORD pId = pID(proceso);
HANDLE hProceso = OpenProcess(PROCESS_ALL_ACCESS, false, pId);
printf("DLL a inyectar: %s\nProceso: %d-%s\n", dll, pId,proceso);
if(hProceso != NULL){
LPVOID nLoadLibrary = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
if(nLoadLibrary == NULL)
printf("LoadLibrary error\n.");
LPVOID remoto = VirtualAllocEx(hProceso, NULL, strlen(dll), MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);
if(remoto == NULL)
printf("Error reservando la memoria.\n");
WriteProcessMemory(hProceso, (LPVOID)remoto, dll, strlen(dll), NULL);
CreateRemoteThread(hProceso, NULL, NULL, (LPTHREAD_START_ROUTINE)nLoadLibrary, (LPVOID)remoto, NULL, NULL);
CloseHandle(hProceso);
}
}