elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
11 Octubre 2008, 07:22  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderadores: Hendrix, E0N)
| | |-+  Practica: Modificando un PE a mano e inyectando codigo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 Ir Abajo Imprimir
Autor Tema: Practica: Modificando un PE a mano e inyectando codigo  (Leído 1716 veces)
Hendrix
Moderador
*****
Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Practica: Modificando un PE a mano e inyectando codigo
« en: 14 Julio 2007, 22:49 »

Bueno, me a dado por hacer esto esta tarde y e conseguido a mano cambiar el entry point del ejecutable mediante cambios en los opcodes del ejecutable en disco, e echo que me saltase a una region de la sección .txt que estaba vacia....y consegui inyectar dentro de esto unos cuantos opcodes, pero el espacio es limitado....y segun tengo entendido, el codigo solo puede ir dentro de la sección .txt, asi que, hay algun metodo (en C/C++ o en otro lengauje, da igual) para reservar mas espacio en la sección .txt?? ya que no me quiero cargar el ejecutable, solo inyectar codigo en el ejecutable en disco.

PD: lo de cambiar el entry e inyectar codigo en la sección .txt sin substituir ningun opcode necesario lo e echo en VB..esto ya de por si tiene merito  :xD aunque una vez pueda portarlo lo portare o a C++ o a C#. 

Please, help me.  :xD

Un Saludo.  ;)

En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

sch3m4
Colaborador

Desconectado Desconectado

Mensajes: 1.534

Nihil est in intelectu quod prius not fuerit insen


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #1 en: 15 Julio 2007, 03:41 »

No estoy muy puesto en el tema de la estructura de ejecutables, pero si escribes al final del ejecutable, el fichero funciona corréctamente, es decir, que si le añades tu código al final del ejecutable, en el entry point, le metes un salto a la dirección en la que empieza tu código, se ejecutará. Pero al final has de hacer otro salto a la dirección del archivo en la que comienza el código del propio ejecutable para que también se ejecute.

Se pueden hacer muchas cosas con esto  ;)
En línea

Proyecto Open Source (GPLv3) - PExtractor v0.2

"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.(...)"
®®
Colaborador

Desconectado Desconectado

Mensajes: 5.267


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #2 en: 15 Julio 2007, 11:22 »

y tb puedes escribir en otras secciones no necesariamente en text, puedes hasta añadirle tu propia sección a la cabecera y meter codigo.
En línea
Hendrix
Moderador
*****
Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #3 en: 15 Julio 2007, 20:09 »

No estoy muy puesto en el tema de la estructura de ejecutables, pero si escribes al final del ejecutable, el fichero funciona corréctamente, es decir, que si le añades tu código al final del ejecutable, en el entry point, le metes un salto a la dirección en la que empieza tu código, se ejecutará. Pero al final has de hacer otro salto a la dirección del archivo en la que comienza el código del propio ejecutable para que también se ejecute.

Se pueden hacer muchas cosas con esto  ;)

Esto no se puede, lo intente y se sale de memoria, es decir, es archivo que se carga en memoria se carga hasta un cierto punto, si le digo que salte a una region donde en teoria no tiene que haber codigo se sale de la memoria.

y tb puedes escribir en otras secciones no necesariamente en text, puedes hasta añadirle tu propia sección a la cabecera y meter codigo.

Si, eso lo vi, intentare hacerlo.... ;) ;)

Gracias a los 2 por responder  :)
En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

Hendrix
Moderador
*****
Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #4 en: 15 Julio 2007, 21:35 »

Por cierto Mek, sabes la api usada para crear la nueva sección??? es que hace unos dias lo busque y lo encontre, y ahora no lo encuentro ( :xD), borre el historial asi que no puedo buscar en el.

Un Saludo.  ;)
En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

®®
Colaborador

Desconectado Desconectado

Mensajes: 5.267


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #5 en: 16 Julio 2007, 08:14 »

no es una api, tienes que añadirla a la cabecera PE respetando sus caracteristicas. por cierto si escribes en una sección que no sea codigo verifica los flags o te dara error al ejecutar el codigo.

te dejo un link http://www.woodmann.com/fravia/covert1.htm.
« Última modificación: 16 Julio 2007, 08:21 por ̿̿̿̿̿̿̿̿̿ » En línea
Hendrix
Moderador
*****
Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #6 en: 16 Julio 2007, 09:54 »

Muchas gracias Mek, esto me va a servir.  ;) ;)
En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

Hendrix
Moderador
*****
Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #7 en: 16 Julio 2007, 19:10 »

Mek, lo e intentado y no me chuta.... :-\ :-\

E intentado lo que dice hay y no me sale....se puede leer el numero de secciones que hay, y supongo que para añadir una, tendria que modificar ese numero, no???(si es que existe el numero, ya que yo no lo e encontrado).

E intentado añadir un sección manualmente a traves de un editor hexa "a pelo" (modificando la dirección virtual y demás) y tampoco me la agrega.....estoy mirandolo con el PEiD, Olly y Dumpbin (mas con ese ultimo)....

Alguna idea??? :-( :-(
En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

®®
Colaborador

Desconectado Desconectado

Mensajes: 5.267


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #8 en: 16 Julio 2007, 21:43 »

la idea es que tienes que leer sobre encabezados PE, pq si no logras encontrar el numero de secciones que esta en PE+6 esque algo falla. la estructura es igual para todos los ficheros PE cuando sepas donde se encuentra en uno es lo mismo para todos. abre tu editor hex y mira 6 bytes mas alla de PE que numero tienes y veras que es el numero de secciones que contiene el ejecutable. ojo al modificar que este campo es de tamaño word no vayas a sobreescribir los demas datos.

saludos.

PD: PE es el identificador de la cabecera y como tal se cuenta  añade los 6 desde la letra P.
En línea
Hendrix
Moderador
*****
Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #9 en: 16 Julio 2007, 22:31 »

Ok...gracias...lo de leer el numero de secciones con un programa si se hacerlo, es a mano que no me sale...

Bien, con lo que me as dicho si lo se encontrar... :xD Ahora supongo que tendre que hacer lo que hacia antes de anadirlas "a pelo" y demás...

Pero si no logro reparar la IAT me va a servir de poco.

Un Saludo y gracais Mek  ;)
En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

®®
Colaborador

Desconectado Desconectado

Mensajes: 5.267


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #10 en: 16 Julio 2007, 22:38 »

pero para que quieres reparar la IAT?
En línea
Hendrix
Moderador
*****
Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #11 en: 16 Julio 2007, 22:50 »

Para poder usar apis en el codigo inyectado....las apis que tengo que reparar son el MessageboxA y el ExitProccess que estaban en el ejecutable echo en Fasm....El programa ahora me salta fuera de la memoria, y al cargar el hello.exe dentro del Olly ya me aparecer el call hacia el MessageBoxA.

A parte, e intentado parchearlo intentando poner el call original del hello.exe dentro del c2.exe (la "victima") y le e peusto la direccion (7E3D058A) y me a substituido la direccion por el call messageboxA, pero al dar F7 me vuelve a salir de memoria, y otra cosa....a la API no se le pasa ningun parametro correcto....tendre que reparar todo el ejecutable y adaptarlo a esas posiciones de memoria.... :-\ :-\
En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

®®
Colaborador

Desconectado Desconectado

Mensajes: 5.267


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #12 en: 17 Julio 2007, 00:10 »

eso es lo que te digo en el otro post de calcular el desplazamiento. los parametros de messagebox las cadenas estan en una direccion fija dentro de tu ejecutable, por lo que si cambia su ubicacion ves a saber lo que le pasa como parametro. de la misma forma que te dije que llamarias a una funcion call [ebp+offset funcion] para las variables mas de lo mismo push [ebp+offset variable] ebp logicamente es el valor del desplazamiento.
En línea
Hendrix
Moderador
*****
Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #13 en: 17 Julio 2007, 11:50 »

Ok...ya lo voy pillando....muchas gracias Mek  ;)
En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

Hendrix
Moderador
*****
Desconectado Desconectado

Mensajes: 2.026


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #14 en: 18 Julio 2007, 22:47 »

Mek, ya lo e echo...reparando las direcciones y todo eso a mano....pero lo tenia dentro de espacio sobrante de la sección .text...el problema es cuando intento crear mi sección con el tamaño que quiera, lo logro hacer todo, redimensiono las secciones para que las lea bien y todo y a mi parecer esta todo correcto, el icono es el mismo (por lo tanto la sección de resources esta bien) y todo correcto (a mi parecer), pero al darle doble click me dice que es una aplicaciones Win32 invalida....al pasarle el dumpbin no me marca ningun error al hacer lo siguiente:

dumpbin /all archivomodificado.exe > info.txt

A veces, antes me marcaba errores y me ponia todos los valores de eax, ebp y demás registros, pero esa vez me lo marco correcto y no me funcionó....Alguna sugerencia?? tengo que modificar algo mas??? Pensé que solo podria haber una sección en el ejecutable con los flags que indiquen que es codigo....pero no fue asi...luego modifique lo que dice: Size of code por la suma de mis 2 secciones de codigo y tampoco funcionó...y ya no se que mas hacer.... :-\ :-\

Un Saludo.  ;)

En línea

Muchas veces las cosas no se le dan al que las merece más, sino al que sabe pedirlas con insistencia. - Arthur Schopenhauer

Páginas: [1] 2 3 4 Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats