strings
是 Linux 中一个强大的工具,用于提取二进制文件中的可打印字符串。它能帮助挖掘许多隐藏信息,尤其在逆向工程、取证分析和安全审计中非常有用。以下是它能发现的隐藏信息类型及示例:
bash
strings /path/to/binary | grep -i "password\|key\|secret"
DB_PASSWORD=SuperSecret123
API_KEY=abcd1234efgh5678
bash
strings binary | grep -i "debug\|log\|test"
[DEBUG] Connection established
/var/log/app/error.log
/tmp/
下的可疑文件。
bash
strings binary | grep "/etc/\|/tmp/"
HTTP://
、ftp://
或自定义协议头。
bash
strings binary | grep -E "http://|ftp://|192.168."
bash
strings binary | grep "Copyright\|Version\|Build"
Version 2.1.5 (Build 2023-10-01)
system()
、exec()
调用的命令片段。
bash
strings binary | grep "system(\|exec(\|chmod"
system("rm -rf /tmp/*")
AES
、RSA
、MD5
等字符串。bash
strings binary | grep -E "AES|RSA|^[a-zA-Z0-9+/=]{20,}$"
$HOME
、$PATH
或自定义变量。
bash
strings binary | grep "\$[A-Z_]\+"
UTF-16
编码需加 -e l
选项)。
bash
strings -e l binary # 搜索宽字符(如Windows PE文件)
grep
过滤:按关键词(如 pass
、admin
)缩小范围。-n
选项指定最小长度(如 -n 8
过滤短字符串)。objdump -s -j .rodata
先定位只读数据段。-e
选项支持其他编码(如 -e s
用于16位大端)。strings
。sudo
。通过 strings
快速筛查,再结合 hexdump
、radare2
等工具深入分析,可以高效发现隐藏信息。