Guided Hacking DLL Injector

Guided Hacking DLL Injector v3.3

Login to enable download
Hexui Undetected CSGO Cheats Sinkicheat PUBG Cheat
The GH Injector is the Best DLL Injector ever made :kappa:

Injection Methods:
  • LoadLibrary
  • LdrLoadDll Stub
  • Manual Mapping
Launch Methods:
  • NtCreateThreadEx
  • Thread Hijacking
  • SetWindowsHookEx
  • QueueUserAPC

The zip password is "guidedhacking"
Download the GH injector via the "Download" link on the top right of the page, you must login first.
GH Injector is only compatible with Windows 10 latest version, if your version is less than 1809 it will not work



Windows 10 1809 or above

  • Compatible with both 32-bit and 64-bit programs
  • Settings of the GUI are saved to a local ini file
  • Processes can be selected by name or process ID and by the fancy process picker.
GH Injector Library
Since GH Injector V3.0 the actual injector has been converted in to a library

To use it in your applications you can either use InjectA (ansi) or InjectW (unicode) which are the two functions exported by the "GH Injector - x86.dll" and "GH Injector - x64.dll".

These functions take a pointer to a INJECTIONDATAA/INJECTIONDATAW structure. For more the struct definition / enums / flags check "Injection.h".

How To Use GH DLL Injector & Source Code Review:

Frequently Asked Questions & Known Issues

GH Injector is detected by antivirus as malware, but it is not malware. It's 100% clean and safe to use. These are called false positives. It uses functions commonly used by malware and it uses a AutoIt GUI, antiviruses using heuristics will classify this as malware, but it is not.


Anything below Windows 10 1809 is not compatible

0.05% of DLLs are not compatible with GH Injector, we don't know why. If GH Injector fails you, try: Download - Extreme Injector v3.6.1 Download

If you have problem with opening the GH injector:

  1. Check antivirus logs
  2. Turn off your antivirus
  3. Turn off Safe Browsing & other features in your browser
  4. Create a folder for the injector and other hacking tools
  5. Add this folder as an exception in your antivirus
  6. Antivirus often have multiple modules, add an exception in all of them
  7. Download it again
If the injector has an error, click the "Reset settings" button and try again. If that doesn't work, delete the "GH Injector Config.ini" file an re-open it.

You cannot eject a DLL with FreeLibraryAndExitThread() if you used special options such as ManualMap and others

If the GUI disappears and you can't find it, delete the "GH Injector Config.ini" or reset MAINGUIX & MAINGUIY to 0 in the ini file and re-open it.

GH DLL Injector Error Codes
If injection fails it gives you 2 error codes and it may also log the errors. Read the log file. To debug the problem all you need to do is read the error numbers, they are posted below.

If you can't solve the injection problem with this guide, it is possible that your DLL is not compatible with GH Injector. Our injector has a problem with 0.5% of DLLs, should be fixed in the next release hopefully. In the case, use Download - Extreme Injector v3.6.1 Download

Injection Error
#define INJ_ERR_INVALID_PROC_HANDLE        0x00000001    //GetHandleInformation        :    win32 error
#define INJ_ERR_FILE_DOESNT_EXIST        0x00000002    //GetFileAttributesW        :    win32 error
#define INJ_ERR_OUT_OF_MEMORY_EXT        0x00000003    //VirtualAllocEx            :    win32 error
#define INJ_ERR_OUT_OF_MEMORY_INT        0x00000004    //VirtualAlloc                :    win32 error
#define INJ_ERR_IMAGE_CANT_RELOC        0x00000005    //internal error            :    base relocation directory empty
#define INJ_ERR_LDRLOADDLL_MISSING        0x00000006    //GetProcAddressEx            :    can't find pointer to LdrLoadDll
#define INJ_ERR_REMOTEFUNC_MISSING        0x00000007    //LoadFunctionPointer        :    can't find remote function
#define INJ_ERR_CANT_FIND_MOD_PEB        0x00000008    //internal error            :    module not linked to PEB
#define INJ_ERR_WPM_FAIL                0x00000009    //WriteProcessMemory        :    win32 error
#define INJ_ERR_CANT_ACCESS_PEB            0x0000000A    //ReadProcessMemory            :    win32 error
#define INJ_ERR_CANT_ACCESS_PEB_LDR        0x0000000B    //ReadProcessMemory            :    win32 error
#define INJ_ERR_VPE_FAIL                0x0000000C    //VirtualProtectEx            :    win32 error
#define INJ_ERR_CANT_ALLOC_MEM            0x0000000D    //VirtualAllocEx            :    win32 error
#define INJ_ERR_CT32S_FAIL                0x0000000E    //CreateToolhelp32Snapshot    :    win32 error
#define    INJ_ERR_RPM_FAIL                0x0000000F    //ReadProcessMemory            :    win32 error
#define INJ_ERR_INVALID_PID                0x00000010    //internal error            :    process id is 0
#define INJ_ERR_INVALID_FILEPATH        0x00000011    //internal error            :    INJECTIONDATA::szDllPath is nullptr
#define INJ_ERR_CANT_OPEN_PROCESS        0x00000012    //OpenProcess                :    win32 error
#define INJ_ERR_PLATFORM_MISMATCH        0x00000013    //internal error            :    file error (0x20000001 - 0x20000003, check below)
#define INJ_ERR_NO_HANDLES                0x00000014    //internal error            :    no process handle to hijack
#define INJ_ERR_HIJACK_NO_NATIVE_HANDLE    0x00000015    //internal error            :    no compatible process handle to hijack
#define INJ_ERR_HIJACK_INJ_FAILED        0x00000016    //internal error            :    injecting injection module into handle owner process failed, additional errolog(s) created
#define INJ_ERR_HIJACK_CANT_ALLOC        0x00000017    //VirtualAllocEx            :    win32 error
#define INJ_ERR_HIJACK_CANT_WPM            0x00000018    //WriteProcessMemory        :    win32 error
#define INJ_ERR_HIJACK_INJMOD_MISSING    0x00000019    //internal error            :    can't find remote injection module
#define INJ_ERR_HIJACK_INJECTW_MISSING    0x0000001A    //internal error            :    can't find remote injection function
#define INJ_ERR_GET_MODULE_HANDLE_FAIL    0x0000001B    //GetModuleHandleA            :    win32 error
#define INJ_ERR_OUT_OF_MEMORY_NEW        0x0000001C    //operator new                :    internal memory allocation failed
#define INJ_ERR_REMOTE_CODE_FAILED        0x0000001D    //internal error            :    the remote code wasn't able to load the module
Start Routine Errors
                                                    //Source                    :    error description

#define SR_NTCTE_ERR_NTCTE_MISSING            0x10100001    //GetProcAddress            :    win32 error
#define SR_NTCTE_ERR_CANT_ALLOC_MEM            0x10100002    //VirtualAllocEx            :    win32 error
#define SR_NTCTE_ERR_WPM_FAIL                0x10100003    //WriteProcessMemory        :    win32 error
#define SR_NTCTE_ERR_NTCTE_FAIL                0x10100004    //NtCreateThreadEx            :    NTSTATUS
#define SR_NTCTE_ERR_GET_CONTEXT_FAIL        0x10100005    //(Wow64)GetThreadContext    :    win32 error
#define SR_NTCTE_ERR_SET_CONTEXT_FAIL        0x10100006    //(Wow64)SetThreadContext    :    win32 error
#define SR_NTCTE_ERR_RESUME_FAIL            0x10100007    //ResumeThread                :    win32 error
#define SR_NTCTE_ERR_RPM_FAIL                0x10100008    //ReadProcessMemory            :    win32 error
#define SR_NTCTE_ERR_TIMEOUT                0x10100009    //WaitForSingleObject        :    win32 error
#define SR_NTCTE_ERR_GECT_FAIL                0x1010000A    //GetExitCodeThread            :    win32 error
#define SR_NTCTE_ERR_GET_MODULE_HANDLE_FAIL    0x1010000B    //GetModuleHandle            :    win32 error

                                                //Source                    :    error description

#define SR_HT_ERR_PROC_INFO_FAIL    0x10200001    //internal error            :    can't grab process information
#define SR_HT_ERR_NO_THREADS        0x10200002    //internal error            :    no thread to hijack
#define SR_HT_ERR_OPEN_THREAD_FAIL    0x10200003    //OpenThread                :    win32 error
#define SR_HT_ERR_CANT_ALLOC_MEM    0x10200004    //VirtualAllocEx            :    win32 error
#define SR_HT_ERR_SUSPEND_FAIL        0x10200005    //SuspendThread                :    win32 error
#define SR_HT_ERR_GET_CONTEXT_FAIL    0x10200006    //(Wow64)GetThreadContext    :    win32 error
#define SR_HT_ERR_WPM_FAIL            0x10200007    //WriteProcessMemory        :    win32 error
#define SR_HT_ERR_SET_CONTEXT_FAIL    0x10200008    //(Wow64)SetThreadContext    :    win32 error
#define SR_HT_ERR_RESUME_FAIL        0x10200009    //ResumeThread                :    win32 error
#define SR_HT_ERR_TIMEOUT            0x1020000A    //internal error            :    execution time exceeded SR_REMOTE_TIMEOUT

                                                        //Source                    :    error description

#define SR_SWHEX_ERR_CANT_QUERY_INFO_PATH    0x10300001    //internal error        :    can't resolve own module filepath
#define SR_SWHEX_ERR_CANT_OPEN_INFO_TXT        0x10300002    //internal error        :    can't open swhex info file
#define SR_SWHEX_ERR_VAE_FAIL                0x10300003    //VirtualAllocEx        :    win32 error
#define SR_SWHEX_ERR_CNHEX_MISSING            0x10300004    //GetProcAddressEx        :    can't find pointer to CallNextHookEx
#define SR_SWHEX_ERR_WPM_FAIL                0x10300005    //WriteProcessMemory    :    win32 error
#define SR_SWHEX_ERR_WTSQUERY_FAIL            0x10300006    //WTSQueryUserToken        :    win32 error
#define SR_SWHEX_ERR_DUP_TOKEN_FAIL            0x10300007    //DuplicateTokenEx        :    win32 error
#define SR_SWHEX_ERR_GET_ADMIN_TOKEN_FAIL    0x10300008    //GetTokenInformation    :    win32 error
#define SR_SWHEX_ERR_CANT_CREATE_PROCESS    0x10300009    //CreateProcessAsUserW    :    win32 error
#define SR_SWHEX_ERR_SWHEX_TIMEOUT            0x1030000A    //WaitForSingleObject    :    win32 error
#define SR_SWHEX_ERR_REMOTE_TIMEOUT            0x1030000B    //internal error        :    execution time exceeded SR_REMOTE_TIMEOUT

                                                        //Source                    :    error description

#define SR_QUAPC_ERR_RTLQAW64_MISSING        0x10400001    //GetProcAddress            :    win32 error
#define SR_QUAPC_ERR_CANT_ALLOC_MEM            0x10400001    //VirtualAllocEx            :    win32 error
#define SR_QUAPC_ERR_WPM_FAIL                0x10400002    //WriteProcessMemory        :    win32 error
#define SR_QUAPC_ERR_TH32_FAIL                0x10400003    //CreateToolhelp32Snapshot    :    win32 error
#define SR_QUAPC_ERR_T32FIRST_FAIL            0x10400004    //Thread32First                :    win32 error
#define SR_QUAPC_ERR_NO_APC_THREAD            0x10400005    //QueueUserAPC                :    win32 error
#define SR_QUAPC_ERR_TIMEOUT                0x10400006    //internal error            :    execution time exceeded SR_REMOTE_TIMEOUT
#define SR_QUAPC_ERR_GET_MODULE_HANDLE_FAIL    0x10100007    //GetModuleHandle            :    win32 error
File Errors
//File errors:
#define FILE_ERR_SUCCESS            0x00000000

                                                //Source                :    error description
#define FILE_ERR_CANT_OPEN_FILE        0x20000001    //std::ifstream::good    :    openening the file failed
#define FILE_ERR_INVALID_FILE_SIZE    0x20000002    //internal error        :    file isn't a valid PE
#define FILE_ERR_INVALID_FILE        0x20000003    //internal error        :    PE isn't compatible with the injection settings
SWHEX Errors
//SWHEX - XX.exe errors:
#define SWHEX_ERR_SUCCESS            0x00000000

                                                //Source                :    error description

#define SWHEX_ERR_INVALID_PATH        0x30000001    //StringCchLengthW        :    path exceeds MAX_PATH * 2 chars
#define SWHEX_ERR_CANT_OPEN_FILE    0x30000002    //std::ifstream::good    :    openening the file failed
#define SWHEX_ERR_EMPTY_FILE        0x30000003    //internal error        :    file is empty
#define SWHEX_ERR_INVALID_INFO        0x30000004    //internal error        :    provided info is wrong / invalid
#define SWHEX_ERR_ENUM_WINDOWS_FAIL 0x30000005    //EnumWindows            :    API fail
#define SWHEX_ERR_NO_WINDOWS        0x30000006    //internal error        :    no compatible window found[/CODE

[B]How to Build from Source[/B]
Compile "GH Injector Library\GH Injector Library.sln" with these steps:

[*]Open the project
[*]Click "Build" in the menubar
[*]Click "Batch Build"
[*]Tick all 4 release builds (Configuration = Release)
[*]Click "Build"
Install AutoIt - It is Required to compile GUI - [URL='']AutoIt Downloads - AutoIt[/URL]

Run CompileAndMerge.bat

It will compile the AutoIt files and merge all the required files into "GH Injector".

To run the GH Injector simply open "GH Injector\GH Injector.exe".

[B]What is a DLL Injector?[/B]

In computer programming, DLL injection is a technique used for running code within the address space of another process by forcing it to load a dynamic-link library. DLL injection is often used by external programs to influence the behavior of another program in a way its authors did not anticipate or intend. For example, the injected code could hook system function calls, or read the contents of password textboxes, which cannot be done the usual way. A program used to inject arbitrary code into arbitrary processes is called a DLL [URL='']injector[/URL].

If you're making an internal hack you must use a DLL injector to inject it.

For the Manual Mapping a lot of credits go to [URL='']Joachim Bauch[/URL]. I highly recommend you to go there and take a look if you're interested in Manual Mapping and the PE format itself.

The windows structures I use for the unlinking process are mostly inspired by [URL='']this site[/URL] which is also a very interesting read.

I also want to credit Anton Bruckner and Dmitri Shostakovich because most of the time coding this I listened to their fantastic music which is probably one of the reasons why this took me way too long.

Last but not least credits go to Rake's mom for keeping me motivated during hard times (no pun intended).

Also checkout the loader made by Traxin which utilized the GH Injector:[URL=''] Release - GHLoader v2.0 (Source Included)[/URL]
First release
Last update
4.92 star(s) 26 ratings

More resources from Rake

Latest updates

  1. Updated to V3.3

    09/09/19 Updated to V3.3 Injector: Redid most of the codecaves (again)...
  2. Updated to V3.2

    Fixed wrong Dlls being injected Replaced process input box with combobox Minor design...
  3. Updated to V3.1

    Quick update to fix a typo in the GUI. Also added a proper updater which makes updating much...

Latest reviews

Excellent, in my case the best injector.
Great injector, lots of hard work went into the development and upkeep of this project and on top of that, it's open source. GH is the hands down best resource I've ever come across on the net for game hacking. Thanks for all of the hard work you do for us.
It just works .
Beautiful GUI and smooth moving of window. Didn't know this was possible through autoit!
It works nicely with most games, and accepts most dll's i put it to the test with, except one, which is a hack for Darkwood, it apparently cannot attach to it, and warns me while choosing the process. The architecture of the dll is x86 and i run Windows x64. Im totally a noob to it so i don't know any correlation between those numbers, and i don't know how to make it run, any way to solve it?
good documentation ease of use showed scan
Great injector but im not sure this undetected, tell me are this injector undetected from VAC?
What is the hotkey?
There's none.
Best Injector ever
This injector is top notch. It probably is the best public injector.
Similar resources
Resource starter Title Category Downloads Last update
Truth Guided Hacking DLL Mono Injector GH - Official Tools 1441
Rake Guided Hacking Offset Dumper - GH Offset Dumper GH - Official Tools 981
Community Mods