在 Linux 下,strings 命令常用于从二进制文件(可执行文件、库、固件等)中提取可打印字符串,非常适合用来发现硬编码信息(如 IP、域名、密码、API Key、SQL、路径等)。下面按“怎么做 → 怎么查 → 实战技巧”来说明。
strings binary_file
示例:
strings ./app
默认会输出长度 ≥ 4 的可打印字符序列。
strings app | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'
strings app | grep -E 'https?://[a-zA-Z0-9./-]+'
或只查域名:
strings app | grep -E '\b[a-zA-Z0-9.-]+\.(com|cn|net|org)\b'
strings app | grep -iE 'password|passwd|secret|token|apikey|api_key'
strings app | grep -iE 'select|insert|update|delete|from|where'
strings app | grep -E '/[a-zA-Z0-9_./-]+'
strings app | grep -E 'admin|root|config|user'
strings -n 6 app
(避免太多无意义短字符串)
strings -t x app
或十进制:
strings -t d app
例如:
strings -t x app | grep password
可以配合 objdump / gdb 进一步定位。
strings -e l app
-e l:16-bit little endian-e b:16-bit big endian-e s:7-bit ASCII(默认)-e L:32-bit little endianstrings app | grep -iE 'token|key|secret' | less
strings /lib/x86_64-linux-gnu/libxxx.so
strings firmware.bin | grep -i password
mysql://root:123456@127.0.0.1:3306/db
api_key=AKIA1234567890
password=admin123
http://192.168.1.100:8080/login
✅ strings 只能看明文
❌ 加密 / 压缩 / 混淆的内容看不到
✅ 可结合:
objdump -s -j .rodataradare2ghidrabinwalk用
strings查硬编码 =strings 文件 | grep 关键词
如果你有:
我可以直接给你针对性命令。