我尝试了ag和其他搜索工具,他们只支持在二进制文件中搜索普通文本,而不支持在二进制文件中搜索二进制文本。
我在谷歌上搜索了“搜索二进制文本”,结果都提到了“二进制文件中的搜索文本”。
有任何工具支持像这样的search_tool -bin "313233"
搜索吗?(实际上是搜索包含字符串“123”的文件)
发布于 2021-08-12 03:40:48
让我们构建自己的POSIX兼容工具:
search_tool:
od -An -tx1 "$1" | tr -cd '[:xdigit:]' | grep -qF "$2"
这将以十六进制形式转储文件,删除非十六进制数字,并搜索结果。
$ chmod +x search_tool
$ ./search_tool somefile 313233
$ echo $?
0
somefile
包含123
。
您可以使用find(1)在任何目录中运行search_tool:
$ find java_playground ! -type d -a -exec search_tool {} 313233 \; -print
search_tool必须是可从PATH
定位的。
发布于 2021-08-18 14:53:07
在不了解您的需求的情况下,这应该足以满足大多数场景:
grep -robUaP "{YOUR_BINARY_SEQUENCE_HERE_IN_HEX_FORMAT}" {DIRECTORY_TO_SEARCH}
示例:
grep -robUaP "\x01\x02\x03" /bin
发布于 2021-08-19 11:54:23
我刚用歌朗写了一本,很简单,但很管用。
https://stackoverflow.com/questions/67371449
复制相似问题