calcular SizeOfImage y la VirtualSize de un archivo

Iniciado por titan6146, 11 Junio 2010, 01:07 AM

0 Miembros y 1 Visitante están viendo este tema.

titan6146

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....

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

titan6146

No es exactamente lo que busco, gracias igual!!

bizco

yo creo que si, tendrias que leer el formato PE para comprender esas cosas.

.:WindHack:.

Sin aprender a leer el formato PE, no lograrás prácticamente nada.

Saludos,

Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."

titan6146

ok los entiendo, pero aunque sea me pueden aclarar la duda que postie sobre esa imagen del allyDbg?
gracias!!

PeterPunk77

Cita de: titan6146 en 11 Junio 2010, 01:07 AMlo 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 (asm) [Seleccionar]
.386
.model flat, stdcall
option casemap :none

include \masm32\include\kernel32.inc

includelib \masm32\lib\kernel32.lib

.data
ddConstante dd 12345678h

.code
start:
mov eax, ddConstante
push 0
call ExitProcess
end start

Cuando lo abras con el Olly verás esto:

en el "dump" está 0x78563412 pero Olly ya nos indica que la dirección 0x00430000 contiene el valor 0x12345678:
[00430000]=12345678

Saludos.

Horricreu

#7
Te dejo el enlace de un manual buenísimo que hizo Microsoft sobre el formato PE:

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

Saludos :P