是否有一个程序可以计算二进制文件中某个字符串的出现次数?

是否有一个程序可以计算二进制文件中某个字符串的出现次数?

我有一个二进制文件,我需要计算此文件中某个字符串的出现次数,甚至列出偏移量。在 Windows 或 Linux 中 - 对于此任务,我使用 Fedora 12 和 Windows 2000。

答案1

在 Linux 上GNU grep

grep -F --text -o --byte-offset mystring binaryfile

例子:

$ grep -F --text -o --byte-offset option /bin/tar
226542:option
237529:option
237612:option
...

参数解释:

-F, --fixed-strings
      Interpret PATTERN as a list of fixed strings, separated by newlines,
      any of which is to be matched.  (-F is specified by POSIX.)

-a, --text
      Process  a binary file as if it were text; this is equivalent to the
      --binary-files=text option.

-o, --only-matching
      Print  only the matched (non-empty) parts of a matching line, with
      each such part on a separate output line.

-b, --byte-offset
      Print the 0-based byte offset within the input file before each line
      of output. If -o (--only-matching) is specified, print the offset of
      the matching part itself

要计算出现次数,请添加| wc -l到命令行。

答案2

Agent Ransack - 免费文件搜索实用程序

  • 立即见效找到的文本会以突出显示的关键字显示,因此您无需浪费时间打开每个文件来寻找
    正确的信息。

  • 布尔表达式使用熟悉的布尔运算符 AND、OR、NOT 组合搜索词。

  • 办公室格式支持流行的 Office 格式,包括 Office 2007 和 OpenOffice。
  • Perl 正则表达式支持 Perl 兼容正则表达式。
  • 64 位版本本机编译的 64 位版本以提高兼容性。
  • 快速搜索高效的搜索算法意味着您花费更少的时间等待结果。
  • 打印和导出可以通过打印和导出与他人共享结果。

在此处输入图片描述

答案3

在 Linux 中,您可以使用strings -a [filename] | grep [string] | wc -l

在 Windows 中,您可以使用strings * | findstr /i [string],与字符串实用程序来自 Sysinternals。

相关内容