温馨提示×

怎样学debian strings命令

小樊
34
2026-10-12 21:45:38
栏目: 智能运维

学习 Debian 中的 strings 命令(实际上它是 binutils 提供的工具,不只在 Debian,在所有 Linux 发行版都可用),可以从“是什么 → 怎么用 → 实战练习”三步来学。


一、strings 是什么

strings 命令用于从一个二进制文件或任意文件中提取可打印的字符串(通常是 ASCII 或 Unicode 文本)。

常见用途:

  • 分析二进制程序(ELF)
  • 查看程序中硬编码的路径、URL、提示信息
  • 逆向分析、取证、排错

二、基本用法

1️⃣ 最简单用法

strings file

从 file 中提取所有可打印字符串。


2️⃣ 指定最小长度(默认是 4)

strings -n 6 file

只显示长度 ≥ 6 的字符串。


3️⃣ 显示字符串偏移地址

strings -t x file     # 十六进制
strings -t d file     # 十进制

常用于逆向分析。


4️⃣ 指定字符编码

strings -e s file   # 7-bit ASCII(默认)
strings -e l file   # 16-bit little endian
strings -e b file   # 16-bit big endian

5️⃣ 从标准输入读取

cat binary | strings

三、在 Debian 上安装

strings 属于 binutils:

sudo apt update
sudo apt install binutils

验证:

which strings
strings --version

四、实战练习(推荐)

练习 1:分析自己的程序

// hello.c
#include <stdio.h>
int main() {
    printf("Hello Debian strings!\n");
    return 0;
}
gcc hello.c -o hello
strings hello

你会看到 "Hello Debian strings!"


练习 2:分析系统命令

strings /bin/ls | less

看看里面有哪些路径、错误信息。


练习 3:配合 grep

strings /usr/bin/python3 | grep -i version

五、进阶用法

结合 objdump

objdump -s -j .rodata binary

结合 gdb

在调试时查看字符串常量。


六、学习建议路线

  1. 先会用 strings file
  2. 学 -n / -t 参数
  3. 分析 /bin/*
  4. 学 ELF 基础(section、.rodata)
  5. 配合 objdump / readelf

如果你愿意,我可以:

  • 给你一套 strings 练习题
  • 用 具体二进制例子 带你分析
  • 教你 如何用 strings 做 CTF / 逆向入门

你想从哪一步开始?

0 踩