Ver Mensaje Individual
  #14  
Antiguo 22-02-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Reputación: 24
ArdiIIa Va por buen camino
A ver roman si en pocas palabras de lo hago un poco legible....
La función main, es el trozo de código que será inyectado, en él podrás introducir cualquier cosa que se te ocurra... Procedures... etc.. en este caso no hace nada en especial, sino que únicamente se pone a recibir mensajes y procesarlos...

El procedimiento inject será el encargado de:
  • Calcular la memoria necesaria para el proceso a inyectar
  • Reservar esa memoria atendiendo a los parámetros (PAGE_EXECUTE_READWRITE)....
  • Escribir en la memoria reservada el proceso (función main)
  • Y finamlente lanzar el proceso.
Adicionalmente en ese mismo proceso, lo que hace es esperar un poquito y mandar un par de mensajes de prueba al proceso YA inyectado. En este punto te aclaro que no tendría mucho sentido, y que lo he puesto a modo de ejemplo, sin embargo si es otra aplicación la que coge los parámetros de ubicación del proceso; esa otra aplicación debería ser la encargada de mandar los mensajes al proceso inyectado.
Por último y también a modo de ejemplo el programa en su ejecución lo que hace es...
  • Lanzar el Notepad
  • Buscar el handle del proceso
  • Y finamente inyecta el proceso.
Es obvio que si lo que queremos es un proceso tal como el "explorer.exe, winlogon.exe" o similar, no hemos de lanzar nada, sino simplemente buscar ahí e inyectar.
Cita:
Ok. Suena razonable. Mmm.. ¿qué pasaría si no lo ponemos? ¿Cómo es que podría interferir? ¿Acaso windows puede asignar el mismo pedazo de memoria a dos procesos?
$IMAGEBASE controla la dirección de la carga por defecto del objeto cargado, pero de hecho, señalo que el proceso de inyección busca y reserva memoria (ver VirtualAllocEx) para el proceso a inyectar, por lo cual entiendo que no hay ninguna interferencia. Es mas si se anula esa directiva, el programa funcionaría igualmente, lo que ocurre, es que precisamente este método está basado en la inyección de una DLL y en ese caso, realmente si que resultaría necesaria.

Espero aclararte algo roman.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita