strings 命令是 Linux 下非常实用的一个工具,主要用来从一个二进制文件(或其他非文本文件)中提取可打印的字符串。下面从「为什么要用」「常见用途」「典型场景」几个角度说明。
strings?很多文件(如可执行程序、动态库、图片、压缩包、core dump 等)本质上是二进制文件,用 cat、vim 直接看会是一堆乱码。
但这些文件中往往夹杂着人类可读的文本信息,例如:
strings 的作用就是:把这些“藏”在二进制里的文字找出来。
strings ./a.out | grep -i error
快速查看程序里包含哪些错误提示,帮助定位问题。
strings /bin/ls | grep -i version
很多程序会把版本信息硬编码进二进制。
strings malware.bin | grep http
strings app | grep "\.so"
从崩溃文件中提取可能的函数名或日志。
比如:
strings image.jpg
有时能发现 EXIF、软件名、注释等文本信息。
strings file
strings -n 6 file # 只显示长度 ≥6 的字符串
strings -e l file # 指定字符编码(如 16-bit little endian)
当你面对一个“看不懂”的二进制文件,但又想知道里面写了什么文字时,就用
strings。
如果你愿意,我也可以结合具体例子(比如分析某个程序、CTF 题目、漏洞分析)来演示 strings 的实际用法。