Update of ITHVNR. Extracts text from video games and visual novels. Highly extensible.
Branch: master
Clone or download
Latest commit 107544d Feb 21, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
GUI minor fixes Feb 21, 2019
cmake build system improvements Oct 19, 2018
extensions minor fixes Feb 21, 2019
include minor fixes Feb 21, 2019
vnrhook upgrade repetition remover algorithm Feb 21, 2019
x64libs static link lua Feb 17, 2019
x86libs static link lua Feb 17, 2019
.gitattributes Line ending attributes for window LF Dec 11, 2016
.gitignore ignore resource editor files Jan 15, 2019
CMakeLists.txt add lua extension Feb 13, 2019
CMakeSettings.json fix file ends Dec 18, 2018
LICENSE add license and update readme May 21, 2018
README.md new screenshot Feb 18, 2019
README_ES.md improve screenshot Feb 18, 2019
README_JP.md improve screenshot Feb 18, 2019
README_SC.md improve screenshot Feb 18, 2019
deploy.ps1 static link lua Feb 17, 2019
screenshot.png resize Feb 18, 2019
text.cpp minor fixes Feb 21, 2019




Tutorial Video



Textractor (a.k.a. NextHooker) is an open-source x86/x64 text hooker for Windows/Wine based off of ITHVNR.

How it looks


Releases of Textractor can be found here.
Previous releases of ITHVNR can be found here.
If you get a dll missing error, you probably need to (re)install the Microsoft Visual C++ Redistributable.


  • Highly extensible
  • 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


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.


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


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.


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 vnrhook.dll (created from the vnrhook folder) into the target process and connects to it via 2 pipe files.
Host writes to hostPipe, vnrhook writes to hookPipe.
vnrhook 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 shared through a file view (a.k.a. section object) that is mapped to a reference to the TextHook class.
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.


If you're on this list and want your link changed let me know.

Special Thanks

  • Everybody adding issues!