Questão Existe um programa que pode contar a ocorrência de uma determinada string em um arquivo binário?


Eu tenho um arquivo binário e preciso contar ocorrências de determinada string neste arquivo ou mesmo listar com offsets. No Windows ou Linux - para esta tarefa eu uso o Fedora 12 e o Windows 2000.


4


origem


Para o Linux: strings -a filename | grep string | wc -l. - ott--


Respostas:


No Linux com GNU grep:

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

Exemplo:

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

Explicação dos parâmetros:

-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

Para contar as ocorrências, adicione | wc -l para a linha de comando.


7



É possível obter apenas contagem? Eu sei que pedi compensações, mas também para a contagem. - IvanH
@ IvanH: Basta canalizá-lo para wc -l - ℝaphink
Bom trabalho incluindo os outros parâmetros! - Simon Sheehan


Agent Ransack - Utilitário de pesquisa de arquivos grátis

  • Resultados Imediatos O texto encontrado é mostrado com palavras-chave destacadas, para que você não precise perder tempo abrindo cada arquivo procurando
      informação correta.

  • Expressões booleanas Combine os termos de pesquisa usando os operadores booleanos conhecidos AND, OR, NOT.

  • Formatos de escritório Suporte para formatos populares do Office, incluindo o Office 2007 e o OpenOffice.
  • Regex Perl Suporte para expressões regulares compatíveis com Perl.
  • Versão de 64 bits Versão de 64 bits compilada nativamente para compatibilidade aprimorada.
  • Pesquisa rápida Algoritmos de pesquisa altamente eficientes significam que você gasta menos tempo esperando pelos resultados.
  • Imprimindo e exportando Os resultados podem ser compartilhados com outras pessoas por meio da impressão e exportação.

enter image description here


2



Pode lidar com um arquivo binário? - IvanH
Sim, ele pode manipular valores binários. Veja a captura de tela, ela também encontrou dll arquivos. - user


No Linux, você pode usar strings -a [filename] | grep [string] | wc -l

No Windows, você pode usar o strings * | findstr /i [string], com o utilitário de strings da Sysinternals.


1



Como várias contagens na mesma linha são contadas, como uma ou mais? - Cristian Ciupitu