插件窝 干货文章 如何结合其他Linux命令使用strings

如何结合其他Linux命令使用strings

字符串 strings 文件 二进制 697    来源:    2025-05-07

strings 是 Linux 中一个非常实用的工具,用于从二进制文件中提取可打印字符串。结合其他 Linux 命令,可以发挥更强大的作用。以下是一些常见的组合用法和示例:


1. 结合 grep 过滤特定字符串

strings file.bin | grep "keyword"
  • 作用:从二进制文件中提取字符串并搜索包含 "keyword" 的行。
  • 示例bash strings /usr/bin/ls | grep "GNU" 输出 ls 二进制文件中所有包含 "GNU" 的字符串。

2. 结合 wc 统计字符串数量

strings file.bin | wc -l
  • 作用:统计二进制文件中可打印字符串的总行数。
  • 示例bash strings /bin/bash | wc -l 统计 bash 二进制文件中的字符串数量。

3. 结合 sortuniq 去重并排序

strings file.bin | sort | uniq -c | sort -nr
  • 作用:提取字符串后排序,统计重复次数并按频率降序排列。
  • 示例bash strings /usr/bin/python3 | sort | uniq -c | sort -nr 列出 python3 二进制文件中最常见的重复字符串。

4. 结合 lessmore 分页查看

strings file.bin | less
  • 作用:分页浏览提取的字符串,避免终端输出过长。
  • 示例bash strings /sbin/init | less

5. 结合 file 先确认文件类型

file file.bin && strings file.bin | head -n 20
  • 作用:先确认文件类型,再提取前 20 个字符串。
  • 示例bash file /usr/bin/curl && strings /usr/bin/curl | head -n 20

6. 结合 odxxd 分析二进制上下文

strings -td file.bin | awk '{print $1}' | xargs -I{} od -j {} -N 16 -Ax -tx1 file.bin
  • 作用:提取字符串的偏移量(-td 显示十进制偏移),并用 od 查看该位置的十六进制内容。
  • 示例bash strings -td /bin/ls | head -n 1 | awk '{print $1}' | xargs -I{} od -j {} -N 16 -Ax -tx1 /bin/ls 查看 /bin/ls 中第一个字符串的二进制上下文。

7. 结合 strace 动态分析程序调用的字符串

strace -e trace=open,read,write ./program 2>&1 | strings
  • 作用:捕获程序运行时调用的文件或数据中的字符串。
  • 示例bash strace -e trace=open,read /bin/ls 2>&1 | strings

8. 结合 find 批量分析目录下的二进制文件

find /usr/bin -type f -exec strings {} + | grep "libc"
  • 作用:递归检查 /usr/bin 下所有文件,提取包含 "libc" 的字符串。
  • 参数说明
    • -type f:仅限普通文件。
    • -exec strings {} +:对每个文件执行 strings

9. 结合 objdump 反汇编后提取字符串

objdump -s -j .rodata file.bin | strings
  • 作用:从二进制文件的 .rodata(只读数据段)中提取字符串。

10. 结合 perlpython 处理复杂逻辑

strings file.bin | perl -ne 'print if length($_) > 20'
  • 作用:仅输出长度超过 20 个字符的字符串。

参数补充说明

  • strings -a:扫描整个文件(默认跳过非文本段)。
  • strings -n 5:仅显示长度 ≥5 的字符串(默认 ≥4)。
  • strings -t x:显示字符串的十六进制偏移量。

典型应用场景

  1. 逆向工程:分析二进制文件中的硬编码密钥或敏感信息。
  2. 调试:检查程序崩溃时输出的错误字符串。
  3. 安全审计:查找潜在的后门或隐藏信息。

通过灵活组合这些命令,可以高效地完成二进制文件分析任务!