Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: titan6146 en 11 Junio 2010, 01:07 am



Título: calcular SizeOfImage y la VirtualSize de un archivo
Publicado por: titan6146 en 11 Junio 2010, 01:07 am
Queria aprender a calcular SizeOfImage y la VirtualSize de un archivo ya se que puedo ver estos parametros con olly o lordpe pero quiero aprender a calcularlos con un calculadora y saber de donde salen espero que me ayuden
gracias!!
Aparte me surgio la siguiente duda estuve buscando info en la web sobre el tema pero me confunde un poco, por lo que interpreto lo que aparece entre () es el peso del archivo que se puede ver haciendo click en propiedades lo que no se si es el tamaño o el tamaño en disco ya que en algunos casos varia si pongo este numero en la calculadora cientifica en decimales y lo paso a hexa me da el valor que aparece a la izquierda en este caso 16000. lo que no me queda claro es de donde sale el valor de la segunda columna 00600100 que es el que puedo ver con un editor hexadecimal en el offset 281 y 282. quiero saber como se calcula. les dejo la imagen....
(http://i50.tinypic.com/bduoew.jpg)


Título: Re: calcular SizeOfImage y la VirtualSize de un archivo
Publicado por: Eternal Idol en 11 Junio 2010, 01:30 am
http://en.wikipedia.org/wiki/Portable_executable


Título: Re: calcular SizeOfImage y la VirtualSize de un archivo
Publicado por: titan6146 en 11 Junio 2010, 01:53 am
No es exactamente lo que busco, gracias igual!!


Título: Re: calcular SizeOfImage y la VirtualSize de un archivo
Publicado por: bizco en 11 Junio 2010, 02:26 am
yo creo que si, tendrias que leer el formato PE para comprender esas cosas.


Título: Re: calcular SizeOfImage y la VirtualSize de un archivo
Publicado por: .:WindHack:. en 11 Junio 2010, 03:42 am
Sin aprender a leer el formato PE, no lograrás prácticamente nada.

Saludos,


Título: Re: calcular SizeOfImage y la VirtualSize de un archivo
Publicado por: titan6146 en 11 Junio 2010, 04:44 am
ok los entiendo, pero aunque sea me pueden aclarar la duda que postie sobre esa imagen del allyDbg?
gracias!!


Título: Re: calcular SizeOfImage y la VirtualSize de un archivo
Publicado por: PeterPunk77 en 11 Junio 2010, 10:19 am
lo que no me queda claro es de donde sale el valor de la segunda columna 00600100 que es el que puedo ver con un editor hexadecimal en el offset 281 y 282
Ese valor es el mismo que antes (0x00016000).
En los ejecutables, los dwords, words... se almacenan inversamente por bytes.
Prueba a crear un programa en cualquier lenguaje y mete una constante de tamaño dword con el valor 0x12345678h. Sil o abres con un editor hexadecimal verás que está almacenada como 78673412.
Código
  1. .386
  2. .model flat, stdcall
  3. option casemap :none
  4.  
  5. include \masm32\include\kernel32.inc
  6.  
  7. includelib \masm32\lib\kernel32.lib
  8.  
  9. .data
  10. ddConstante dd 12345678h
  11.  
  12. .code
  13. start:
  14. mov eax, ddConstante
  15. push 0
  16. call ExitProcess
  17. end start
Cuando lo abras con el Olly verás esto:
(http://i50.tinypic.com/eik36x.jpg)
en el "dump" está 0x78563412 pero Olly ya nos indica que la dirección 0x00430000 contiene el valor 0x12345678:
Código:
[00430000]=12345678

Saludos.


Título: Re: calcular SizeOfImage y la VirtualSize de un archivo
Publicado por: Horricreu en 12 Junio 2010, 13:07 pm
Te dejo el enlace de un manual buenísimo que hizo Microsoft sobre el formato PE:

Código:
http://www.microsoft.com/whdc/system/platform/firmware/pecoff.mspx

Saludos :P