插件窝 干货文章 Linux strings命令如何提取二进制文件中的文本信息

Linux strings命令如何提取二进制文件中的文本信息

strings 文件 文件名 bash 685    来源:    2025-05-06

Linux strings命令提取二进制文件中的文本信息

strings命令是Linux中用于从二进制文件中提取可打印字符序列(文本信息)的实用工具。它可以扫描文件并查找至少4个(默认)连续可打印字符的ASCII或Unicode字符串。

基本用法

strings 文件名

这会输出文件中所有长度≥4的可打印字符序列。

常用选项

  1. 设置最小字符串长度

    strings -n 长度 文件名
    

    例如,查找至少8个字符的字符串:

    strings -n 8 /bin/ls
    
  2. 指定编码

    strings -e 编码 文件名
    

    支持的编码:

    • s - 7位ASCII(默认)
    • S - 8位ASCII
    • b - 16位大端序Unicode
    • l - 16位小端序Unicode
    • B - 32位大端序Unicode
    • L - 32位小端序Unicode
  3. 输出字符串位置

    strings -t 格式 文件名
    

    格式可以是:

    • d - 十进制偏移量
    • o - 八进制偏移量
    • x - 十六进制偏移量
  4. 仅扫描数据段

    strings -d 文件名
    

    只扫描文件的初始化数据段和加载段。

  5. 输出到文件

    strings 文件名 > 输出文件.txt
    

实际应用示例

  1. 分析可执行文件:

    strings /usr/bin/ssh
    
  2. 查找特定字符串(结合grep):

    strings /bin/ls | grep "GNU"
    
  3. 分析核心转储文件:

    strings core.1234
    
  4. 分析网络数据包:

    strings packet.pcap
    

注意事项

  • 默认情况下,strings会扫描整个文件,包括可能不包含可执行代码的部分
  • 对于非常大的文件,输出可能会很多,建议重定向到文件或结合grep使用
  • 某些二进制文件可能包含压缩或加密数据,strings可能无法提取有意义的信息

strings命令在逆向工程、调试和安全分析中非常有用,可以快速查看二进制文件中嵌入的文本信息。