温馨提示×

如何学linux strings基础

小樊
43
2026-09-05 13:46:09
栏目: 智能运维

下面给你一份从零开始的 Linux strings 基础学习指南,偏实用、可操作。


一、strings 是什么?

strings 是 Linux 下一个命令行工具,用来从二进制文件、可执行文件、core 文件中提取可读的字符串(通常是 ASCII 或 Unicode)。

常见用途:

  • 查看程序里写死的字符串(路径、URL、提示信息)
  • 分析未知程序 / 病毒样本
  • 逆向工程入门
  • 排查程序中“写死”的配置

二、最基本用法(先会用)

1️⃣ 最简单用法

strings 文件名

例:

strings /bin/ls

你会看到一堆可读文字,比如:

Usage: ls [OPTION]... [FILE]...
http://www.gnu.org/

2️⃣ 从命令结果中过滤

strings a.out | grep password

三、常用参数(必学)

-n 指定最小字符串长度

默认是 4,太短会有很多噪音。

strings -n 6 program

-e 指定字符编码

常见:

  • s:7-bit ASCII(默认)
  • l:16-bit Little Endian(Windows Unicode)
  • b:16-bit Big Endian

例:

strings -e l program.exe

-f 显示文件名

strings -f *.bin

输出示例:

a.bin: Hello World
b.bin: Error code

-t 显示偏移地址(很重要)

strings -t x program
  • x:十六进制
  • d:十进制
  • o:八进制

示例:

1234 /etc/passwd

意思是字符串在文件偏移 0x1234 处。


四、实战小例子(理解用途)

示例 1:看程序里有没有 URL

strings app | grep http

示例 2:分析未知二进制

file unknown
strings unknown | less

示例 3:配合管道深入分析

strings -n 5 binary | sort | uniq -c | sort -nr | head

看出现最多的字符串。


五、学习路径建议(循序渐进)

✅ 阶段 1:会用

  • strings 文件
  • grep 过滤
  • -n-t

✅ 阶段 2:结合其他命令

  • file
  • xxd / hexdump
  • objdump

✅ 阶段 3:安全 / 逆向方向

  • 分析 malware
  • 找硬编码密码
  • CTF 逆向题

六、常见误区

❌ strings 能“反编译程序” → 不能,只能看字符串
❌ 所有字符串都能看到 → 加密 / 动态生成看不到
❌ strings 只能用于程序 → 图片、压缩包也能用


七、练习作业(建议做)

  1. strings /bin/ls | less
  2. 写一个 C 程序,里面写死一个密码,用 strings 找出来
  3. 对一个 .so 文件使用 strings -t x

如果你愿意,我可以:

  • C 程序示例教你
  • 给你 CTF 入门题
  • 或讲 strings + gdb/objdump 联合分析

你更想往哪个方向学?

0