[TOOL] Boolean Match - Binary Pattern Search

Iniciado por Neto Rpg, Janeiro 29, 2018, 02:17:35 AM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

Neto Rpg

Boolean Match
Binary Pattern Search


Introdução



Há uns dois anos atrás eu estava procurando os textos de um jogo, porém não conseguia achar de forma alguma utilizando as ferramentas disponíveis para busca relativa.
Depois de muito quebrar a cabeça desenvolvi um algoritmo (bastante simples até) para efetuar buscas de textos por um padrão de repetição de caracteres, ele se mostrou efetivo e eu consegui finalmente encontrar os famigerados textos.
Estava mexendo em uns arquivos antigos aqui e encontrei o projeto, então resolvi dar uma otimizada no código e publicar ela. Ainda há muito o que melhorar, então sintam-se a vontade para contribuir.

O princípio da busca relativa é buscar pela distância entre os caracteres, por exemplo: Entre A e B a distância é 1, entre A e E a distância é 4 e assim por diante. Portanto mesmo que a tabela de caracteres comece em um valor diferente da ASCII a distância entre as letras do alfabeto é a mesma. Ou não.

O meu algoritmo funciona com base na repetição de caracteres em um texto ignorando completamente o que os caracteres podem ser. Ao procurar a palavra "JOGO" também seriam encontradas as palavras "FOGO", "LOGO", "BEGE", "PEDE", "LATA". Na verdade, pra encontrar qualquer uma destas palavras bastaria procurar "1232" ou "+-*-", lembrando que é case sensitive, então letras maiúsculas e minúsculas são consideradas diferentes. Por este motivo o algoritmo funciona melhor com palavras com muitas letras repetidas, ou até mesmo frases inteiras. Palavras com um padrão muito fraco podem gerar muitos resultados falsos, o que não é uma coisa boa. Você não vai querer pesquisar "New Game" em uma ISO de 8GB, na verdade nem em uma de 100MB, acredite (de verdade, não tente fazer isso).

Por que eu não encontrei os textos que eu procurava utilizando as buscas relativas?
No meu caso além da tabela ser de 16 bits, o que não seria um problema, o valor dos caracteres avança de dois em dois, então A = 2, B = 4, C = 6, etc. Norte americanos traduzindo jogos japoneses, vai entender.

Enfim, já digitei muito. Espero ter ficado claro o funcionamento da ferramenta, qualquer dúvida é só perguntar.


Pré-Requisitos




Como utilizar?



Basta possuir o arquivo no qual você deseja pesquisar e o texto.
Lembre-se: prefira utilizar frases para a busca, assim você conseguirá resultados mais precisos e o tempo de busca será menor.



Imagens



[spoiler]
[/spoiler]



Download



Magalicia

Tool peculiar, interessante e promissora, curti.

gilvan666

Parabéns neto pela ferramenta acredito que vai ajudar muita gente.

srchronotrigger

Bastante interessante amigo, certamente irei testar em alguns jogos que não encontrava texto antes, parabéns!  :parabens:
A sabedoria com as coisas da vida não consiste, ao que me parece,
em saber o que é preciso fazer,
mas em saber o que é preciso fazer antes e o que fazer depois. - Leon Tolstoi.
meu blog: http://blogdochrono.blogspot.com/

Sora Leon