elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Inyeccion en otro proceso
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Inyeccion en otro proceso  (Leído 7,286 veces)
Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Inyeccion en otro proceso
« Respuesta #10 en: 26 Abril 2006, 23:30 pm »

si lo se. por eso la estructura se pone dentro de la funcion. porque obvio que una funcion cualquiera nunca inyectada dentro de otro proceso nunca va a apuntar a la direccion correcta

La estructura se le pasa como parametro a la funcion ...  en fin que estamos en el foro de VB y el codigo tendra que ser la representacion en hexadecimal de codigo en assembly.

Habria que hacer algo asi como esto para que funcionara desde C:
Código:
#include <windows.h>

typedef BOOL (__stdcall DeleteFileA_Ptr)(char *);

typedef struct _DelData
{
  DeleteFileA_Ptr *DeleteFile;
  char *file;
}DelData, *PDelData;

void funcion(PDelData Data);

void main(int argc, char **argv)
{
  int procid = atol(argv[1]);
  HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, 0, procid);
  if (hProc)
  {
    LPVOID Code = VirtualAllocEx(hProc, 0, 0x1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    LPVOID Data = VirtualAllocEx(hProc, 0, 0x1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    DWORD tid = 0;
    DelData Params;
    Params.DeleteFile = (DeleteFileA_Ptr*)GetProcAddress(GetModuleHandle("Kernel32.dll"), "DeleteFileA");
    Params.file = (char*)((BYTE*)Data) + sizeof(DelData);
    DWORD written = 0;
    char *File = "C:\\BASURA.TXT";
    WriteProcessMemory(hProc, Code, &funcion, 32 /*a ojo*/, &written);
    WriteProcessMemory(hProc, Data, &Params, sizeof(DelData), &written);
    WriteProcessMemory(hProc, ((BYTE*)Data + sizeof(DelData)), File, strlen(File), &written);
    CreateRemoteThread(hProc, 0, 0, (LPTHREAD_START_ROUTINE)Code, Data, 0, &tid);
  }
}

void funcion(PDelData Data)
{
  Data->DeleteFile(Data->file);
}


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: Inyeccion en otro proceso
« Respuesta #11 en: 27 Abril 2006, 15:13 pm »

Y si en vez de inyectar un cacho de code quiero inyectar un proceso entero??
Supongo que tendre que ejecutar el exe y copiar todo su contenido en memoria en el remote thread pero no estoy seguro...
Seria asi?


En línea

Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Inyeccion en otro proceso
« Respuesta #12 en: 27 Abril 2006, 15:20 pm »

Y si en vez de inyectar un cacho de code quiero inyectar un proceso entero??
Supongo que tendre que ejecutar el exe y copiar todo su contenido en memoria en el remote thread pero no estoy seguro...
Seria asi?

No se puede inyectar un proceso como tal. Un proceso es un contenedor de una serie de recursos (espacio de memoria virtual, codigo del ejecutable, lista de handles, pid, hilos, etc).

Lo que se puede inyectar es el codigo de un programa pero no tiene gran sentido cuando uno tiene la posibilidad de inyectar una DLL con un minimo esfuerzo. Creando un hilo remoto que llame a la funcion LoadLibrayA/W y pasandole como parametro el nombre de la libreria (VirtualAlloc + WriteProcessMemory para escribirlo en el proceso que queramos) conseguimos cargar la DLL que queramos y en la misma se implementa la funcionalidad requerida.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: Inyeccion en otro proceso
« Respuesta #13 en: 27 Abril 2006, 15:24 pm »

Citar
No se puede inyectar un proceso como tal. Un proceso es un contenedor de una serie de recursos (espacio de memoria virtual, codigo del ejecutable, lista de handles, pid, hilos, etc).
Ya sabia, pero entonces los programas k se inyectan en otro proceso inyectan el exe entero en otro proceso, eso es lo k quiero saber hacer...
En línea

Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Inyeccion en otro proceso
« Respuesta #14 en: 27 Abril 2006, 15:40 pm »

Ya sabia, pero entonces los programas k se inyectan en otro proceso inyectan el exe entero en otro proceso, eso es lo k quiero saber hacer...

Yo no conozco ningun software que haga eso, puede que los haya pero no tiene sentido, una DLL es practicamente lo mismo que un EXE (los dos son PE aunque con diferencias).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: Inyeccion en otro proceso
« Respuesta #15 en: 27 Abril 2006, 21:44 pm »

Aqui tienes un ejemplo, este packer cifra el ejecutable y permite inyectarle en un proceso.
http://www.hackerscenter.com/public/Downloads/986_NTPacker.zip

Salu2
En línea

Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Inyeccion en otro proceso
« Respuesta #16 en: 27 Abril 2006, 21:47 pm »

Esta bien pero no me voy a molestar en investigar demasiado al respecto, me parece mas bien inutil, lo logico es inyectar una DLL.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Consulta sobre Inyeccion de una dll en un proceso
Programación Visual Basic
saratoga2k 0 1,832 Último mensaje 6 Abril 2011, 00:12 am
por saratoga2k
Pegarse a otro proceso o aplicacion
Hacking
kasiko 2 2,631 Último mensaje 13 Mayo 2011, 23:33 pm
por kasiko
Pegarse a otro proceso o aplicacion
ASM
kasiko 1 2,950 Último mensaje 14 Mayo 2011, 01:59 am
por RyogiShiki
Duda Inyección DLL en proceso con varias ventanas
Programación C/C++
TomaSs 1 2,224 Último mensaje 4 Septiembre 2013, 13:23 pm
por TomaSs
Duda para impedir inyeccion en proceso ? « 1 2 »
Ingeniería Inversa
TrashAmbishion 13 10,382 Último mensaje 20 Junio 2016, 19:52 pm
por TrashAmbishion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines