在Linux中,要反汇编AND指令,您可以使用objdump工具
binutils软件包,它包含了objdump工具。在大多数Linux发行版中,您可以使用以下命令安装:sudo apt-get install binutils # 对于基于Debian的系统(如Ubuntu)
sudo yum install binutils # 对于基于RPM的系统(如Fedora、CentOS)
example.bin的二进制文件,其中包含AND指令。要反汇编此文件,请运行以下命令:objdump -d example.bin
这将显示example.bin文件的反汇编代码。在输出中,您可以找到类似于以下的行:
080483b4 <main>:
80483b4: 55 push %ebp
80483b5: 89 e5 mov %esp,%ebp
80483b7: 83 ec 18 sub $0x18,%esp
80483ba: 8b 45 08 mov 0x8(%ebp),%eax
80483bd: 8b 55 0c mov 0xc(%ebp),%edx
80483c0: 21 d0 and %edx,%eax
80483c2: 89 45 fc mov %eax,-0x4(%ebp)
80483c5: b8 00 00 00 00 mov $0x0,%eax
80483ca: c9 leave
80483cb: c3 ret
在这个例子中,21 d0是AND指令的机器码,它将寄存器EDX和EAX的值进行按位与操作,并将结果存储在EAX寄存器中。
grep命令过滤输出:objdump -d example.bin | grep 'and'
这将显示所有包含"and"字符串的反汇编代码行。