温馨提示×

linux strings能提取啥内容

小樊
33
2026-10-14 06:31:00
栏目: 智能运维

在 Linux 下,strings 是一个**从二进制文件(或其他非文本文件)中提取“可打印字符串”**的命令。

一、strings 能提取什么内容?

简单来说:凡是文件中连续的可打印字符(默认长度 ≥ 4),它都能抓出来。

常见能提取到的内容包括:

1️⃣ 程序中写死的字符串

  • 提示信息
    Usage: ./app [options]
    Invalid argument
    
  • 日志信息
  • 错误信息

2️⃣ 文件路径 / 命令

/etc/passwd
/bin/sh
/usr/bin/python3

3️⃣ 函数名 / 符号名(未strip时)

main
printf
open

4️⃣ 配置项 / 关键字

username
password
timeout=30

5️⃣ URL / IP / 域名

http://example.com
192.168.1.1
api.google.com

6️⃣ 协议 / 格式标识

HTTP/1.1
SQLite format 3
PK(zip文件头)

7️⃣ 敏感信息(⚠️安全风险)

  • 硬编码密码
  • token
  • 密钥片段
  • 内部接口地址

这也是为什么 strings 常用于安全分析、逆向、取证


二、strings 提取不到什么?

❌ 压缩 / 加密内容
❌ 非连续字符
❌ 运行时的内存数据
❌ 被混淆或分段存储的字符串


三、常用示例

strings file.bin
# 提取长度 ≥ 6 的字符串
strings -n 6 file.bin
# 显示字符串在文件中的偏移
strings -t x file.bin
# 从内存/进程提取
strings /proc/<pid>/mem
# 结合 grep
strings app | grep -i password

四、典型使用场景

  • ✅ 分析未知二进制文件
  • ✅ CTF / 逆向工程
  • ✅ 恶意软件分析
  • ✅ 排查硬编码密钥
  • ✅ 快速看程序“说了什么”

如果你有具体文件类型(ELF / PE / 固件 / 内存),我可以给你更针对性的用法。

0 踩