diff --git a/CMakeLists.txt b/CMakeLists.txt index 0548c9b..804055d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,5 +38,5 @@ link_libraries(text) add_subdirectory(GUI) add_subdirectory(GUI/host) -add_subdirectory(vnrhook) +add_subdirectory(texthook) add_subdirectory(extensions) diff --git a/GUI/host/host.cpp b/GUI/host/host.cpp index d595331..a5ed791 100644 --- a/GUI/host/host.cpp +++ b/GUI/host/host.cpp @@ -1,7 +1,7 @@ #include "host.h" #include "defs.h" #include "util.h" -#include "../vnrhook/texthook.h" +#include "../texthook/texthook.h" extern const wchar_t* ALREADY_INJECTED; extern const wchar_t* ARCHITECTURE_MISMATCH; diff --git a/README.md b/README.md index 40c4900..38841b1 100644 --- a/README.md +++ b/README.md @@ -46,9 +46,9 @@ You should then be able to simply open the folder in Visual Studio, and build. R ## 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.
+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 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. diff --git a/README_SC.md b/README_SC.md index abd2173..170fd9c 100644 --- a/README_SC.md +++ b/README_SC.md @@ -37,9 +37,9 @@ Textractor 的发行版可以在[这里](https://github.com/Artikash/Textractor/ ## 项目架构 -宿主 (位于 GUI/host 文件夹) 向目标进程注入 vnrhook.dll (由 vnrhook 文件夹创建) 并通过两个管道文件互联.
-宿主向 hostPipe 写入, vnrhook 向 hookPipe 写入.
-vnrhook 等待管道连接, 之后向一些文本输出函数 (如 TextOut, GetGlyphOutline) 注入一系列指令, 使得它们的输入被沿着管道发送.
+宿主 (位于 GUI/host 文件夹) 向目标进程注入 texthook.dll (由 texthook 文件夹创建) 并通过两个管道文件互联.
+宿主向 hostPipe 写入, texthook 向 hookPipe 写入.
+texthook 等待管道连接, 之后向一些文本输出函数 (如 TextOut, GetGlyphOutline) 注入一系列指令, 使得它们的输入被沿着管道发送.
其它关于钩子的信息通过一个被 TextHook 类保有引用的文件视图 (曾用名: 段对象) 共享.
之后, 宿主通过管道接收到的文本在传回 GUI 前被简单处理.
最后, GUI 在显示文本前将其分发给扩展. diff --git a/deploy.ps1 b/deploy.ps1 index f98f109..c591fa1 100644 --- a/deploy.ps1 +++ b/deploy.ps1 @@ -5,7 +5,7 @@ Set-Location $PSScriptRoot; $targets = @( "Textractor.exe", "TextractorCLI.exe", - "vnrhook.dll", + "texthook.dll", "Qt5Core.dll", "Qt5Gui.dll", "Qt5Widgets.dll", diff --git a/include/const.h b/include/const.h index 5473cbb..469a5c3 100644 --- a/include/const.h +++ b/include/const.h @@ -1,6 +1,6 @@ #pragma once -// vnrhook/const.h +// texthook/const.h // 8/23/2013 jichi // Branch: ITH/common.h, rev 128 diff --git a/include/defs.h b/include/defs.h index fe7f69b..8febec5 100644 --- a/include/defs.h +++ b/include/defs.h @@ -1,6 +1,6 @@ #pragma once -// vnrhook/defs.h +// texthook/defs.h // 8/23/2013 jichi // Pipes @@ -23,7 +23,7 @@ constexpr auto PIPE_AVAILABLE_EVENT = L"TEXTRACTOR_PIPE_AVAILABLE"; // Files -constexpr auto ITH_DLL = L"vnrhook"; // .dll but LoadLibrary automatically adds that +constexpr auto ITH_DLL = L"texthook"; // .dll but LoadLibrary automatically adds that constexpr auto CONFIG_FILE = u8"Textractor.ini"; // Misc diff --git a/vnrhook/CMakeLists.txt b/texthook/CMakeLists.txt similarity index 71% rename from vnrhook/CMakeLists.txt rename to texthook/CMakeLists.txt index 4bc3975..8ba720e 100644 --- a/vnrhook/CMakeLists.txt +++ b/texthook/CMakeLists.txt @@ -1,7 +1,7 @@ include_directories(. util) if(${CMAKE_SIZEOF_VOID_P} EQUAL 8) -set(vnrhook_src +set(texthook_src main.cc texthook.cc engine/match64.cc @@ -10,7 +10,7 @@ set(vnrhook_src util/util.cc ) else() -set(vnrhook_src +set(texthook_src main.cc texthook.cc engine/engine.cc @@ -23,20 +23,20 @@ set(vnrhook_src ) endif() -add_library(vnrhook SHARED ${vnrhook_src}) +add_library(texthook SHARED ${texthook_src}) -set_target_properties(vnrhook PROPERTIES +set_target_properties(texthook PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS /MANIFEST:NO" ) -set(vnrhook_libs +set(texthook_libs Version.lib minhook ) -target_link_libraries(vnrhook ${vnrhook_libs}) +target_link_libraries(texthook ${texthook_libs}) -target_compile_definitions(vnrhook +target_compile_definitions(texthook PRIVATE _CRT_NON_CONFORMING_SWPRINTFS _SCL_SECURE_NO_WARNINGS # config.pri diff --git a/vnrhook/engine/engine.cc b/texthook/engine/engine.cc similarity index 100% rename from vnrhook/engine/engine.cc rename to texthook/engine/engine.cc diff --git a/vnrhook/engine/engine.h b/texthook/engine/engine.h similarity index 100% rename from vnrhook/engine/engine.h rename to texthook/engine/engine.h diff --git a/vnrhook/engine/match.cc b/texthook/engine/match.cc similarity index 100% rename from vnrhook/engine/match.cc rename to texthook/engine/match.cc diff --git a/vnrhook/engine/match.h b/texthook/engine/match.h similarity index 100% rename from vnrhook/engine/match.h rename to texthook/engine/match.h diff --git a/vnrhook/engine/match64.cc b/texthook/engine/match64.cc similarity index 100% rename from vnrhook/engine/match64.cc rename to texthook/engine/match64.cc diff --git a/vnrhook/engine/mono/funcinfo.h b/texthook/engine/mono/funcinfo.h similarity index 100% rename from vnrhook/engine/mono/funcinfo.h rename to texthook/engine/mono/funcinfo.h diff --git a/vnrhook/engine/mono/monoobject.h b/texthook/engine/mono/monoobject.h similarity index 100% rename from vnrhook/engine/mono/monoobject.h rename to texthook/engine/mono/monoobject.h diff --git a/vnrhook/engine/mono/monotype.h b/texthook/engine/mono/monotype.h similarity index 100% rename from vnrhook/engine/mono/monotype.h rename to texthook/engine/mono/monotype.h diff --git a/vnrhook/engine/mono/types.h b/texthook/engine/mono/types.h similarity index 100% rename from vnrhook/engine/mono/types.h rename to texthook/engine/mono/types.h diff --git a/vnrhook/engine/native/pchooks.cc b/texthook/engine/native/pchooks.cc similarity index 100% rename from vnrhook/engine/native/pchooks.cc rename to texthook/engine/native/pchooks.cc diff --git a/vnrhook/engine/native/pchooks.h b/texthook/engine/native/pchooks.h similarity index 100% rename from vnrhook/engine/native/pchooks.h rename to texthook/engine/native/pchooks.h diff --git a/vnrhook/engine/ppsspp/funcinfo.h b/texthook/engine/ppsspp/funcinfo.h similarity index 100% rename from vnrhook/engine/ppsspp/funcinfo.h rename to texthook/engine/ppsspp/funcinfo.h diff --git a/vnrhook/main.cc b/texthook/main.cc similarity index 100% rename from vnrhook/main.cc rename to texthook/main.cc diff --git a/vnrhook/main.h b/texthook/main.h similarity index 100% rename from vnrhook/main.h rename to texthook/main.h diff --git a/vnrhook/texthook.cc b/texthook/texthook.cc similarity index 100% rename from vnrhook/texthook.cc rename to texthook/texthook.cc diff --git a/vnrhook/texthook.h b/texthook/texthook.h similarity index 100% rename from vnrhook/texthook.h rename to texthook/texthook.h diff --git a/vnrhook/util/cpputil/cppcstring.h b/texthook/util/cpputil/cppcstring.h similarity index 100% rename from vnrhook/util/cpputil/cppcstring.h rename to texthook/util/cpputil/cppcstring.h diff --git a/vnrhook/util/disasm/disasm.cc b/texthook/util/disasm/disasm.cc similarity index 100% rename from vnrhook/util/disasm/disasm.cc rename to texthook/util/disasm/disasm.cc diff --git a/vnrhook/util/disasm/disasm.h b/texthook/util/disasm/disasm.h similarity index 100% rename from vnrhook/util/disasm/disasm.h rename to texthook/util/disasm/disasm.h diff --git a/vnrhook/util/growl.h b/texthook/util/growl.h similarity index 100% rename from vnrhook/util/growl.h rename to texthook/util/growl.h diff --git a/vnrhook/util/ithsys/ithsys.cc b/texthook/util/ithsys/ithsys.cc similarity index 100% rename from vnrhook/util/ithsys/ithsys.cc rename to texthook/util/ithsys/ithsys.cc diff --git a/vnrhook/util/ithsys/ithsys.h b/texthook/util/ithsys/ithsys.h similarity index 100% rename from vnrhook/util/ithsys/ithsys.h rename to texthook/util/ithsys/ithsys.h diff --git a/vnrhook/util/memdbg/memdbg.h b/texthook/util/memdbg/memdbg.h similarity index 100% rename from vnrhook/util/memdbg/memdbg.h rename to texthook/util/memdbg/memdbg.h diff --git a/vnrhook/util/memdbg/memsearch.cc b/texthook/util/memdbg/memsearch.cc similarity index 100% rename from vnrhook/util/memdbg/memsearch.cc rename to texthook/util/memdbg/memsearch.cc diff --git a/vnrhook/util/memdbg/memsearch.h b/texthook/util/memdbg/memsearch.h similarity index 100% rename from vnrhook/util/memdbg/memsearch.h rename to texthook/util/memdbg/memsearch.h diff --git a/vnrhook/util/util.cc b/texthook/util/util.cc similarity index 100% rename from vnrhook/util/util.cc rename to texthook/util/util.cc diff --git a/vnrhook/util/util.h b/texthook/util/util.h similarity index 100% rename from vnrhook/util/util.h rename to texthook/util/util.h