Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Slek Hacker en 27 Septiembre 2010, 20:14 pm



Título: Inyección en proceso externo
Publicado por: Slek Hacker en 27 Septiembre 2010, 20:14 pm
Bueno, pues ya he terminado la inyección, basándome en un código en C para la misma función, pero me crashea el proceso al que me inyecto. Al parecer todo va bien, pero no se qué pasa.  :huh:

Os dejo el código para que le hecheis un ojo.

http://www.multiupload.com/34PD1WS3EJ (http://www.multiupload.com/34PD1WS3EJ)

Saludos y gracias de antemano.


Título: Re: Inyección en proceso externo
Publicado por: bizco en 27 Septiembre 2010, 22:31 pm
lo he mirado por encima, pero dudo que funcione asi como lo planteas. en ningun caso estas verificando el resultado de las otras funciones y todo el proceso depende de ese resultado.

Otra cosa:

Citar
Inyectar ProcessHandle, GetAddr(AddressOf SMain)

Citar
Private Function Inyectar(ProcessHandle As Long, ByVal EntryPoint As Long)
....
..
CreateRemoteThread ProcessHandle, ByVal 0, 0, ByVal EntryPoint, ByVal Module, 0, TID

El thread lo lanzas en una direccion que si se da el caso que exista no sabes que contiene.

dale un ojo a esto http://msdn.microsoft.com/en-us/library/ms682437%28v=vs.85%29.aspx

y  a esto http://msdn.microsoft.com/en-us/library/aa366890%28VS.85%29.aspx


Título: Re: Inyección en proceso externo
Publicado por: Slek Hacker en 27 Septiembre 2010, 22:55 pm
Muchas Gracias por contestar.
Los resultados de las funciones los he comprobado yo manualmente:
Module = es como una constante, siempre sale el mismo número, tanto en Delphi como en VB6.
Size = Tamaño del ejecutable
He comprobado el PID del notepad también con el taskmanager, y los BytesWritten.
NewModue = Module, el mismo número.
Hasta he comprobado el ThreadID. Y con GetLastError no hayo nungún error.

EL SMain se encuentra en el Módulo 1, que muestra unos MsgBox para confirmar que se ha ejecutado el Thread Correctamente.

Saludos!


Título: Re: Inyección en proceso externo
Publicado por: bizco en 27 Septiembre 2010, 22:59 pm
si, se lo que hace. vuelve a mirar las partes de codigo que puse en la primera respuesta. obtienes la direccion de smain en tu proceso y lanzas el thread en otro proceso usando esa direccion...... lee los  2 enlaces que te puse.


Título: Re: Inyección en proceso externo
Publicado por: Slek Hacker en 27 Septiembre 2010, 23:28 pm
Creo que ya se a qué te refieres.
Tengo que quitarle el ImageBase a la dirección del AddressOf y sumarle NewModule?
Así obtendré la dirección en memoria del la función en el otro proceso?

Saludos!


Título: Re: Inyección en proceso externo
Publicado por: bizco en 27 Septiembre 2010, 23:31 pm
si te lees la documentacion de las funciones (los enlaces que te puse en la primera respuesta) sabras quien te da la direccion.

PD: aparte de todo eso, en el caso que obtengas la direccion de la funcion que copias tampoco funcionara,


Título: Re: Inyección en proceso externo
Publicado por: Slek Hacker en 28 Septiembre 2010, 00:07 am
Debería usar VirualFreeEx para liberar la Memoria "Commited".
Después, debería usar la api ThreadProc, pero no entiendo muy bien el inglés, y me está costando mucho saber qué hace dicha api.


Título: Re: Inyección en proceso externo
Publicado por: Slek Hacker en 1 Octubre 2010, 23:15 pm
Por favor, alguien que me ayude. estoy estancado.
Tengo el code en Delphi y en C. Si lo necesitais, lo pongo.

Gracias de antemano.