温馨提示×

如何用linux strings查路径

小樊
46
2026-09-17 15:30:54
栏目: 智能运维

在 Linux 里,strings 本身不能直接“查路径”,但常用来从二进制文件、core 文件、内存镜像、日志文件提取可读字符串,其中往往包含路径信息。下面是常见用法和技巧。


一、基本用法(从文件中找路径)

strings /bin/ls

过滤包含路径的字符串(如 / 开头):

strings /bin/ls | grep '/'

更精确一点(看起来像绝对路径):

strings /bin/ls | grep -E '^/[^ ]+'

二、从程序中查找配置文件路径

strings /usr/sbin/nginx | grep -E '/etc|/var|/usr'

常见路径关键词:

  • /etc
  • /var/log
  • /usr/lib
  • /bin
  • .so

三、从 core 文件 / 进程内存中查路径

1️⃣ core 文件

strings core | grep '/'

2️⃣ 正在运行的进程(通过 /proc)

strings /proc/<pid>/maps | grep '/'

或查看进程打开的文件:

ls -l /proc/<pid>/fd

四、从二进制中找“写死”的路径

strings -n 6 binary | grep -E '/(usr|etc|var|home)/'
  • -n 6:只显示长度 ≥6 的字符串(减少噪音)

五、结合 objdump(更专业)

如果你是想“反查代码里的路径”:

objdump -s -j .rodata binary | strings | grep '/'

六、典型使用场景总结

场景 命令示例
查程序硬编码路径 `strings app
查配置文件位置 `strings app
查崩溃原因 `strings core
查恶意样本 `strings malware

如果你有具体场景(比如:

  • 查某个程序的日志路径
  • 查病毒里的路径
  • 查容器/so 文件
  • 查内存中的路径

可以直接说,我可以给你更精确的命令。

0