Linux objdump调整gnu实用程序中的vma偏移量
在gnu二进制实用程序中,他们说Linux objdump调整gnu实用程序中的vma偏移量,linux,unix,assembly,gnu,objdump,Linux,Unix,Assembly,Gnu,Objdump,在gnu二进制实用程序中,他们说 objdump --adjust-vma=offset 转储信息时,首先向所有节地址添加偏移量。这 如果节地址与符号表不对应,则此选项非常有用,因为符号表 在使用格式时,将节放在特定地址时可能发生这种情况 它不能表示节地址,例如a.out 我试着去理解它,但我无法理解,所以有人能向我解释这个选项的作用吗?在现实生活中,什么情况需要此选项?此选项在尝试反汇编DOS COM二进制文件时非常有用。COM二进制文件是一个没有任何头的程序映像,它被加载到某个段中的地址0
objdump --adjust-vma=offset
转储信息时,首先向所有节地址添加偏移量。这
如果节地址与符号表不对应,则此选项非常有用,因为符号表
在使用格式时,将节放在特定地址时可能发生这种情况
它不能表示节地址,例如a.out
我试着去理解它,但我无法理解,所以有人能向我解释这个选项的作用吗?在现实生活中,什么情况需要此选项?此选项在尝试反汇编DOS COM二进制文件时非常有用。COM二进制文件是一个没有任何头的程序映像,它被加载到某个段中的地址0x100,并通过跳转到地址0x100来执行
objdump
不知道这一点(毕竟,无法检测文件是否为COM二进制文件),并将二进制文件反汇编为加载到地址0。传递--adjust vma=0x100
修复了此行为,并使objdump
反汇编二进制文件,就好像它被加载到0x100(这是我们想要的)一样。此外,另一个用例是重新定位自身的代码(原型示例是IBM-PC中的代码)根据原始代码和元数据是针对源地址还是目标地址(其中一个是可能的,但不能同时针对两个),此选项允许您显示备用转储。offset
是您在命令行上传递的数字,用于修复输出。这是一个添加到每个打印地址的数字。(显然,objdump
无法从某些格式的文件元数据中获取该信息)。