y weno una cosa...corregidme si me ekivoco pero para sacar el offset fisico (en el archivo) teniendo un offset virtual hay que obtener la diferencia restando a el VirtualAddress el PointerToRawData de la sección en la k se encuentre ese offset virtual (y weno en el caso de k en vez de 'ofset virtual' tengamos 'direccion virtual' tambien habría que restar la ImageBase)...
No tiene mucho sentido sacar el offset fisico de un archivo ya q el editor hexa a la unica referencia q hace es hacia el inicio. Entonces no hay offset, sino "direcccion" o posicion, Asi:
Direccion fisica = Direccion virtual - VirtualAdrress - ImageBase + PointerToRawData
*La VirtualAdrress y PointerToRawData obviamente de la misma sección.
Weno me explico, hace poco tuve k conseguir el EntryPoint en un archivo....
Para sacar la direccion del entrypoint en el archivo en el notepad.exe, como el dato del OEP en la cabecera nos dice el offset virtual, solo hay q hacer lo siguiente:
Direccion fisica = AddressOfEntryPoint - VirtualAdrress + PointerToRawData.
Direccion fisica = 0x739d - 0x1000 + 0x400 =
0x679dSaludos!!!