温馨提示×

Debian strings是干嘛的

小樊
48
2026-08-11 12:38:35
栏目: 智能运维

strings 不是 Debian 特有的命令,而是 Linux/Unix 下的通用工具Debian 只是把它打包进来而已。下面用一句话先说明:

strings 用来从一个二进制文件(程序、库、core 文件等)中提取“可打印的字符串”


一、strings 是干嘛的(通俗版)

当你拿到一个 编译后的程序.so 动态库,没有源码时:

strings hello

它会把里面 看起来像字符串的内容(比如提示信息、路径、URL、日志)打印出来。

✅ 常用于:

  • 看程序里 有没有硬编码的路径、URL、密码
  • 分析 未知程序
  • 逆向、取证、排错
  • 查看 ELF / 库里面用了哪些字符串

二、来看个直观例子

假设你有个程序 hello

hello

运行后输出:

Hello World

但你 没有源码,可以:

strings hello

你可能看到类似:

Hello World
/lib64/ld-linux-x86-64.so.2
printf

说明:

  • Hello World 是程序里的字符串
  • /lib64/ld-linux-x86-64.so.2 是动态链接器
  • printf 是调用的函数

三、strings 在 Debian 里属于哪个包?

在 Debian / Ubuntu 里:

dpkg -S strings

通常是:

binutils

因为 strings 属于 GNU Binutils

安装:

sudo apt install binutils

四、常见用法(非常实用)

1️⃣ 从二进制里找字符串

strings a.out

2️⃣ 只看长度 ≥ 10 的字符串

strings -n 10 a.out

3️⃣ 从动态库里找

strings /lib/x86_64-linux-gnu/libc.so.6

4️⃣ 从 core dump 找线索

strings core

五、程序员的典型使用场景

场景 说明
程序报错但看不到日志 strings 看有没有提示信息
怀疑程序里有敏感信息 查是否有明文路径、URL
Linux 逆向入门 第一步就是 strings
排查 so 依赖 看字符串里有没有路径

六、⚠️ 注意(很重要)

  • strings 不能反编译
  • 它只能看到 原样存在的字符串
  • 字符串如果 被加密 / 压缩 / 混淆,就看不到

七、总结一句话

strings 是 Linux 下从二进制文件中“挖字符串”的工具,常用于分析、排错和安全检查。

如果你愿意,我也可以:

  • 真实 ELF 文件演示 strings
  • 对比 strings vs objdump
  • 讲它在 CTF / 逆向 / 安全分析 里的用法

0