在 Linux 里,strings 命令本身不是专门用来“找路径”的工具,但它可以从二进制文件、core 文件、日志、内存镜像等里面提取可读字符串,而路径通常就是一些可读字符串(如 /usr/bin/xxx、/etc/passwd 等)。
下面按常见场景说明如何用 strings 找路径。
strings 文件名 | grep '/'
示例:
strings /bin/ls | grep '/'
这会列出 ls 二进制里包含 / 的字符串,通常就是路径或配置相关字符串。
strings file | grep -E '^/'
strings file | grep -E '/(etc|usr|var|home|bin|lib|tmp)/'
strings file | grep -E '/[a-zA-Z0-9_./-]+'
strings /proc/<PID>/maps
strings /proc/<PID>/environ
cat /proc/<PID>/mem | strings | grep '/'
(需要权限,可能要用 gdb 或 root)
strings core | grep '/'
或:
strings memory.img | grep -E '/usr/|/etc/|/home/'
file 看类型file binary
grep + sort + uniqstrings binary | grep '/' | sort | uniq
xargs 验证路径是否存在strings binary | grep '^/' | sort -u | xargs ls -l 2>/dev/null
| 场景 | 命令示例 |
|---|---|
| 分析木马/后门 | `strings malware |
| 找程序写死路径 | `strings app |
| 取证分析 | `strings mem.dump |
| 逆向初学者 | `strings binary |
strings 只能看到明文路径/var/log/ + app.log)如果你能告诉我:
我可以给你更精准的命令。