it-swarm.cn

Linux命令在二进制或非ascii文件中查找字符串

是否有任何Linux命令从可执行文件或其他二进制文件中提取所有ascii字符串?我想我可以用grep做到这一点,但是我还记得听到某处存在这样的命令吗?

40
Ethan Heilman

您要查找的命令是strings

它的名字很不言自明,它从给定文件中检索任何可打印的字符串。

man strings给出:

STRINGS(1)

[〜#〜]名称[〜#〜]
strings-查找对象或其他二进制文件中的可打印字符串

[〜#〜]简介[〜#〜]
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]

72
drAlberT

strings命令是解决此类特殊问题的方法。有时您还必须将其传送到grep

例如:

strings somebinaryfile | grep textuwanttofind
11
luis.espinal

该命令确实存在,并且被称为....字符串!

4
Mark

od命令可以执行以下操作:

od -c *filename*
3
Kyle Brandt

使用字符串的问题是您看不到周围的不可打印内容,因此必须注意最小的字符串长度。

使用有问题

od -c文件
hexdump -C文件

我对此非常喜欢的是 ZTreeWin 在Linux上的WINE中运行-您可以执行很多操作,但是在任何文件中搜索或编辑二进制文件都特别有用。

令人敬畏的ytree软件包可用于许多Linux和Unix变体,并且具有任何文件的十六进制转储视图,但是却没有ZTreeWin(及其16位前身XTree)所具有的搜索功能。

2
qeff