有没有办法从机器代码中获取助记符?

vik*_*cks 2 assembly machine-code

我有一个简单的程序集程序

.text
.globl _start
_start:
        movl $1, %eax
        movl $1, %ebx
        int $0x80
Run Code Online (Sandbox Code Playgroud)

我已经组装好了.我已将其内容转储如下

root@bt:~# objdump -d out     
out:     file format elf32-i386
Disassembly of section .text:

08048054 <_start>:
 8048054:       b8 01 00 00 00          mov    $0x1,%eax
 8048059:       bb 01 00 00 00          mov    $0x1,%ebx
 804805e:       cd 80                   int    $0x80
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,如果只给出下面的机器代码,我能否找回助记符 \xb8\x01\x00\x00\x00\xbb\x01\x00\x00\x00\xcd\x80

Eiv*_*und 5

如何反汇编原始x86代码中有相当详细的记录

为了做你的具体例子,这对我有用(在Linux机器上,使用GNU工具链):

printf '\xb8\x01\x00\x00\x00\xbb\x01\x00\x00\x00\xcd\x80' > /tmp/binary
objdump -D -b binary -mi386 /tmp/binary
Run Code Online (Sandbox Code Playgroud)

以此作为选项的简短文档:

           [-D|--disassemble-all]
           [-b bfdname|--target=bfdname]
           [-m machine|--architecture=machine]
Run Code Online (Sandbox Code Playgroud)

i386指定目标.我不得不从原始示例命令中删除addr16和data16,否则这将无法工作.