Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: naderST en 26 Julio 2011, 18:31 pm



Título: Inyección DLL (No inyecta)
Publicado por: naderST en 26 Julio 2011, 18:31 pm
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
  1.  
  2. void inyectar(const char * dll, const char * proceso){
  3.    DWORD  pId = pID(proceso);
  4.    HANDLE hProceso = OpenProcess(PROCESS_ALL_ACCESS, false, pId);
  5.  
  6.    printf("DLL a inyectar: %s\nProceso: %d-%s\n", dll, pId,proceso);
  7.  
  8.    if(hProceso != NULL){
  9.        LPVOID nLoadLibrary = (LPVOID)GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
  10.  
  11.        if(nLoadLibrary == NULL)
  12.            printf("LoadLibrary error\n.");
  13.  
  14.        LPVOID remoto = VirtualAllocEx(hProceso, NULL, strlen(dll), MEM_COMMIT|MEM_RESERVE,PAGE_EXECUTE_READWRITE);
  15.  
  16.        if(remoto == NULL)
  17.            printf("Error reservando la memoria.\n");
  18.  
  19.        WriteProcessMemory(hProceso, (LPVOID)remoto, dll, strlen(dll), NULL);
  20.  
  21.        CreateRemoteThread(hProceso, NULL, NULL, (LPTHREAD_START_ROUTINE)nLoadLibrary, (LPVOID)remoto, NULL, NULL);
  22.        CloseHandle(hProceso);
  23.    }
  24. }
  25.