elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
28 Agosto 2008, 18:35  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General (Moderadores: Hendriҳ, 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 1559 veces)
Hendriҳ
Moderador
*****
Desconectado Desconectado

Mensajes: 2.002


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #30 en: 02 Agosto 2007, 21:48 »

pero es extrictamente necesario que añadas otra sección? si no añade el codigo al final de la ultima sección. dices que has jodiod la IAT.... ¿que estas fent? ya me estoyt liando hasta yo jeje., no entiendo mucho lo que te pasa ahora mismo, despues de la siesta lo leere mejor.

saludos.

xDDD Lo de añadir la sección y toda esta practica es para un "reto personal", no lo voy a usar ni nada de eso..solo son practicas para conocer el formato PE bien  ;)

Con lo de la IAT no lo se ni yo, no se que me a pasado....en el ejecutable normal, al listarme las funciones que exporta de la MSVBVM60.DLL me da esto:

Citar
Section contains the following imports:

    MSVBVM60.DLL
                401000 Import Address Table
                401C9C Import Name Table
              FFFFFFFF time date stamp
              FFFFFFFF Index of first forwarder reference

      660F8806     0  _CIcos
      660EFE79     0  _adj_fptan
      661072A2     0  __vbaFreeVarList
      660CBDA8     0  __vbaEnd
      660EF73A     0  _adj_fdiv_m64
      660EFDC1     0  _adj_fprem1
      660EF6EE     0  _adj_fdiv_m32
      660DC5F3        Ordinal   595
      660EF786     0  _adj_fdiv_m16i
      660EF886     0  _adj_fdivr_m16i
      660F896E     0  _CIsin
      660F576A     0  __vbaChkstk
      660C9A94     0  EVENT_SINK_AddRef
      660EFE76     0  _adj_fpatan
      660C9AA7     0  EVENT_SINK_Release
      660F8A13     0  _CIsqrt
      660C99A5     0  EVENT_SINK_QueryInterface
      660E3CA4     0  __vbaExceptHandler
      660EFB09     0  _adj_fprem
      660EF83A     0  _adj_fdivr_m64
      66107553     0  __vbaFPException
      660F88AB     0  _CIlog
      660EF7BA     0  _adj_fdiv_m32i
      660EF8BA     0  _adj_fdivr_m32i
      660EF7EE     0  _adj_fdivr_m32
      660EF229     0  _adj_fdiv_r
      6600357C        Ordinal   100
      66106E36     0  __vbaVarDup
      660F8740     0  _CIatan
      660EE36D     0  _allmul
      660F8AC4     0  _CItan
      660ED191     0  _CIexp

  Header contains the following bound import information:
    Bound to MSVBVM60.DLL [403ACFEC] Tue Feb 24 05:15:40 2004

Y en mi ejecutable modificado me da esto:

Citar
Section contains the following imports:

    MSVBVM60.DLL
                401000 Import Address Table
                401C9C Import Name Table
              FFFFFFFF time date stamp
              FFFFFFFF Index of first forwarder reference

      660F8806     0  _CIcos
      660EFE79     0  _adj_fptan
      661072A2     0  __vbaFreeVarList
      660CBDA8     0  __vbaEnd
      660EF73A     0  _adj_fdiv_m64
      660EFDC1     0  _adj_fprem1
      660EF6EE     0  _adj_fdiv_m32
      660DC5F3        Ordinal   595
      660EF786     0  _adj_fdiv_m16i
      660EF886     0  _adj_fdivr_m16i
      660F896E     0  _CIsin
      660F576A     0  __vbaChkstk
      660C9A94     0  EVENT_SINK_AddRef
      660EFE76     0  _adj_fpatan
      660C9AA7     0  EVENT_SINK_Release
      660F8A13     0  _CIsqrt
      660C99A5     0  EVENT_SINK_QueryInterface
      660E3CA4     0  __vbaExceptHandler
      660EFB09     0  _adj_fprem
      660EF83A     0  _adj_fdivr_m64
      66107553     0  __vbaFPException
      660F88AB     0  _CIlog
      660EF7BA     0  _adj_fdiv_m32i
      660EF8BA     0  _adj_fdivr_m32i
      660EF7EE     0  _adj_fdivr_m32
      660EF229     0  _adj_fdiv_r
      6600357C        Ordinal   100
      66106E36     0  __vbaVarDup
      660F8740     0  _CIatan
      660EE36D     0  _allmul
      660F8AC4     0  _CItan
      660ED191     0  _CIexp

  Header contains the following bound import information:
    Bound to ° [6E65682E] Sat Sep 09 21:12:46 2028
    Bound to  [     924] Thu Jan 01 01:39:00 1970
    Bound to  [    1000] Thu Jan 01 02:08:16 1970

La lista correctamente (estan las 2 en la sección .text), pero en la modificada salen 3 cosas raras al final (en negrita) y supongo que esto es el fallo.

Una imagen de la IAT correctamente cargada del ejecutable nº 1 (el ejecutable normal):

[Imagen 1]

Luego, al cargar el 2.exe (modificado) me sale esto:

[Imagen 2]

y luego, al ir a la IAT sale que esta rota:

[Imagen 3]

No se cual es el problema  :-\ :-\

PD: Adjuntadas las imagenes, los 2 resultados del dumpbin y los 2 ejecutables (el nº 1 es el original, y el 2 es el modificado).

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

®®
Colaborador

Desconectado Desconectado

Mensajes: 5.128


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #31 en: 02 Agosto 2007, 22:32 »

pero esque el problema q yo veo esq estas escribiendo datos dnde no debes el error de no se encuentra ".dll" es pq esta modificado (cortado en tu caso el nombre de la dll). por eso ahora mirare el ejecutable a ver donde escribiste.

saludos.
En línea
Hendriҳ
Moderador
*****
Desconectado Desconectado

Mensajes: 2.002


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #32 en: 02 Agosto 2007, 22:58 »

No, creo que no sobreescribi nada.....creo que esta correcto...si no estubiese correcto el dumpbin me lo diria.... :-\ :-\
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.128


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #33 en: 05 Agosto 2007, 15:41 »

prueba a hacer lo mismo en un ejecutable que no sea de vb.

En línea
karmany

Desconectado Desconectado

Mensajes: 660



Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #34 en: 05 Agosto 2007, 15:49 »

Mira yo para hacer injertos creo una nueva sección con el programa Topo v.1.2.

Es un muy buen programa y ya modifica perfectamente la cabecera para que puedas utilizarla y te olvidas de modificarla a mano. Es un programa muy usado en ingeniería inversa:
http://ricardonarvaja.info/WEB/OTROS/HERRAMIENTAS/Q-R-S-T-U/ToPo.rar

Importante: algunos antivirus lo reconocen como virus...tal vez cuando lo uses tengas que desactivar el antivirus (yo lo tengo que desactivar con el NOD32)

En línea



Salu2
®®
Colaborador

Desconectado Desconectado

Mensajes: 5.128


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #35 en: 05 Agosto 2007, 16:14 »

lo que busca es hacerlo a mano para aprender.

En línea
Hendriҳ
Moderador
*****
Desconectado Desconectado

Mensajes: 2.002


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #36 en: 06 Agosto 2007, 14:19 »

lo que busca es hacerlo a mano para aprender.

Exacto..xDDD

Ya me lo imagine, que con ejecutables del VB esto no se puede...aunque se tiene que poder...el UPX puede... :-\ :-\

Voy a probar en uno echo en FASM o con el Gcc.... :-\ :-\

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

karmany

Desconectado Desconectado

Mensajes: 660



Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #37 en: 06 Agosto 2007, 15:14 »

Ahh!

Si quieres hacerlo a mano léete estos tutes de Ricardo que son excepcionales y te enseñarán cómo se hace.. El tute 2 es el que te interesa pero empieza de cero porque hay cosas muy interesantes... lo hace todo a mano:

Import Tables a mano. Parte 1
Import Tables a mano. Parte 2 - aquí crea una sección a mano
Import Tables a mano. Parte 3
Import Tables a mano. Parte 4
En línea



Salu2
Hendriҳ
Moderador
*****
Desconectado Desconectado

Mensajes: 2.002


The Lord of his Middle Earth


Ver Perfil WWW
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #38 en: 06 Agosto 2007, 16:09 »

Gracias Karmany...me a servido para ciertas cosas....pero el problema sigue persistiendo.... :-\ :-\ Creo que voy a sacar la siguiente conclusion:

En ejecutables del VB no se puede  :( :-\

Gracias igualmente  ;)

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

karmany

Desconectado Desconectado

Mensajes: 660



Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #39 en: 06 Agosto 2007, 18:07 »

Hendrix... yo sé que tienes experiencia en programación y en ingeniería inversa...

Me sorprende mucho que digas que algo no se puede hacer...
Mira me acabo de leer el post entero y no logro entender lo que quieres hacer.
Si quieres mándame por privado el programa y dime lo que quieres hacer y lo hacemos..

Sobre la IAT claro que hay que tener cuidado con VB ya que todo está con su librería, pero se pueden hacer muchas cosas.
Di exactamente lo que quieres hacer que yo me apunto a echarte una mano.
En línea



Salu2
®®
Colaborador

Desconectado Desconectado

Mensajes: 5.128


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #40 en: 06 Agosto 2007, 18:08 »

se tiene que poder pero yo tb estuve probando y da el error ese de ".dll" tiene que poderse. a unas malas se puede expandir la ultima sección y meter en ella el codigo que quieras.

PD: karmany añadirle una sección nueva a mano, pero da error de no se encontro ".dll".
En línea
karmany

Desconectado Desconectado

Mensajes: 660



Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #41 en: 06 Agosto 2007, 18:14 »

Bueno... yo creo que entre los tres encontraremos el problema.
De qué se trata.. ¿De crear una nueva sección en un programa compilado en Visual Basic? ¿Ese es el problema?.. ¿Que da error?
En línea



Salu2
karmany

Desconectado Desconectado

Mensajes: 660



Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #42 en: 06 Agosto 2007, 19:17 »

VALE!! ya lo he descubierto
Eso es porque el nombre de la librería de VB está justo después de la última sección.
Si te fijas en un programa en VB y vas después de la 3º sección verás el nombre de la librería de VB.

Si por ej. desde el OllyDBG modificas el número de secciones de 3 a 4 verás que lo que haces es sobreponer bytes en esa zona con lo cual no es posible encontrar la librería y por eso ese error.

Creo que tiene fácil solución y es dar un puntero diferente a la librería de VB. Por supuesto que lo probaré hasta que salga bien... pero pienso que ése es el fallo.
En línea



Salu2
®®
Colaborador

Desconectado Desconectado

Mensajes: 5.128


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #43 en: 06 Agosto 2007, 20:27 »

si esta claro que el fallo es ese, pero entonces contradice en algo los ejecutables compilados en vb al formato PE? ya que como dices si escribes los datos de tu sección te comes el nombre de la dll y no funciona.

saludos.
En línea
®®
Colaborador

Desconectado Desconectado

Mensajes: 5.128


Ver Perfil
Re: Practica: Modificando un PE a mano e inyectando codigo
« Respuesta #44 en: 06 Agosto 2007, 20:35 »

lo del upx es diferente hendrix, digamos que upx le añade su propia cabecera y despues lo deja "On the fly" el ejecutable tal cual es entonces no hay problema ya que no hay nada "chafado".
En línea
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.5 | SMF © 2006-2008, Simple Machines LLC