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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  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 2 Visitantes 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,706 veces)
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #10 en: 25 Mayo 2012, 21:40 pm »

The Swash, Una pregunta... bueno estoy seguro que sobreescribes 28 bytes de la Bound cierto?
tambien puse a pensar y si el exe tiene muchas secciones e intento agregar otra sección se rompe... pero
estamos hablando de 8,10 secciones... por cierto todos los ejecuatbles albolutamente todos tiene bound... aunque no
sea ocupada?
En línea

The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #11 en: 25 Mayo 2012, 22:08 pm »

Expliqué los 2 métodos:
  • Mover la BOUND_IMPORT_TABLE.
  • Remover la BOUND_IMPORT_TABLE.

Todos los ejecutables NO tienen BOUND_IMPORT_TABLE, y para comprobar si tienen o no debes comparar el directorio de datos número 12 y ver si su RVA es 0 o no.

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

Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #12 en: 25 Mayo 2012, 23:26 pm »

bueno, entonces lo de 0x17... es la frase y tambien virtualsize

ya entendi mas sobre los multiplos que me tenia confundido

pero a ver, para obtener VirtualAddress, como mencionas en el taller, hay que regresar una sección y tomar el virtualaddress + SizeOfRawData que seria algo asi
Código:
0x28 - 0x1C8 = 0x1A0
Código:
000001a0  2e 69 64 61 74 61 00 00  98 00 00 00 00 20 00 00  |.idata....... ..|

Código:
2e 69 64 61 74 61 <--- esto debe ser .idata
00 00 <--- esto debe ser virtualsize
98 00 00 00 <---- esto es VitualAddress
00 20 00 00 <---- esto es SizeOfRawData
bueno, esto esta en little endian, lo que seria

Código:
00 00 00 98
00 02 00 00

si sumo esos 2, seria 00 02 00 98, equivalente a 2098, si lo redondeo seria 3000

y finalmente quedaria asi, cierto?

Código:
00 00 00 98
00 02 00 00
/////////////
00 03 00 00

para encontrar SizeOfRawData entonces seria lo que sigue de VirtualAddress

Código:
000001a0  2e 69 64 61 74 61 00 00  98 00 00 00 || 00 20 00 00 <--- seria este

entonces si busco FileAlignment + SizeOfRawData seria

Citar
FileAlignment: -> Lo encontramos con 0x98 + 0x24 = 0xBC y tiene un valor 00 02 00 00 (real: 00 00 02 00).

Código:
00 20 00 00
00 02 00 00

seria 0x220, su multiplo seria 400

aqui una duda, porque 400?, y porque no 300?

y para encontrar PointerToRawData, seria el siguiente de SizeOfRawData

Código:
000001b0  00 02 00 00 <---- aqui se encuentra 00 04 00 00  00 00 00 00 00 00 00 00  |................|

si se lo sumo al resultado de FileAlignment + SizeOfRawData + PointerToRawData... seria
Código:
0x400 + 200 = 0x600 <--- 00 06 00 00

espero haber entendido, si tengo algun error, espero puedan coregirme

bueno, al rato intentare hacerlo en windows, salu2
« Última modificación: 25 Mayo 2012, 23:33 pm por Belial & Grimoire » En línea

.                                 
The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #13 en: 25 Mayo 2012, 23:56 pm »

Creo que lo entendiste mucho mejor.

Recuerda que todos los campos de IMAGE_SECTION_HEADER tienen un tamaño cada uno de 4 bytes con excepción del nombre de la sección que ocupa 8 y NumberOfRelocations y NumberOfLineNumers (WORD) estos últimos. (Debes tener muy en cuenta el tamaño de cada campo).

Ahora tienes un pequeño problema con las alineaciones.
NO se deben sumar, solamente un valor debe ser múltiplo del otro, cuando digo múltiplo es que al hacer la operación:

Num mod Alineamiendo = 0.

Entonces no es 0x220, mira bien que esos 2 valores que marcaste:
Citar
00 20 00 00
00 02 00 00

Son VirtualAddress y SizeOfRawData correspondientemente. Entonces para encontrar SizeOfRawData, este valor corresponde al tamaño de los datos de TU sección, y ese valor se debe alinear al FileAlignment:

FileAlignment: 0x200
Tus datos: 0x17
0x17 alineado a 0x200 = 0x200.

Citar
2e 69 64 61 74 61 <--- esto debe ser .idata
00 00 <--- esto debe ser virtualsize
98 00 00 00 <---- esto es VitualAddress
00 20 00 00 <---- esto es SizeOfRawData

Estás mal, idata cubre 8 bytes, los siguientes 4 corresponden al VirtualSize que sería 0x98, los siguientes 4 al VirtualAddress, los siguientes 4 SizeOfRawData, los siguientes 4 a PointerToRawData...



Un saludo.
« Última modificación: 26 Mayo 2012, 00:03 am por The Swash » En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #14 en: 26 Mayo 2012, 01:26 am »

ok, entonces me pongo a pensar si un ejecutable no tiene bound... entonces creo que sería un gran problema no...
ya que ningun metodo mecionado se podría aplicar...
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #15 en: 26 Mayo 2012, 02:46 am »

ok chicos solucionado error mío :D que viva el taller
En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #16 en: 26 Mayo 2012, 03:05 am »

HOLA!!!

El lunes hablame por msn que quiero ver si me armas una cosa artesanal XD.

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
Belial & Grimoire


Desconectado Desconectado

Mensajes: 559


Tea_Madhatter


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #17 en: 26 Mayo 2012, 21:37 pm »

hola

ya hice la primera parte igual en windows 7 y funciono perfecto

ahora quise hacer el intento con notepad en windows 7, pero me encontre con un problema

notepad, tiene 4 secciones, el ultimo es .reloc, al intentar calcular VirtualAddress, me aparece de esta forma

Código:
00000242 00 00 00 00 00 00 00 00 00 00 40 00 00 40 2E 72 65 ..........@..@.re
00000253 6C 6F 63 00 00 34 0E 00 00 00 F0 02 00 00 10 00 00 loc..4...........
00000264 00 AE 02 00 00 00 00 00 00 00 00 00 00 00 00 00 40 ................@
00000275 00 00 42                                           ..B             

por lo visto aqui esta

Código:
----> 00 F0 02 00 || 00 10 00 00 loc..4...........

de que manera se obtendria aqui VirtualAddress?

Citar
VirtualSize: 00 00 00 17 y VirtualAddress: 00 00 20 00, procedemos a sumarlos: 0x2017 y alineamos, recuerden el múltiplo mayor inmediato es 0x3000 y listo, tenemos nuestro VirtualAddress.

seria 00 f0 02 17?, y cual seria el resultado?

por cierto, usare la misma cantidad de 0x17 para no revolver tanto y seguir el ejemplo del taller

y otra cosa, esto hice para obtener la direccion donde se encontrara mi sección pero no encontre espacios vacios

28 * 4= A0 + 1D8 = 278

habra algun problema si le agrego 28 bytes para agregar mi sección?

salu2
En línea

.                                 
Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #18 en: 26 Mayo 2012, 23:50 pm »

Muy buen trabajo, espero que lo sigas ampliando :P

Lo añado a la biblioteca en cuanto llegue a casa.

saludos >:D
En línea

The Swash

Desconectado Desconectado

Mensajes: 194


Programmer


Ver Perfil WWW
Re: [Taller en construcción]Secciones en archivos PE.
« Respuesta #19 en: 27 Mayo 2012, 00:15 am »

Amigo,
Te felicito por lo de la primera parte. En cuanto al notepad.

Si tu VirtualAddress de la ultima sección es 0x2F000 y el VirtualAddress es Tamaño (0xE34 Alineado 0x1000 = 0x1000) = 0x30000 -> Ese es el nuevo VirtualAddress.

En cuanto a lo de tus espacios, eso se especifica en la parte del Taller llamada "We vs BOUND_IMPORT"

Un saludo,
Iván Portilla
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,862 Último mensaje 30 Agosto 2005, 11:12 am
por programatrix
Secciones en php
PHP
keype 4 7,324 Último mensaje 28 Mayo 2007, 00:29 am
por dominioswww
un par de secciones mas
Sugerencias y dudas sobre el Foro
peib0l 4 2,856 Ú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,555 Último mensaje 8 Agosto 2009, 12:04 pm
por ChimoC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines