Assembly 基于PE节标题中的VirutaladAddress属性的偏移量计算不正确

Assembly 基于PE节标题中的VirutaladAddress属性的偏移量计算不正确,assembly,reverse-engineering,offset,ghidra,Assembly,Reverse Engineering,Offset,Ghidra,我已经用平面汇编程序创建了一个简单的.exe文件,它实际上什么也不做,只是有一条指令 format pe64 use64 section '.text' code executable readable mov eax, 20 创建之后,我在Ghidra中打开了可执行文件,它自动检测到语言为PE->x86:LE:64:default:windows,这对我来说似乎还可以 现在,第一个地址是00400000,根据MSDN(默认ImageBase)的PE格式,它似乎也很好 现在,当我转到Virt

我已经用平面汇编程序创建了一个简单的.exe文件,它实际上什么也不做,只是有一条指令

format pe64
use64
section '.text' code executable readable
mov eax, 20 
创建之后,我在Ghidra中打开了可执行文件,它自动检测到语言为PE->x86:LE:64:default:windows,这对我来说似乎还可以

现在,第一个地址是00400000,根据MSDN(默认ImageBase)的PE格式,它似乎也很好

现在,当我转到VirtualAddress属性时,该属性将给出输入函数相对于ImageBase的位置,Ghidra显示以下4个字节:00 10 00

现在,也许我的计算不正确,但偏移量计算不应该是:0x400000+0x100000,也就是0x500000

这个偏移量不在我的图像中。当我转到Ghidra中的入口点(主功能)时,它位于偏移量0x401000


那么我的数学错了吗?如果我从VirtualAddress属性中删除1个字节,它正好是该位置,但它将仅为3个字节,但PE格式显示该属性为4个字节。

字节以小尾端形式显示<代码>00 10 00 00是
0x00001100
。啊,是的,结尾。。。非常感谢:)字节是用小尾端的<代码>00 10 00 00是
0x00001100
。啊,是的,结尾。。。非常感谢:)