学习 Debian 中的 strings 命令(实际上它是 binutils 提供的工具,不只在 Debian,在所有 Linux 发行版都可用),可以从“是什么 → 怎么用 → 实战练习”三步来学。
strings 命令用于从一个二进制文件或任意文件中提取可打印的字符串(通常是 ASCII 或 Unicode 文本)。
常见用途:
strings file
从 file 中提取所有可打印字符串。
strings -n 6 file
只显示长度 ≥ 6 的字符串。
strings -t x file # 十六进制
strings -t d file # 十进制
常用于逆向分析。
strings -e s file # 7-bit ASCII(默认)
strings -e l file # 16-bit little endian
strings -e b file # 16-bit big endian
cat binary | strings
strings 属于 binutils:
sudo apt update
sudo apt install binutils
验证:
which strings
strings --version
// hello.c
#include <stdio.h>
int main() {
printf("Hello Debian strings!\n");
return 0;
}
gcc hello.c -o hello
strings hello
你会看到 "Hello Debian strings!"
strings /bin/ls | less
看看里面有哪些路径、错误信息。
strings /usr/bin/python3 | grep -i version
objdump -s -j .rodata binary
在调试时查看字符串常量。
strings file-n / -t 参数/bin/*objdump / readelf如果你愿意,我可以:
你想从哪一步开始?