strings是一个非常有用的Linux工具,可以从二进制文件中提取可打印的字符串。在数据恢复场景中,它可以帮助我们从损坏的文件或磁盘中提取残留的文本内容。
strings [选项] 文件名
常用选项:
- -a
或 --all
:扫描整个文件,而不仅仅是数据段
- -n <长度>
:设置最小字符串长度(默认是4)
- -t <格式>
:输出字符串偏移量(d=十进制,o=八进制,x=十六进制)
- -e <编码>
:指定字符编码(s=7位ASCII,S=8位ASCII,b=16位大端,l=16位小端)
strings -a damaged_file.doc > recovered_text.txt
strings /dev/sda1 > recovered_data.txt
strings /proc/kcore | grep "password"
strings -n 8 /dev/sdb1 | grep -i "pass"
strings /dev/sdb1 | grep "@gmail.com" > recovered_emails.txt
strings -e l /dev/sdb2 | grep -a "PDF-" > possible_pdfs.txt
strings -t x /dev/sdc1 > strings_with_offsets.txt
对于更复杂的数据恢复需求,可以结合使用:
- ddrescue
:先创建磁盘镜像
- photorec
:专业文件恢复工具
- scalpel
:基于文件签名的恢复工具
- foremost
:另一种文件雕刻工具
strings虽然功能有限,但在快速查看二进制内容或简单恢复文本数据时非常高效。