diferencia entre RVA y offset?

Iniciado por weggi, 6 Noviembre 2011, 22:41 PM

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

weggi

hola e leido unos cuantos temas al respecto y no lo logro comprender  :huh:
si fueran tan amables de hacerme una pequeña explicacion entendible porfavor  :-\

por ejemplo la función ExitProcess de kernel32.dll

RVA      : 0x0001CAFA
OFFSET : 0x7C81CAFA

.:UND3R:.

Hola RVA Relative Value address este es la dirección en memoria de un programa sin su image base

Offset o raw (creo que son lo mismo) es la ubicación física de un archivo en el disco



Saludos

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

_Enko

#2
CitarOffset o raw (creo que son lo mismo) es la ubicación física de un archivo en el disco
Si se trata del offset de un archivo si.

Si se trata del offset de una variable, generalmente se refiere  al VirtualAddress de esa variable. (ImageBase + RVA de la variable)

RAW  significa CRUDO, algo que no se le dio un formato  y viene tal cual se genera


RVA    : 0x0001CAFA
OFFSET : 0x7C81CAFA
ImgBase: 0x7C800000 (kernel32.dll)

weggi

#3
Hola Gracias por las respuestas me acaban de aclararme la duda  ;-)
_EnKo gracias por el ejemplo soy un poco duro de la cabeza con esto  :laugh:

saludos

karmany

Cuando se habla de Offset en el archivo físico se habla de:
Raw Offset

Cuando se habla de Offset relacionado con la carga del programa en memoria se habla de:
Virtual Offset

Cuando hablamos de offset nos referimos a un desplazamiento, aunque normalmente se suele utilizar para relacionar el Raw Offset. Al igual que dice _Enko algunos autores cuando hablan de offset suelen utilizarlo para hablar de VA.

La RVA (Relative Virtual Address) es una dirección virtual relativa, que corresponde a la VA cargada en memoria a la cuál se le resta la Image Base. En el ejemplo que te ha puesto _Enko, el valor que él ha llamado OFFSET corresponde a la VA.

Para que veas un poco la diferencia de valores entre offset (raw) y RVA te recomiendo que uses este programa mio y verás dichos datos:
http://foro.elhacker.net/ingenieria_inversa/file_location_calculator_v032_por_karmany-t262979.0.html

_Enko

Por cierto, hay una muy buena explicacion del tema aqui:
http://stackoverflow.com/questions/2170843/va-virutual-adress-rva-relative-virtual-address
(es la primer respuesta)
Aviso: esta en ingles y es para leerlo con paciencia.

gracias por la aclaracion karmany, no sabia que se refería al offset en un archivo como "raw offset"

Tinkipinki