strings 命令主要用于从一个二进制文件(或其他非文本文件)中提取可打印的字符串。它常用于逆向工程、调试、取证分析、排查问题等场景。下面从“为什么要用”和“适合用在什么情况”来说明。
strings二进制文件(如可执行程序、动态库、核心转储)里通常包含:
strings 可以把这些人类可读的字符串提取出来,方便分析。
strings a.out
有时候你拿到一个未知程序,不想直接运行,可以用:
strings unknown_binary
可能看到:
"usage: xxx -h")从而判断它是干什么的。
程序崩溃时,错误信息往往以字符串形式存在:
strings core_dump | grep -i error
或者:
strings /usr/bin/xxx | grep -i "segmentation"
在安全领域非常常见:
strings malware_sample | grep -E "http|https|ssh|password"
strings libxxx.so
strings filename
strings -n 6 filename
strings -t x filename
strings -e l filename
这时应该用:
objdumpgdbradare2IDA Pro用
strings是为了在不运行、不反编译程序的情况下,快速从二进制文件中提取“人能看懂的文字信息”。
如果你愿意,我也可以结合你具体的使用场景(比如调试、安全、CTF、取证)给你更针对性的例子。