下面给你一份从零开始的 Linux strings 基础学习指南,偏实用、可操作。
strings 是 Linux 下一个命令行工具,用来从二进制文件、可执行文件、core 文件中提取可读的字符串(通常是 ASCII 或 Unicode)。
常见用途:
strings 文件名
例:
strings /bin/ls
你会看到一堆可读文字,比如:
Usage: ls [OPTION]... [FILE]...
http://www.gnu.org/
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 处。
strings app | grep http
file unknown
strings unknown | less
strings -n 5 binary | sort | uniq -c | sort -nr | head
看出现最多的字符串。
strings 文件grep 过滤-n、-tfilexxd / hexdumpobjdump❌ strings 能“反编译程序” → 不能,只能看字符串
❌ 所有字符串都能看到 → 加密 / 动态生成看不到
❌ strings 只能用于程序 → 图片、压缩包也能用
strings /bin/ls | less.so 文件使用 strings -t x如果你愿意,我可以:
你更想往哪个方向学?