温馨提示×

为什么要用linux strings命令

小樊
33
2026-09-02 10:39:59
栏目: 智能运维

strings 命令是 Linux 下非常实用的一个工具,主要用来从一个二进制文件(或其他非文本文件)中提取可打印的字符串。下面从「为什么要用」「常见用途」「典型场景」几个角度说明。


一、为什么要用 strings

很多文件(如可执行程序、动态库、图片、压缩包、core dump 等)本质上是二进制文件,用 catvim 直接看会是一堆乱码。
但这些文件中往往夹杂着人类可读的文本信息,例如:

  • 程序里的日志、提示信息
  • 文件路径
  • 函数名、符号名
  • 配置项、URL
  • 错误信息
  • 版本号

strings 的作用就是:把这些“藏”在二进制里的文字找出来


二、常见使用场景

1. 分析未知程序 / 排查问题

strings ./a.out | grep -i error

快速查看程序里包含哪些错误提示,帮助定位问题。


2. 查看程序版本、作者、编译信息

strings /bin/ls | grep -i version

很多程序会把版本信息硬编码进二进制。


3. 安全分析 / 逆向初探

  • 查看是否包含可疑 URL
  • 查找硬编码的密码、密钥
  • 判断程序是否加壳
strings malware.bin | grep http

4. 查看依赖的文件路径

strings app | grep "\.so"

5. 分析 core dump 或崩溃文件

从崩溃文件中提取可能的函数名或日志。


6. 快速“偷看”文件内容

比如:

strings image.jpg

有时能发现 EXIF、软件名、注释等文本信息。


三、基本用法示例

strings file
strings -n 6 file     # 只显示长度 ≥6 的字符串
strings -e l file     # 指定字符编码(如 16-bit little endian)

四、总结一句话

当你面对一个“看不懂”的二进制文件,但又想知道里面写了什么文字时,就用 strings

如果你愿意,我也可以结合具体例子(比如分析某个程序、CTF 题目、漏洞分析)来演示 strings 的实际用法。

0