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
在如何反汇编原始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,否则这将无法工作.