世界杯门票_托马斯穆勒世界杯进球数 - noh16.com

世界杯门票_托马斯穆勒世界杯进球数 - noh16.com

shape
  • Home
  • 法国世界杯名单
  • 二进制文件阅读与分析入门指南

二进制文件阅读与分析入门指南

  • 2026-06-23 00:32:13
  • admin

ChatGPT生成(2025年10月29日22:11:13)

目录二进制文件阅读与分析入门指南一、file —— 识别文件类型(入门首选)二、xxd —— 最常用的十六进制查看器三、hexdump / hd —— 经典十六进制查看方式四、strings —— 提取文件中的可读文本五、bvi —— 可交互的二进制编辑器六、readelf —— 查看 ELF 程序结构(进阶)七、ldd —— 查看程序依赖的共享库八、常用工作流程示例九、工具选型总结表

二进制文件阅读与分析入门指南

一、file —— 识别文件类型(入门首选)

简介:

file 命令可以识别文件类型,是分析任何未知文件的第一步。

它能判断文件是否是文本、图片、压缩包、可执行程序(ELF)、音频等。

# 查看文件类型

file example.bin

# 显示MIME类型(如 text/plain、application/octet-stream)

file -i example.bin

# 查看压缩文件内部的类型

file -z archive.gz

# 示例输出:

# example.bin: data

# /bin/ls: ELF 64-bit LSB executable, x86-64, dynamically linked, stripped

二、xxd —— 最常用的十六进制查看器

简介:

xxd 能将二进制文件以“十六进制 + ASCII”形式显示,非常直观。

是最常见、最轻量的二进制阅读工具。

# 显示整个文件的十六进制内容

xxd file.bin

# 只显示前256个字节(l = length)

xxd -l 256 file.bin

# 从偏移0x100处开始显示(s = skip)

xxd -s 0x100 file.bin

# 反向操作:将十六进制文本恢复成二进制

xxd -r hex.txt binary.out

输出示例:

00000000: 4d5a 9000 0300 0000 0400 0000 ffff 0000 MZ..............

00000010: b800 0000 0000 0000 4000 0000 0000 0000 ........@.......

左边是偏移量,中间是十六进制数据,右边是可显示字符。

三、hexdump / hd —— 经典十六进制查看方式

简介:

hexdump 与 xxd 类似,用于查看文件内容的十六进制表示。

不同的是它的显示风格稍有区别,也很适合做文件对比。

# 以经典格式显示文件内容

hexdump -C file.bin

# 显示16进制,每两字节为一组

hexdump -x file.bin

# 简短命令(hd 是 hexdump -Cv 的简写)

hd file.bin

四、strings —— 提取文件中的可读文本

简介:

strings 可以从二进制文件中提取出人类可读的字符串。

非常适合查找程序中的提示信息、路径、域名、版本号等。

# 提取所有可见字符串

strings file.bin

# 只显示长度 ≥ 8 的字符串

strings -n 8 file.bin

# 在所有段中查找(包括数据段)

strings -a file.bin

# 显示字符串在文件中的偏移地址

strings -t x file.bin # 十六进制偏移

strings -t d file.bin # 十进制偏移

示例输出:

/lib64/ld-linux-x86-64.so.2

libc.so.6

Hello, world!

五、bvi —— 可交互的二进制编辑器

简介:

bvi 类似于 Vim,但用于直接编辑二进制文件。

你可以查看、修改、搜索特定字节,非常适合需要人工修改数据的场景。

# 打开一个二进制文件进行编辑

bvi file.bin

# 编辑界面中可以:

# - 移动光标浏览字节内容

# - 使用 / 搜索十六进制或文本

# - 修改数据后保存(:wq)

六、readelf —— 查看 ELF 程序结构(进阶)

简介:

如果文件是一个 Linux 可执行程序(ELF 格式),readelf 能读取其中的详细结构信息,

包括头部信息、段、符号表、动态链接信息等。

# 查看 ELF 文件头信息

readelf -h program

# 查看段(Sections)

readelf -S program

# 查看程序头(Program Headers)

readelf -l program

# 查看动态库依赖

readelf -d program

# 查看符号表

readelf -s program

快速判断是否为 ELF 文件:

file program | grep -q "ELF" && echo "是 ELF 文件"

七、ldd —— 查看程序依赖的共享库

简介:

ldd 命令用于显示可执行文件或动态库依赖的其它库文件。

这是分析 Linux 程序时必备的命令。

# 查看程序依赖的动态库

ldd /bin/ls

# 检查是否有未解析的符号

ldd -r program

八、常用工作流程示例

目标:快速分析一个未知的二进制文件内容

#!/bin/bash

# analyze_binary.sh

# 一个快速分析二进制文件的示例脚本

FILE=$1

echo "=== 文件类型分析 ==="

file "$FILE" # 判断文件类型

echo -e "\n=== 字符串提取(部分) ==="

strings -n 8 "$FILE" | head -10 # 显示前10个可读字符串

echo -e "\n=== 十六进制预览(前5行) ==="

xxd -l 128 "$FILE" # 预览前128字节内容

echo -e "\n=== ELF结构检查 ==="

if file "$FILE" | grep -q "ELF"; then

echo "ELF头信息:"

readelf -h "$FILE" | head -10

echo -e "\n依赖库:"

ldd "$FILE"

fi

九、工具选型总结表

任务目标

推荐工具

示例命令

识别文件类型

file

file file.bin

查看文件内容

xxd / hexdump

xxd -l 128 file.bin

提取字符串

strings

strings -n 8 file.bin

编辑二进制数据

bvi

bvi file.bin

分析ELF结构

readelf

readelf -h program

查看依赖库

ldd

ldd /bin/ls

这份整理的逻辑是:

先看文件是什么(file)

再看里面的数据(xxd / hexdump)

提取出可读的文本(strings)

如需修改,用 bvi

如果文件是程序,再看结构(readelf)和依赖(ldd)

<<<
Previous Post
机箱走线与理线完全指南:打造整洁高效的电脑内部空间 教程

Copyright © 2088 世界杯门票_托马斯穆勒世界杯进球数 - noh16.com All Rights Reserved.

友情链接