elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  [Taller en construcción]Secciones en archivos PE.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 [5] 6 Ir Abajo Respuesta Imprimir
Autor Tema: [Taller en construcción]Secciones en archivos PE.  (Leído 44,767 veces)
Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #40 en: 12 Agosto 2012, 22:43 pm »

tengo una duda :S

como podria obtener el valor de SizeofinitializedData.

Osea no se que parametros tomar para actualizarlo.


Perdon por la doble respuesta.  saludos The Swash



En línea

The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #41 en: 18 Agosto 2012, 04:13 am »

Hola,

Danyfirex, para encontrar dicho campo debes primero:
  • Encontrar el valor de e_lfanew.
  • Sumarle 0x24 que corresponde a PE_SIGNATURE + SIZE_IMAGE_FILE_HEADER.
  • Luego súmale la posición del campo SizeOfInitializedData que es 0x08.
  • Ya estás en el campo que requieres.

Un saludo,
Iván Portilla.
En línea

Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #42 en: 21 Agosto 2012, 14:53 pm »

Hola,

Danyfirex, para encontrar dicho campo debes primero:
  • Encontrar el valor de e_lfanew.
  • Sumarle 0x24 que corresponde a PE_SIGNATURE + SIZE_IMAGE_FILE_HEADER.
  • Luego súmale la posición del campo SizeOfInitializedData que es 0x08.
  • Ya estás en el campo que requieres.

Un saludo,
Iván Portilla.


Gracias. hasta ahi lo entiendo. pero realmente quiero saber como haces para actualizarlos.

Osea como lo hace to Realing PE. que parámetros tomo en cuenta para actualizarlo.

Saludos perdón por liarte tanto :S
En línea

Cauch

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #43 en: 7 Septiembre 2012, 21:06 pm »

Hola gente,
Primero de todo felicitar a The Swash por ese taller tan bien escrito y estructurado :p

Hice las practicas #1 y #2 (Agregar una sección y We vs Bound Import) y después cuando quise practicar por mi cuenta, al primer intento batacazo (las prácticas me salieron bien ;)).
Resulta que el ejecutable tiene 5 secciones, añado una y ese es el resultado que yo creía que debería tener (aún me falta incluir las ‘Characteristics’):

Nota: El recuadro amarillo es la sección añadida, el recuadro que no es amarillo es la sección previa.


Para obtener la Virtual Adress, sumo la Virtual Adress y Virtual Size de la sección anterior, con lo cual nos queda:
0x43A0 + 0x3F000 = 0x433A0

Redondeamos el valor acuerdo con el valor de SectionAlignment, el cual es 0x1000, con lo que nos queda lo siguiente:
0x433A0 -> 0x44000

Finalmente, cuando voy a introducir el código, por ejemplo un texto que ponga ‘Hola mundo’ en la dirección 0x44000 (debería incluir 200 Bytes dado que FileAlignment = 0x200), ésta está totalmente ocupada.
De hecho la última dirección del archivo es  DF9D0.

Tiene pinta que he calculado algo mal, alguien me puede ayudar?



Una pantalla completa de todo por si las moscas
http://i50.tinypic.com/11mc3tw.png
En línea

The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #44 en: 7 Septiembre 2012, 21:23 pm »

Hola,

Gracias por leer el material de he dejado.
En cuanto a tu duda temo que es porque el archivo tiene "overlay" que es información sobrante que no pertenece a ninguna sección.

Estaría bien si puedes subirlo y así lo miramos todos.

Un saludo,
Iván Portilla.
En línea

s7evin

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #45 en: 1 Octubre 2012, 15:39 pm »

Buenas tardes a tod@s :)

Lo primero agradecer a The Swash por sus aportes y paciencia; he aprendido muchisimo gracias a él.

Y ahora a lo que iba... jeje
A ver si alguien puede ayudarme/guiarme... ando algo perdido.
He realizado las prácticas de este taller y he logrado el resultado esperado.
(todo desde código C/C++ en vez de editores hex)

Ahora bien, estoy intentando añadir una nueva sección donde pretendo copiar el código de un segundo ejecutable (lanza un MessageBox y ya está) para que aparezca nada más ejecutar el original y después siga con su proceso normal.

El problema está en que no se si debo añadir todas las secciones de este segundo ejecutable o tan solo una sección determinada. Si fuera solo una sección... como determino de cual se trata? (el tamaño me imagino que sabría sacarlo)

Enfin.. no me enrollo más, que me estoy liando yo sólito..
Gracias por adelantado y saludos!

PD: ya puestos a pedir... podríais explicarme las distintas secciones que se generan en los ejecutables? Porque veo que normalmente se generan las mismas: .text, .data, .rdata, .bss, .idata, etc. Son imprescindibles? Que datos contienen? Hay alguna forma de evitar que se creen tantas secciones y se genere 1 sola?
« Última modificación: 1 Octubre 2012, 15:44 pm por s7evin » En línea

The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #46 en: 1 Octubre 2012, 18:19 pm »

Hola,

Respecto a lo de agregar un ejecutable dentro de otro, si bien miraste el material y leíste un poco de teoría sabrás que la información de referencia para el lanzador, cargador de Windows se encuentra en la cabecera así que si vas a hacer eso se debe copiar todo el ejecutable. Que lo metas en una sola sección sería lo "ideal" puesto que  tu necesitas la información para hacer una ejecución "casera". Luego tienes unas dependencias de que tu mismo le tienes que dar espacio en memoria, un thread, etc.
Es aquí donde se presentan los problemas, porque además de eso debes resolver las importaciones y relocaciones.

Generalmente muchos ejecutables traen un ImageBase similar a 0x400000 y la única forma de cambiar estos campos sería teniendo una tabla .reloc en tu exe y no todos lo tienen.

Como ves que complica un poco la cosa, cualquier cosa preguntas y con gusto.

En cuanto a las secciones, son muchísimas y la mejor explicación está en el PE COFF de Microsoft, pero entonces te digo las más conocidas:

  • .text -> Sección de código ejecutable
  • .code -> Sección de código ejecutable
  • .data -> Sección de datos (variables)
  • .idata -> Sección de importación de librerías (import data)
  • .rdata -> Igual que la anterior
  • .rsrc -> Sección de recursos.
  • .reloc -> Sección de relocaciones.
  • .debug -> Sección con datos para la depuración

Y esos son los que momentáneamente recuerdo.

Saludos.
En línea

Newhack32

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #47 en: 7 Octubre 2012, 01:12 am »

la estructura IMAGE_DOS_HEADER: que acaso no tiene esto  :huh:

Código:
   IMAGE_DOS_HEADER = record lleno
     e_magic: Word; / / Número mágico ("MZ")
     e_cblp: Word; / / Bytes en la última página del archivo
     e_cp: Word; / / Artículos en el archivo
     e_crlc: Word; / / Movimientos
     e_cparhdr: Word; / / Tamaño de la cabecera en los párrafos
     e_minalloc: Word; párrafos supletorias / / mínimos necesarios
     e_maxalloc: Word; / / Máximo párrafos adicionales necesarios
     e_ss: Word; / / inicial (relativa) SS valor
     e_sp: Word, valor SP / / Inicial
     e_csum: Word; / / Suma de comprobación
     e_ip: Word, valor IP / / Inicial
     e_cs: Word; / / inicial (relativa) de valor CS
     e_lfarlc: Word; / / Dirección de la tabla de reubicación
     e_ovno: Word; / / Overlay número
     e_res: arsenal lleno [0 .. 3] de la Palabra / / palabras reservadas
     e_oemid: Word; / / OEM identificador (por e_oeminfo)
     e_oeminfo: Word; / / Información OEM; e_oemid específico
     e_res2: arsenal lleno de [0 .. 9] de la Palabra / / palabras reservadas
     e_lfanew: Entero; / / Archivo dirección del encabezado exe nuevo
En línea

The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #48 en: 7 Octubre 2012, 04:18 am »

Hola,

Con todo respeto se nota mucho lo poco que has leído o al menos el poco cuidado que has prestado.

Citar
[29 WORDS] -> Aquí abreviaremos son campos poco utilizados.

Saludos.
En línea

s7evin

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #49 en: 19 Octubre 2012, 09:33 am »

Buenos días a tod@s!

Estoy haciendo la última práctica, bueno de hecho ya la terminé y el ejecutable resultante funciona perfectamente.

La cuestión es que he descargado tu ejecutable final ("Practica 4 Resultado") y al examinar la estructura PE veo que hay algunas cosas que difieren del mio... por ejemplo:
Código:

   OptionalHeader->SizeOfImage = 0x3400

- No debería estar alineado a 0x4000 ?

   Sección: .idata->VirtualSize = 0x98
   Sección: .data->VirtualSize = 0x400

- ? La sección ampliada no era la .idata?? como es que le has aumentado el VirtualSize al .data en vez de al .idata?


Y ya por último... como lo has hecho para que el MessageBox coja el texto insertado al final de la sección? :S

Serias tan amable de aclararme estos puntos?

Gracias y saludos! :)
   
En línea

Páginas: 1 2 3 4 [5] 6 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Nuevas secciones en el foro
Sugerencias y dudas sobre el Foro
Maikfield 6 2,875 Último mensaje 30 Agosto 2005, 11:12 am
por programatrix
Secciones en php
PHP
keype 4 7,347 Último mensaje 28 Mayo 2007, 00:29 am
por dominioswww
un par de secciones mas
Sugerencias y dudas sobre el Foro
peib0l 4 2,861 Último mensaje 25 Mayo 2007, 18:07 pm
por -Elkiot-
Taller de Vic_Thor: PROTOCOLO 802.11. TALLER WiFi « 1 2 »
Hacking Wireless
ChimoC 10 60,589 Último mensaje 8 Agosto 2009, 12:04 pm
por ChimoC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines