S7_*_*7_0 2 command-line assembler
我目前正在学习 ASM 编程,我想反汇编一个文件.c. 但是在执行命令行后
set disassembly-flavor test.c
Run Code Online (Sandbox Code Playgroud)
我使用命令:
disassembly test.c
Run Code Online (Sandbox Code Playgroud)
我的终端显示
disassemble: command not found
Run Code Online (Sandbox Code Playgroud)
有谁知道我可以在我的电脑上得到“反汇编”命令吗?
谢谢
首先,带有.c扩展名的文件很可能是 C 源文件。拆了也没用。要验证文件实际上是程序,请使用以下file命令:
$ file test.c
test.c: ASCII text
$ file /bin/bash
/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked
(uses shared libs), for GNU/Linux 2.6.24,
BuildID[sha1]=54967822da027467f21e65a1eac7576dec7dd821, stripped
Run Code Online (Sandbox Code Playgroud)
至于拆卸,请objdump改用。从联机帮助页:
NAME
objdump - display information from object files.
SYNOPSIS
objdump [...]
[-d|--disassemble]
Run Code Online (Sandbox Code Playgroud)
所以要反汇编,比方说,一个名为 的文件a.out,使用
$ objdump -d a.out
a.out: file format elf64-x86-64
Disassembly of section .init:
00000000004003a8 <_init>:
4003a8: 48 83 ec 08 sub $0x8,%rsp
4003ac: 48 8b 05 45 0c 20 00 mov 0x200c45(%rip),%rax # 600ff8 <_DYNAMIC+0x1d0>
4003b3: 48 85 c0 test %rax,%rax
4003b6: 74 05 je 4003bd <_init+0x15>
4003b8: e8 33 00 00 00 callq 4003f0 <__gmon_start__@plt>
4003bd: 48 83 c4 08 add $0x8,%rsp
4003c1: c3 retq
[...] and so on...
Run Code Online (Sandbox Code Playgroud)