温馨提示×

怎么用Strings分析文件

小樊
40
2026-08-02 07:07:05
栏目: 编程语言

你这里的 Strings 一般是指 strings 工具(用来从二进制/文件中提取可打印字符串),常用于逆向、取证、分析程序或日志文件。下面按常见场景给你一个实用入门指南


一、Strings 是什么?

strings 用来从非文本文件(如 ELF、exe、so、dump、日志、内存镜像)中,提取可打印的字符串,比如:

  • 文件路径
  • URL
  • 函数名
  • 错误信息
  • 配置参数

二、基本用法(Linux / macOS)

1️⃣ 最简单用法

strings 文件名

示例:

strings test.bin

2️⃣ 指定最小字符串长度(常用)

默认一般是 4 个字符,可以改成更长,减少噪音:

strings -n 8 文件名

✅ 实战中常用 -n 6 ~ 10


3️⃣ 输出字符串在文件中的偏移

strings -t x 文件名
  • x:十六进制
  • d:十进制
  • o:八进制

示例:

strings -t x test.bin

输出类似:

0x1a3c /etc/passwd
0x2b44 http://example.com

4️⃣ 只分析某一段(偏移 + 长度)

strings -o 0x1000 -n 6 test.bin

或配合 dd

dd if=test.bin bs=1 skip=4096 count=1024 | strings

三、结合 grep 精准分析(最常见)

查找 URL

strings test.bin | grep -E "http://|https://"

查找文件路径

strings test.bin | grep "/"

查找 IP

strings test.bin | grep -E "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"

查找函数名 / 关键字

strings test.bin | grep -i password

四、Windows 下使用 strings

1️⃣ 官方工具(Sysinternals)

下载:

https://learn.microsoft.com/sysinternals/downloads/strings

使用:

strings.exe test.exe

指定最小长度:

strings.exe -n 8 test.exe

五、分析文件的实战思路

分析二进制程序

strings app | grep -i error
strings app | grep -i config

分析恶意样本

strings sample | grep -E "cmd|powershell|http|/bin/sh"

分析 core dump / 内存文件

strings core | grep -i password

分析日志或未知格式文件

strings unknown_file | less

六、常见问题

strings 看不到字符串?

可能原因:

  • 字符串被加密 / 混淆
  • 字符串是 UTF-16(Windows 常见)

解决:

strings -e l test.exe   # UTF-16 LE
strings -e b test.exe   # UTF-16 BE

七、进阶工具(如果你要更深入)

  • binwalk:分析固件
  • xxd / hexdump:查看原始数据
  • radare2 / IDA:逆向分析
  • floss(FireEye):自动解密字符串

八、总结一句话

strings = 从“非文本文件”里快速找人类可读信息,配合 grep 是分析神器。

如果你愿意,可以告诉我:

  • 你分析的是 exe / elf / 日志 / core dump / 固件
  • 想找 什么信息(密码、URL、路径、协议)?

我可以直接给你针对性的命令组合

0