1、介绍
strings 工具在对象文件或二进制文件中查找可打印的字符串。这里的字符串是指:4个或更多可打印字符的任意序列,以换行符或空字符结束。
当然,这里的4可以通过-n指定和修改。
2、常用用途
我们知道了strings的用法后,那么我们什么情况下才会用它呢?其实这么几个地方可能会经常用到:
2.1 快速确认版本
比如程序里有个版本定义:char version[] = "aaa_xxx_v0.1",那么可以通过
strings xxx.binary | grep version
来查看版本。
2.2 快速确认是否将修改的内容进行重新编译成功
同样,我们修改了某个打印:
printf “This is xxxaaaddd\n”;
我们可以通过
strings xxx.binary | grep “xxxaaaddd”
查看是否我们修改的内容已经编译到新的二进制里。
2.3 快速确认某个源文件被生成到哪个二进制中了
$ strings -f * | grep "result is"
main: result is %d
main2: result is %d
main3: result is %d
main4: result is %d
比如我们在某个库中加入了某个字符串,那么可以用类似上面的命令查看这个字符串被编译进了哪个二进制里。