在 Ubuntu(以及大多数 Linux 系统)中,strings 是一个命令行工具,主要用途是:
从一个二进制文件(或其他非文本文件)中提取可打印的字符串。
strings 是干什么的?strings 会扫描文件内容,把其中连续的可打印字符序列找出来并显示出来。
这些“字符串”通常是:
strings /bin/ls
你可以看到 ls 命令中嵌入的字符串,比如:
strings my_program | grep password
如果程序员把密码写死在代码里,这里可能直接暴露出来。
strings unknown_file
如果看到大量可读文本,可能说明:
安全研究人员常用 strings:
strings suspicious_binary
strings /lib/x86_64-linux-gnu/libc.so.6
strings 文件名
strings -n 6 文件名
strings -t x 文件名 # 十六进制
strings -t d 文件名 # 十进制
cat file | strings
strings 不是反汇编器objdump、gdb、radare2在 Ubuntu 中,strings 通常已经安装,属于 binutils:
sudo apt install binutils
strings用来从二进制文件中提取“人类可读的字符串”,常用于程序分析、调试、安全审计和逆向工程。
如果你愿意,我也可以给你一个真实例子,比如用 strings 分析一个程序并找出隐藏信息。