user135142 Asked: 2021-12-07 08:45:52 +0800 CST2021-12-07 08:45:52 +0800 CST 2021-12-07 08:45:52 +0800 CST 比“objdump -d”更好的汇编程序? 772 我注意到在使用时objdump -d,它会输出程序集(intel 语法或 AT&T 语法)、二进制操作码编码和地址编号。就我而言,我只希望反汇编程序只输出 AT&T 程序集,因为删除前 18-24 个字符(是的,没有计算在内)将程序集从一个目标文件复制到程序集文件是令人讨厌的。谁能帮忙? ubuntu assembly 2 个回答 Voted Best Answer Marcus Müller 2021-12-07T08:48:23+08:002021-12-07T08:48:23+08:00 谁能帮忙? 是的!man objdump能够。寻找美国电话电报公司(/AT&T enter)!那么,--no-addresses 应该工作。 您可以使用选项传递您最喜欢的汇编语法模式-M;在你的情况下,-M att。 如果您想要一个通用性更强的反汇编程序,请尝试radare2(尽管需要半小时才能习惯)。 Stephen Kitt 2021-12-07T08:58:31+08:002021-12-07T08:58:31+08:00 Marcus Müller 的回答--no-addresses中提到的标志是在 Binutils 2.35 中引入的。对于旧版本(Ubuntu 20.04 或更早版本,RHEL 8 或更早版本),您可以通过切换到具有固定宽度地址且没有编码指令的旧反汇编输出,然后修剪输出来获得相同的结果。在 64 位平台上:objdump objdump -d --prefix-addresses ... | cut -c20-
是的!
man objdump
能够。寻找美国电话电报公司(/AT&T enter)!那么,--no-addresses
应该工作。您可以使用选项传递您最喜欢的汇编语法模式
-M
;在你的情况下,-M att
。如果您想要一个通用性更强的反汇编程序,请尝试
radare2
(尽管需要半小时才能习惯)。Marcus Müller 的回答
--no-addresses
中提到的标志是在 Binutils 2.35 中引入的。对于旧版本(Ubuntu 20.04 或更早版本,RHEL 8 或更早版本),您可以通过切换到具有固定宽度地址且没有编码指令的旧反汇编输出,然后修剪输出来获得相同的结果。在 64 位平台上:objdump