PDA

Ver la versión completa : Tutorial insertar código en un ejecutable



xkill
07-06-2007, 05:59
Hola me gustaría saber de un tutorial para aprender a insertar codigo en un ejecutable.

Gracias!

chico1988
07-06-2007, 09:57
Perdonad pero la tema de xkill tenia que estar en programacion, y la tema de muñek en telefonia. Un poco de orden en el foro por que si no. Tiene que trabajar mas los moderadores con un poco de atencion podriamos eviatr estos errores. Saludos

xkill
07-06-2007, 16:13
Por que debería estar en programación mi tema? Creí que la inserción de código era una práctica en la ingeniería inversa.

Bueno he encontrado algunos tutes de n u M I T_o r que muestran el proceso pero no son completos dedicados al tema pero algo muestran.

Quizá no me he explicado bien, lo que quiero aprender es a crear mis recortes de código para luego insertarlos dentro de un archivo ejecutable.

Si conocen de algún tutorial que hable al respecto me rutaría que lo compartieran.

Saludos!

chico1988
07-06-2007, 19:01
en la ingineria inversa tiene que estar como por ejemplo como crackear un softwar o cosas asi. Pero los recortes, bueno mira de dejo un link aver si es lo que tu buscas:

http://www.recortex.com/tag/xhtml/

xkill
07-06-2007, 19:59
Gracias por tu respuesta!

En realidad lo que estoy buscando aprender es como agregar una rutina generada por mí de código ejecutable dentro de otro ejecutable.

Mi caso es que tengo un programa que quiero me muestre ciertos datos en un MessageBox entonces la rutina que quiero agregar es:

En el programa hay un salto condicional pero antes que suceda ese salto me gustaría redireccionarlo hacia la rutina que quiero insertar y luego que regrese y continúe con su ejecución normal.

Se que tengo que crear mi condigo en ensamblador y luego en binario objeto y ese condigo objeto es el que quiero que quiero insertar en el programa para que lo ejecute, la verdad no tengo idea de cómo hacerlo ni por donde comenzar así que les pedía ayuda si conocen algún tute que muestre como hacerlo.

No se si me explique bien, si no decírmelo para explicar bien el objetivo que quiero lograr.

Gracias por leerme.

n0debytes
23-06-2007, 21:35
Gracias por tu respuesta!

En realidad lo que estoy buscando aprender es como agregar una rutina generada por mí de código ejecutable dentro de otro ejecutable.

Mi caso es que tengo un programa que quiero me muestre ciertos datos en un MessageBox entonces la rutina que quiero agregar es:

En el programa hay un salto condicional pero antes que suceda ese salto me gustaría redireccionarlo hacia la rutina que quiero insertar y luego que regrese y continúe con su ejecución normal.

Se que tengo que crear mi condigo en ensamblador y luego en binario objeto y ese condigo objeto es el que quiero que quiero insertar en el programa para que lo ejecute, la verdad no tengo idea de cómo hacerlo ni por donde comenzar así que les pedía ayuda si conocen algún tute que muestre como hacerlo.

No se si me explique bien, si no decírmelo para explicar bien el objetivo que quiero lograr.

Gracias por leerme.

Bueno, si no es muy complicado lo puedes hacer a "pelo" en el OllyDBG, yo te recomiendo que busques una sección vacía y hagas.

JMP SeccionVacía

SecciónVacía:
PUSHAD
Codigo
POPAD

Salu2...

xkill
23-06-2007, 23:42
Bueno sí eso hago cuando es poco código pero prácticamente para mis fines tendría que agregar una nueva sección al ejecutable ya que la cantidad de código que pretendo agregar es considerable. pienso cambiar el OEP y redireccionarlo a mi nueva sección de código ejecutar mi código y lego regresar al OEP

n0debytes
23-06-2007, 23:45
Bueno sí eso hago cuando es poco código pero prácticamente para mis fines tendría que agregar una nueva sección al ejecutable ya que la cantidad de código que pretendo agregar es considerable. pienso cambiar el OEP y redireccionarlo a mi nueva sección de código ejecutar mi código y lego regresar al OEP

pero dime, ¿que quieres hacer exactamente?

Salu2..

hystd
24-06-2007, 02:55
Bueno, si no es muy complicado lo puedes hacer a "pelo" en el OllyDBG, yo te recomiendo que busques una sección vacía y hagas.

JMP SeccionVacía

SecciónVacía:
PUSHAD
Codigo
POPAD


Esto no garantiza que obtengamos resultados exitosos, puede que si o puede que no... depende del codigo.

Si yo quisiera ejecutar mi código con total segurídad en otro proceso lo inyectaría mediante las Hook de Windows (ganchos). Para ello incluiría mi código en una DLL y lo cargaría a través de ella en el proceso.

Para instalar los ganchos (Hooks), llamaría a la función SetWindowsHookEx(...) de la API de Windows con los parámetros apropiados, está contenida en "user32.dll". Una vez que la aplicación instala el gancho, el sistema operativo mapea la DLL en el espacio de direcciones en cada uno de los procesos clientes. Esta función devuelve el Handle (manjador, de tamaño LongWord 32 bits) del gancho. Una vez que la ejecutes, tu código se inyectara automaticamente en el proceso (mola Windows xD)

Hay otras maneras de inyectar tu código en otros procesos, aprovechando la función LoadLibrary (...)cargaríamos nuestra DLL, con el código que queremos inyectar. Pero para lograr que el proceso haga ésto tenemos que llamar a la función CreateRemoteThread (...)

(La funcion GetProcAddress(...) nos puede devolver la dirección de LoadLibrary(...)).

Te recomiendo que busques en google acerca de las API que te he marcado en negrita.

Este tema sobre inyección de código lo trataré en el artículo 3 de nuestra e-zine (proximamente... :)).

Un saludo.

j8k6f4v9j
24-06-2007, 03:13
Muy bueno! :D

Esperamos ansiosos tu artículo :p

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

xkill
24-06-2007, 05:38
Gracias por tu ayuda hystd!
Me parecen excelente esas técnicas!! Nunca se me hubiera ocurrido hacerlo de esa manera! Las funciones que mencionas del API de windows te comento que ya las había utilizado con anterioridad pero nunca pensé en usarlas con esos fines, creo que necesito un poco mas de pensamiento lateral XD

Haré algunas pruebas con ambos métodos para ver cual se apega mas a mis necesidades, pienso que el método con LoadLibrary y CreateRemoteThread necesita menos código para realizarse que con los hooks aun que me agrada que con los hooks la dll es mapeada en el proceso y quizás eso nos permita realizar otras travesuras mas jeje

Bueno probaré ambas y si tengo algún problema se los consulto, gracias!