温馨提示×

linux strings怎么找路径

小樊
35
2026-10-14 06:34:02
栏目: 智能运维

在 Linux 下,strings 命令用于从二进制文件(可执行文件、库、core dump 等)中提取可打印字符串。如果你想“用 strings 找路径”,通常是指:从程序或文件里翻出里面写死的文件路径、URL、配置路径等。

下面按常见场景说明。


一、基本用法:提取所有字符串

strings /bin/ls

二、从 strings 输出里找路径(最常用)

1️⃣ 找包含 / 的路径

strings /bin/ls | grep '/'

例如可能看到:

/etc/passwd
/usr/share/terminfo
/lib64/ld-linux-x86-64.so.2

2️⃣ 专门找常见系统路径

strings /bin/ls | grep -E '/(etc|usr|var|home|tmp|bin|lib)'

3️⃣ 找配置文件路径

strings myprogram | grep -E '\.conf|\.ini|\.yaml|\.json'

4️⃣ 找 URL(http/https)

strings myprogram | grep -E 'https?://'

三、提高准确率的方法

✅ 指定最小字符串长度(过滤噪音)

strings -n 6 myprogram

-n 6 表示只显示长度 ≥ 6 的字符串


✅ 结合 grep 更精准

strings -n 5 myprogram | grep -E '/[a-zA-Z0-9_./-]+'

四、找“程序运行时访问了哪些路径”

strings 看不到运行时行为,只能看静态字符串。
如果要“真实路径”,用以下工具:

1️⃣ strace(推荐)

strace -f -e trace=file ./myprogram

2️⃣ ltrace(库调用)

ltrace -f ./myprogram

3️⃣ lsof(运行中)

lsof -p <pid>

五、从 core dump / 内存里找路径

strings core | grep '/'

六、实战示例

strings /usr/bin/python3 | grep '/usr/lib'

或:

strings ./a.out | grep -E '/(etc|home|var)'

如果你愿意,可以告诉我:

  • 你是分析 二进制程序 / 恶意样本 / core 文件 / 固件?
  • 想找 配置文件路径 / 硬编码密钥 / 访问路径?

我可以直接给你一条“精准命令”。

0 踩