Autor
|
Tema: Inyección en proceso externo (Leído 2,298 veces)
|
Slek Hacker
Desconectado
Mensajes: 35
El Conocimiento nos hace Libres...
|
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.  Os dejo el código para que le hecheis un ojo. http://www.multiupload.com/34PD1WS3EJSaludos y gracias de antemano.
|
|
|
En línea
|
|
|
|
bizco
Desconectado
Mensajes: 698
|
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: Inyectar ProcessHandle, GetAddr(AddressOf SMain) 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.aspxy a esto http://msdn.microsoft.com/en-us/library/aa366890%28VS.85%29.aspx
|
|
|
En línea
|
|
|
|
Slek Hacker
Desconectado
Mensajes: 35
El Conocimiento nos hace Libres...
|
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!
|
|
|
En línea
|
|
|
|
bizco
Desconectado
Mensajes: 698
|
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.
|
|
|
En línea
|
|
|
|
Slek Hacker
Desconectado
Mensajes: 35
El Conocimiento nos hace Libres...
|
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!
|
|
|
En línea
|
|
|
|
bizco
Desconectado
Mensajes: 698
|
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,
|
|
|
En línea
|
|
|
|
Slek Hacker
Desconectado
Mensajes: 35
El Conocimiento nos hace Libres...
|
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.
|
|
|
En línea
|
|
|
|
Slek Hacker
Desconectado
Mensajes: 35
El Conocimiento nos hace Libres...
|
Por favor, alguien que me ayude. estoy estancado. Tengo el code en Delphi y en C. Si lo necesitais, lo pongo.
Gracias de antemano.
|
|
|
En línea
|
|
|
|
|
|