Inyección DLL (No inyecta)

Iniciado por naderST, 26 Julio 2011, 18:31 PM

0 Miembros y 1 Visitante están viendo este tema.

naderST

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:

Código (cpp) [Seleccionar]


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);
   }
}