Linux二进制查看命令
-
Linux中查看二进制文件的命令有多种,下面会介绍几个常用的命令。
1. `file`命令
`file`命令用于确定文件的类型。可以使用该命令查看二进制文件的信息,例如架构类型、文件类型等。
例如,要查看`/usr/bin/bash`文件的信息:
“`
file /usr/bin/bash
“`输出示例:
“`
/usr/bin/bash: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, stripped
“`2. `readelf`命令
`readelf`命令用于显示ELF格式的二进制文件的详细信息。ELF(Executable and Linkable Format)是Linux中常用的二进制文件格式。
例如,要查看`/usr/bin/bash`文件的ELF信息:
“`
readelf -a /usr/bin/bash
“`输出示例:
“`
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2’s complement, little endian
Version: 1 (current)
OS/ABI: UNIX – System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x401000
Start of program headers: 64 (bytes into file)
…
“`3. `objdump`命令
`objdump`命令用于显示目标文件(包括二进制文件和目标文件)的详细信息。
例如,要查看`/usr/bin/bash`文件的反汇编代码:
“`
objdump -d /usr/bin/bash
“`输出示例:
“`
/usr/bin/bash: file format elf64-x86-64Disassembly of section .init:
0000000000401098 <_init>:
401098: 48 83 ec 08 sub $0x8,%rsp
40109c: 48 8b 05 d9 1f 2c 00 mov 0x2c1fd9(%rip),%rax # 6c2080 <_DYNAMIC+0x200>
4010a3: 48 85 c0 test %rax,%rax
4010a6: 74 05 je 4010ad <_init+0x15>
…
“`这些命令可以帮助我们查看二进制文件的类型、架构和详细信息,进一步了解文件的特性。在Linux系统中,这些命令在日常调试和分析二进制文件时非常有用。
2年前 -
在Linux系统下,可以使用以下二进制查看命令来查看二进制文件的信息:
1. file命令:file命令可以用来确定一个文件的类型。它会检查二进制文件的魔术数字和文件签名,然后给出相应的文件类型。例如,可以使用file命令查看二进制文件是否是可执行文件、文本文件、图像文件等等。
示例:file /path/to/file
2. readelf命令:readelf命令用来查看ELF格式的二进制文件的信息。ELF(Executable and Linkable Format)是Linux下通用的二进制文件格式。readelf命令可以显示二进制文件的段、节、符号、动态链接等信息。
示例:readelf -a /path/to/file
3. nm命令:nm命令用来列出目标文件或者共享库中的符号表。符号表记录了二进制文件中的全局变量、函数等符号的位置和属性。nm命令可以用来查看二进制文件中的符号信息。
示例:nm /path/to/file
4. objdump命令:objdump命令可以显示二进制文件的汇编代码。它可以将二进制文件反汇编为汇编代码,并且可以查看汇编代码中的符号、注释等信息。
示例:objdump -d /path/to/file
5. strings命令:strings命令用来从一个二进制文件中提取可打印的字符串。它可以用来获取二进制文件中的文本信息,包括文件名、函数名、常量等等。
示例:strings /path/to/file
这些二进制查看命令可以帮助我们了解和分析二进制文件的内容和结构,对于开发和调试工作非常有用。请注意,有些命令可能需要安装相应的包才能使用,可以使用包管理器来安装这些工具。
2年前 -
在Linux系统中,我们可以使用一些命令来查看二进制文件的相关信息。下面是一些常用的Linux二进制查看命令及其用法:
1. file命令:file命令可以用来确定某个文件的类型。
语法:file [文件路径]
例如:
file /usr/bin/python3输出:
/usr/bin/python3: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 2.6.32, build with …2. objdump命令:objdump命令用于显示被编译程序的目标文件或者可执行文件的信息。
语法:objdump [选项] [文件路径]
例如:
objdump -x /usr/bin/python3输出:
/usr/bin/python3: file format elf64-x86-64
/usr/bin/python3
architecture: i386:x86-64, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x00000000004036503. readelf命令:readelf命令用于显示可执行文件或者目标文件的ELF格式头部信息。
语法:readelf [选项] 文件路径
例如:
readelf -h /usr/bin/python3输出:
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2’s complement, little endian
Version: 1 (current)
OS/ABI: UNIX – System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x403710
Start of program headers: 64 (bytes into file)
Start of section headers: 30352 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 9
Size of section headers: 64 (bytes)
Number of section headers: 32
Section header string table index: 314. ldd命令:ldd命令用于显示一个程序所依赖的动态链接库。
语法:ldd [选项] [文件路径]
例如:
ldd /usr/bin/python3输出:
…
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdeb2413000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdeb21f4000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdeb21ee000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fdeb21ea000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdeb1ffe000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdeb2815000)
…通过使用上述命令,我们可以获取到二进制文件的类型、架构、链接库等相关信息,这对于我们进一步分析和调试二进制文件非常有帮助。
2年前