3.5 KiB
Textractor
English ● Español ● 简体中文 ● Русский ● 한국어 ● ภาษาไทย ● Français ● Italiano ● 日本語 ● Bahasa Indonesia ● Português ● Deutsch
Textractor (também conhecido como NextHooker) é um extrator de textos de video-games x86/x64 para Windows/Wine baseado no ITHVNR.
Assista ao vídeo tutorial para uma rápida apresentação de como utilizá-lo.
Download
As versões lançadas podem ser encontradas aqui.
A última versão lançada do ITHVNR pode ser encontrada aqui.
Recursos e Funções
- Altamente extensível e personalizável.
- Automaticamente extrai vários games engines (inclusive algumas não compatíveis com VNR!)
- Extrai texto usando códigos "hook" /H (a maioria dos códigos utilizados pelo AGTH são compatíveis.)
- Extrai texto diretamente utilizando códigos "read" /R
Suporte Técnico
Por favor, deixe-me saber de quaisquer bugs, jogos que o Textractor tenha problema extraindo texto, pedido por recursos ou funções, ou quaisquer outras sugestões.
Se você tiver algum problema extraindo um jogo, favor me mandar um e-mail do lugar de onde eu possa livremente dar download do jogo, ou presenteie-me o jogo no Steam.
Extensões
Veja o meu Projeto de Extensão-Exemplo para como construir uma extensão.
Veja a pasta de extensões para mais exemplos do que as extensões são capazes de fazerem.
Contribuindo
Todas contribuições são bem-vindas! Por favor, me mande um e-mail no endereço akashmozumdar@gmail.com caso tenha alguma dúvida quanto ao codebase.
Você deve seguir o processo padrão de fazer um pull request (fork, branch, realizar mudanças, realizar o PR do seu branch para o meu master).
Contribuir com uma tradução é fácil: basta traduzir as linhas do text.cpp assim como esse README.
Compilando
Antes de compilar o Textractor você deve ter o Visual Studio com suporte ao CMake, assim como o Qt versão 5.13.
Você deverá então ser capaz de simplesmente abrir uma pasta no Visual Studio e build. Inicie Textractor.exe.
Arquitetura do Projeto
O host (veja a pasta host) injeta o texthook.dll (criado a partir da pasta texthook) dentro do processo-alvo e se conecta a ele por meio de 2 arquivos pipe.
O Host escreve para hostPipe, o texthook escreve para hookPipe.
O texthook espera pelo pipe estar conectado e então injeta algumas intruções dentro de quaisquer funções que produzam texto (por exemplo: TextOut, GetGlyphOutline) o que faz com que seu produto seja mandado por meio do pipe.
Informação adicional sobre os hooks é trocada por meio da memória compartilhada.
O texto que o host recebe por meio do pipe é então processado um pouco antes de ser despachado devolta para a IGU/GUI.
Finalmente, a IGU/GUI despacha o texto para as extensões antes de mostrá-lo.