温馨提示×

怎样用linux strings查路径

小樊
38
2026-10-02 12:45:53
栏目: 智能运维

在 Linux 中,strings 命令用于从二进制文件(如可执行文件、库文件等)中提取可打印的字符串。如果你想“查路径”,通常是指:

  • 查看程序中硬编码的路径
  • 从二进制里找配置文件路径、日志路径、加载的库路径
  • 分析恶意程序或未知程序的路径信息

一、基本用法:从二进制中找路径

strings /path/to/binary

示例:

strings /bin/ls

二、只查“路径相关”的内容(最常用)

路径通常包含 /,可以用 grep 过滤:

strings /path/to/binary | grep '/'

只看绝对路径:

strings /path/to/binary | grep '^/'

三、查找特定路径或关键字

比如找 /etc、/var、/usr:

strings /path/to/binary | grep -E '/etc|/var|/usr'

找配置文件:

strings /path/to/binary | grep -i 'config'

四、从进程中查路径(运行中的程序)

1️⃣ 从进程内存中查

strings /proc/<PID>/exe | grep '/'

或:

cat /proc/<PID>/cmdline | tr '\0' '\n'

2️⃣ 查看程序打开的文件

lsof -p <PID>

五、查找动态库加载路径

strings /path/to/binary | grep '\.so'

或直接用:

ldd /path/to/binary

六、实用组合示例

查找可疑路径(安全分析)

strings suspicious_bin | grep -E '/tmp|/dev/shm|/root|wget|curl'

查找日志或配置路径

strings app | grep -E '\.log|\.conf|\.ini|\.yaml'

七、补充说明

  • strings 只能看到静态字符串
  • 动态拼接的路径(如 sprintf(path, "%s/%s", dir, file))看不到
  • 可配合 strace 看运行时真实路径:
    strace -f -e trace=open,openat,execve ./program
    

如果你能说清楚:

  • 是二进制文件还是正在运行的程序
  • 想找的是配置路径 / 日志路径 / 加载路径 / 恶意路径

我可以给你更精确的命令。

0 踩