先把机器码存为二进制文件,然后objdump:
[root@ test]# echo -e -n `echo ba000000004885ff74144889fa8b073b02480f4cd7488b7f084885ff75ef4889d0c3 | sed -r 's/(..)/\\\x\1/g'` >f.bin
[root@ test]# hexdump f.bin
0000000 00ba 0000 4800 ff85 1474 8948 8bfa 3b07
0000010 4802 4c0f 48d7 7f8b 4808 ff85 ef75 8948
0000020 c3d0
0000022
[root@ test]# objdump -D -b binary -m i386:x86-64 f.bin
f.bin: file format binary
Disassembly of section .data:
0000000000000000 <.data>:
0: ba 00 00 00 00 mov $0x0,%edx
5: 48 85 ff test %rdi,%rdi
8: 74 14 je 0x1e
a: 48 89 fa mov %rdi,%rdx
d: 8b 07 mov (%rdi),%eax
f: 3b 02 cmp (%rdx),%eax
11: 48 0f 4c d7 cmovl %rdi,%rdx
15: 48 8b 7f 08 mov 0x8(%rdi),%rdi
19: 48 85 ff test %rdi,%rdi
1c: 75 ef jne 0xd
1e: 48 89 d0 mov %rdx,%rax
21: c3 retq
-D表示disassemble-all,
-b binary表示是二进制文件,
-m i386:x86-64表示架构是x86-64.