温馨提示×

怎样分析ubuntu strings结果

小樊
42
2026-09-03 09:43:58
栏目: 智能运维

在 Ubuntu(或其他 Linux 系统)中,strings 命令用于从二进制文件、core 文件或内存镜像中提取可打印的字符串。分析 strings 结果,通常是为了逆向分析、取证、排查问题或了解程序行为。下面从基本用法 → 结果分析思路 → 实战技巧三个方面说明。


一、strings 基本用法

1. 基本命令

strings /path/to/binary

示例:

strings /bin/ls

2. 常用参数

strings -n 6 file        # 只显示长度 ≥6 的字符串
strings -a file          # 扫描整个文件(包括非文本段)
strings -e l file        # 指定编码(l=16-bit little endian)
strings -t x file        # 显示字符串的文件偏移(十六进制)

二、如何“分析” strings 的结果

1. 看“人能读懂的内容”

重点关注以下几类字符串:

✅ 文件路径

/etc/passwd
/var/log/syslog
/home/user/.ssh/

→ 可判断程序是否访问敏感文件

✅ 命令或系统调用

system
execve
/bin/sh

→ 可能涉及命令执行

✅ URL / IP / 域名

http://evil.com
192.168.1.10
api.telegram.org

→ 网络行为、后门、C2 通信

✅ 错误信息 / 日志格式

Failed to open file
Segmentation fault
Authentication failed

→ 推断程序逻辑

✅ 加密 / 编码关键词

AES
RSA
base64
password

→ 安全相关功能


2. 结合偏移地址分析(进阶)

strings -t x binary

示例输出:

  0x1a3f  /etc/shadow
  0x1c20  password=

然后用:

objdump -s -j .rodata binary

或:

gdb binary

定位该字符串在代码中的使用位置。


3. 搜索关键信息(grep)

strings binary | grep -i "http"
strings binary | grep -E "password|token|key"
strings binary | grep -i "ssh"

三、典型应用场景

场景 1:判断是否是恶意程序

strings suspicious.bin | grep -iE "wget|curl|/bin/sh|base64"

常见恶意特征:

  • 下载执行
  • 反向 shell
  • 编码混淆

场景 2:分析闭源程序功能

strings app | grep -iE "config|login|error"

→ 推测配置项、用户交互逻辑


场景 3:提取内嵌资源

有些程序把:

  • HTML
  • SQL
  • 证书
  • 脚本

打包进二进制,可用 strings 初步发现。


场景 4:CTF / 逆向入门

strings crackme | less

常见线索:

  • 提示语
  • 隐藏 flag 格式 flag{...}
  • 编译信息(gcc、Ubuntu version)

四、配合其他工具效果更好

工具 用途
file 判断文件类型
objdump 反汇编
nm 查看符号表
readelf ELF 结构分析
binwalk 提取嵌入文件
radare2 / ghidra 深度逆向

五、注意事项

  • strings 不能证明行为,只能提供线索
  • 字符串可能被加密 / 压缩 / 混淆
  • 静态字符串 ≠ 运行时行为

如果你有具体的 strings 输出内容某个二进制文件场景(比如恶意样本、CTF、驱动、服务程序),可以直接贴出来,我可以帮你逐条分析。

0