document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /**
  2. *   Definimos las funciones para preparar la estructura a inyectar junto con la función inyectadora.
  3. */
  4. #include "funcionInyectar.h"
  5.  
  6. /**
  7. *   Es la función de inicio que vamos a inyectar dentro de otro proceso.
  8. *   @param _paramInyectar* Puntero a la estructura que contiene las funciones y los datos a inyectar
  9. */
  10. void funcionInyectada(_paramInyectar *paramInyectar){
  11. /**
  12. *   Llamamos a la función MessageBox a través del puntero a función que guarda la dirección
  13. *   de dicha función.
  14. */
  15. paramInyectar->_MessageBox(NULL, paramInyectar->mensaje, paramInyectar->mensaje, MB_OK);
  16. }
  17.  
  18. /**
  19. *   Es la función que rellena/prepara la estructura con los datos necesarios a inyectar.
  20. *   @param _paramInyectar* Puntero a la estructura que contiene las funciones y los datos a inyectar
  21. */
  22. void preparaInyeccion(_paramInyectar *paramInyectar){
  23. HINSTANCE hUser;
  24.  
  25. //Limpiamos la estructura anulándola de posible basura informática
  26. ZeroMemory(paramInyectar, sizeof(_paramInyectar));
  27. //Obtenemos instancia de la librería user32.dll donde se encuentra la función MessageBox
  28. hUser = LoadLibrary("user32.dll");
  29. if(!hUser){
  30. //"Error cargar librería user32.dll
  31. return;
  32. }
  33. //Obtenemos la dirección de la función MessageBox que almacenamos en el puntero a función
  34. paramInyectar->_MessageBox = (P_MESSAGEBOX)GetProcAddress(hUser, "MessageBoxA");
  35. //Limpiamos la variable mensaje anulándola de posible basura informática
  36. memset(paramInyectar->mensaje, 0, sizeof(paramInyectar->mensaje));
  37. //Copiamos datos en la zona de la variable mensaje
  38. strcpy(paramInyectar->mensaje, "Hola, soy una función inyectada en otro proceso");
  39. //Ya tenemos nuestra estructura preparada para ser inyectada.
  40. }
');