为什么每次我反汇编同一个 .exe 文件时,相同的指令都在同一个地址?那是什么地址(RAM?HDD?虚拟?)?
问问题
447 次
2 回答
1
基本思想是,为了允许程序的可移植性并允许不同的程序在同一系统上运行而不会发生冲突,您所看到的基本上相当于操作系统在程序运行时将其转换为实际地址的相对地址。
您完全需要地址的原因是用于引用其他指令(例如跳转)地址的指令。
于 2010-06-14T14:53:33.853 回答
0
没有理由。这就是那个操作系统上的可执行/链接格式决定如何工作的。每种架构都是不同的,例如,即使在 x86 和 x64 上,可执行文件也可以加载到随机的虚拟地址,或者每次都加载到同一个地址。反汇编程序要么给出文件中的偏移量,要么给出一个虚拟地址,它只是在运行时确定的基地址 + 文件偏移量,可能还有一个节偏移量。这是高度依赖于架构的,所以我真的不能给出一个具体的答案......
于 2010-06-14T15:41:29.150 回答