Skip to content
Extracts text from video games and visual novels. Highly extensible.
C++ C Other
Branch: master
Clone or download
Latest commit aeb0caf Nov 24, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
GUI limit hook searches to a named module, also make 0 CCs default for x8… Nov 10, 2019
assets add stress test, move common assets to assets folder Aug 6, 2019
cmake fix some cmake fuckups Jun 10, 2019
extensions text outlines implemented and fix low alpha values being saved wrong Nov 10, 2019
include new cotopha hook Nov 23, 2019
test refactor tests Aug 7, 2019
texthook new cotopha hook Nov 23, 2019
x64libs add stress test, move common assets to assets folder Aug 6, 2019
x86libs add stress test, move common assets to assets folder Aug 6, 2019
.gitattributes Line ending attributes for window LF Dec 11, 2016
.gitignore update for vs 2019 Jun 7, 2019
CMakeLists.txt add stress test, move common assets to assets folder Aug 6, 2019
CMakeSettings.json upgrade build pipeline for x64 deployment May 24, 2019
CREDITS.md update translations Oct 3, 2019
LICENSE add license and update readme May 21, 2018
README.md update translations Oct 3, 2019
README_ES.md update translations Oct 3, 2019
README_ID.md update translations Oct 3, 2019
README_JP.md update translations Oct 3, 2019
README_KR.md update translations Oct 3, 2019
README_PT.md update translations Oct 3, 2019
README_RU.md update translations Oct 3, 2019
README_SC.md update translations Oct 3, 2019
README_TH.md update translations Oct 3, 2019
README_TU.md tie off i18n loose ends Jun 20, 2019
deploy.ps1 update translations Oct 3, 2019
installer.iss update translations Oct 3, 2019
screenshot.png resize Feb 18, 2019
text.cpp limit hook searches to a named module, also make 0 CCs default for x8… Nov 10, 2019

README.md

Textractor

How it looks

EnglishEspañol简体中文日本語РусскийBahasaPortuguêsภาษาไทย한국어

Textractor (a.k.a. NextHooker) is an open-source x86/x64 video game text hooker for Windows/Wine based off of ITHVNR.
Watch the tutorial video for a quick rundown on using it.

Donate

Download

Releases of Textractor can be found here.
The last release of ITHVNR can be found here.
Try running vcredist if you get an error when starting Textractor.

Features

  • Highly extensible and customizable
  • Auto hook many game engines (including some not supported by VNR!)
  • Hook text using /H "hook" codes (most AGTH codes supported)
  • Directly extract text using /R "read" codes

Support

Please let me know of any bugs, games that Textractor has trouble hooking, feature requests, or other suggestions.
If you have trouble hooking a game please email me a place where I can freely download it, or gift it to me on Steam.

Extensions

See my Example Extension project to see how to build an extension.
See the extensions folder for examples of what extensions can do.

Contributing

All contributions are appreciated! Please email (no, I'm not busy!) me at akashmozumdar@gmail.com if you have any questions about the codebase.
You should use the standard process of making a pull request (fork, branch, commit changes, make PR from your branch to my master).
Contributing a translation is easy: just translate the strings in text.cpp as well as this README.

Compiling

Before compiling Textractor, you should get Visual Studio with CMake support, as well as Qt version 5.11
You should then be able to simply open the folder in Visual Studio, and build. Run Textractor.exe.

Project Architecture

The host (see GUI/host folder) injects texthook.dll (created from the texthook folder) into the target process and connects to it via 2 pipe files.
Host writes to hostPipe, texthook writes to hookPipe.
texthook waits for the pipe to be connected, then injects a few instructions into any text outputting functions (e.g. TextOut, GetGlyphOutline) that cause their input to be sent through the pipe.
Additional information about hooks is exchanged via shared memory.
The text that the host receives through the pipe is then processed a little before being dispatched back to the GUI.
Finally, the GUI dispatches the text to extensions before displaying it.

Developers

You can’t perform that action at this time.