测试合并
Go to file
2018-07-21 14:23:59 -07:00
GUI continue implementing interop 2018-07-21 11:09:07 -07:00
HostInterop continue implementing interop 2018-07-21 11:09:07 -07:00
texthook remove unneeded logic from host 2018-07-21 14:16:26 -07:00
vnrhook update config/readme 2018-07-21 08:22:32 -07:00
.gitattributes Line ending attributes for window LF 2016-12-12 00:50:06 +09:00
.gitignore add host interoperability project, and add everything to organized build system 2018-07-21 00:51:27 -04:00
CMakeLists.txt update config 2018-07-21 14:23:59 -07:00
CMakeSettings.json add host interoperability project, and add everything to organized build system 2018-07-21 00:51:27 -04:00
GUI.sln continue implementing interop 2018-07-21 11:09:07 -07:00
LICENSE add license and update readme 2018-05-20 21:21:37 -04:00
README.md update config/readme 2018-07-21 08:22:32 -07:00

NextHooker

Overview

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

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

Extensions

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

To use an extension, simply rename the extension dll file to {NUMBER}_{NAME}_nexthooker_extension.dll and copy into the NextHooker folder.

Extensions are called in order by the number they are prefixed with.

Downloads

Releases of NextHooker can be found here

Previous releases of ITHVNR can be found here.

Features

  • Open-source
  • Hook text (most AGTH hook codes supported)
  • Auto hook many engines (including some not supported by VNR!)
  • Extensions (New!)

License

GPL v3

Developers

  • Copyright (C) 2010-2012 kaosu
  • VNR engine making by jichi
  • ITH updating by Andys
  • ITHVNR new GUI & VNR engine migration by Stomp
  • ITHVNR updating by mireado and Eguni

Special Thanks

  • Everybody adding issues!

Compiling

Before compiling NextHooker, you should get Visual Studio with CMake, ATL, and .NET 4.6.
You should first compile all the CMake projects, then compile the GUI solution.

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.