在 Ubuntu(以及大多数 Linux 发行版)中,提取 strings(可打印字符串) 通常指的是从 二进制文件、内存或磁盘镜像 中提取可读的文本字符串。下面按常见场景给你介绍几种方法。
strings 命令(最常用)strings filename
示例:
strings /bin/ls
默认是 4 个字符,你可以修改:
strings -n 6 filename
strings -t x filename # 十六进制
strings -t d filename # 十进制
示例:
strings -t x /bin/ls
strings -e l filename # 16-bit little-endian UTF-16
strings -e b filename # 16-bit big-endian
readelf -p .rodata filename
只提取 .rodata 段中的字符串,非常常见。
objdumpobjdump -s -j .rodata filename
cat /proc/PID/maps
然后:
gdb -p PID
或:
strings /proc/PID/mem
(需要 root)
strings mem_dump.bin
strings disk.img > strings.txt
常用于:
strings filename | grep -i password
strings filename | grep -E "http|https"
strings 属于 binutils:
sudo apt update
sudo apt install binutils
| 场景 | 命令 |
|---|---|
| 分析二进制 | strings binary |
| 搜索敏感信息 | strings file | grep password |
| 固件分析 | strings firmware.bin |
| 取证 | strings disk.img |
| ELF 分析 | readelf -p .rodata |
如果你有 具体场景(比如:
✅ 想找 Ubuntu 系统字符串
✅ 分析某个程序
✅ 做逆向 / 安全分析
✅ 从日志或内存提取)
告诉我,我可以给你更精确的命令示例。