温馨提示×

如何在脚本用ubuntu strings

小樊
46
2026-09-03 09:48:54
栏目: 智能运维

在 Ubuntu 里,strings 是一个常用命令,用来从二进制文件、core 文件或任意文件中提取可打印字符串。在脚本中使用它非常常见,下面按「基础用法 → 脚本示例 → 常见技巧」给你说明。


一、基本命令

strings 文件名

例如:

strings /bin/ls

二、在 Shell 脚本中使用

示例 1:基本脚本

#!/bin/bash

FILE="$1"

if [ ! -f "$FILE" ]; then
    echo "文件不存在"
    exit 1
fi

strings "$FILE"

运行:

chmod +x check.sh
./check.sh /bin/ls

示例 2:只显示长度 ≥ N 的字符串

strings -n 8 binary_file

脚本中:

MIN_LEN=8
strings -n "$MIN_LEN" "$1"

示例 3:在指定偏移范围内提取字符串

strings -n 6 -t x binary_file   # 显示十六进制偏移

脚本示例:

strings -n 6 -t x "$1" | head -20

三、结合 grep 使用(非常常见)

strings binary | grep "password"

脚本示例:

#!/bin/bash

FILE="$1"
KEYWORD="$2"

strings "$FILE" | grep "$KEYWORD"

使用:

./find_str.sh app.bin password

四、将结果保存到文件

strings binary > strings.txt

脚本:

strings "$1" > "${1}.strings.txt"
echo "已保存到 ${1}.strings.txt"

五、常见实用技巧

1️⃣ 提取 ELF 中的版本信息

strings /bin/ls | grep -i version

2️⃣ 分析未知文件类型

file unknown_file
strings unknown_file | head

3️⃣ 批量处理多个文件

for f in *.bin; do
    echo "=== $f ==="
    strings "$f" | grep "KEY"
done

六、注意事项

  • strings 只能提取可打印字符
  • 对加密或压缩内容通常无效
  • 在分析恶意软件或固件时,常配合:
    • objdump
    • xxd
    • binwalk

如果你有具体使用场景(比如逆向、固件分析、CTF、日志提取),我可以给你更针对性的脚本示例。

0