在 Ubuntu 里,strings 是一个常用命令,用来从二进制文件、core 文件或任意文件中提取可打印字符串。在脚本中使用它非常常见,下面按「基础用法 → 脚本示例 → 常见技巧」给你说明。
strings 文件名
例如:
strings /bin/ls
#!/bin/bash
FILE="$1"
if [ ! -f "$FILE" ]; then
echo "文件不存在"
exit 1
fi
strings "$FILE"
运行:
chmod +x check.sh
./check.sh /bin/ls
strings -n 8 binary_file
脚本中:
MIN_LEN=8
strings -n "$MIN_LEN" "$1"
strings -n 6 -t x binary_file # 显示十六进制偏移
脚本示例:
strings -n 6 -t x "$1" | head -20
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"
strings /bin/ls | grep -i version
file unknown_file
strings unknown_file | head
for f in *.bin; do
echo "=== $f ==="
strings "$f" | grep "KEY"
done
strings 只能提取可打印字符objdumpxxdbinwalk如果你有具体使用场景(比如逆向、固件分析、CTF、日志提取),我可以给你更针对性的脚本示例。