测试合并
Go to file
2018-08-16 23:16:20 -04:00
.cmake/Modules Add cmake support for GUI part 2018-07-28 12:05:13 +03:00
GUI update version 2018-08-11 15:15:00 -04:00
host refactor 2018-08-11 14:51:51 -04:00
vnrhook bugfix for wine support 2018-08-16 23:16:20 -04:00
.gitattributes Line ending attributes for window LF 2016-12-12 00:50:06 +09:00
.gitignore Add cmake support for GUI part 2018-07-28 12:05:13 +03:00
CMakeLists.txt more sane way to support 64 bit 2018-08-07 15:44:13 -04:00
CMakeSettings.json add basic support for x64 2018-08-04 22:27:10 -04:00
LICENSE add license and update readme 2018-05-20 21:21:37 -04:00
README.md update readme 2018-08-16 19:56:33 -04:00

NextHooker

Overview

NextHooker is an open-source x86/x64 text hooker for Windows.

Basically, GUI text hooker based on Stomp's ITHVNR.

Downloads

Releases of NextHooker can be found here

Previous releases of ITHVNR can be found here.

Features

  • Open-source
  • x64 supported (x64 version only works with x64 programs)
  • Hook text (most AGTH /H "hook" codes supported)
  • Directly read text using /R "read" codes (Guide)
  • Auto hook many engines (including some not supported by VNR!)
  • Extensions

Extensions

See my Example Extension project to see how to build an extension.

Compiling

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

Project Architecture

The GUI links to vnrhost.dll (created from the texthook folder) which injects vnrhook.dll (created from the vnrhook folder) into the target process and connects to it via 2 pipe files.
vnrhost writes to hostPipe, vnrhook writes to hookPipe (duh?)
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 Hook class.
The text that vnrhost receives through the pipe is then processed a little before being dispatched back to the GUI and displayed.

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; I know it's messy and undercommented.
You should use the standard process of making a pull request (fork, branch, commit changes, make PR from your branch to my master).

License

GPL v3

Developers

Special Thanks

  • Everybody adding issues!