AWESOME tutorial! Major props for actually explaining the nitty-gritty of things, including the "Why"s of what you're doing. So many other TH-cam tutorial channels don't do this, they just silently record themselves typing code, or even worse, copying and pasting. Those kind of tutorials are *useless* for anyone wanting to actually learn about this vs. just looking for a quickie copy/paste end result. You have a great talent as a teacher. Awesome job!
How do I prevent the game from crashing when I resize it in Windowed mode after injecting DLL? This resize crashing persists even after the DLL is unloaded with Numpad0.
I wrote everthing the same like you did and even copied the source code but still getting error... I even changed DetourFunction and DetourFunction to DetourAttach and DetourDetatch but now I got an error that the arguement ""PBYTE"" is incompatible with ""PVOID*"" Edit: I gotta try the old detour files you have linked
Hook is successfully done but I can't see the drawing on my screen. I debugged the code and everything works fine, but as I said no graphics. Any idea why?
Figured it out, The VMT is usually located at the start address of the created object. Another way of writing it: uintptr_t* vTable = (uintptr_t*)(*(uintptr_t*)pDevice) // basically just dereference the object pointer, Voila there's the VMT // and for EndScene: uintptr_t* EndScene = vTable + 168; // 42 x 4
i tried void** vTable = *reinterpret_cast(pDevice) and it still work but if i close my app it still remain in task list. what is the diffrent between (void**)(pTable) and (void***)(pTable)
is there any way to draw like on the go? because it seems like you can only draw whats in the function and the only way to communicate between that function and the main cheat is through variables with a scope that reaches both... i'd like to make a function like DrawBox() or something so i can just draw boxes wherever i want (and call that function inside the main cheat and not the hookedEndScene func) but im not really too sure about how to do that ..
short answer: No. Longer: The drawing needs to happen inside the EndSceene hook but you can get creative ofc. you can create and call functions/classes wich will lead to drawing outside the hook.
Hi, whats the differences between an external and an internal "hook"? in both scenarios we are injecting a dll into the process to "execute" our functions.
External referns to a standalone application used to read/manipulate the game memory usually using RPM and WPM. Internal means using a dll injected into the process
every video i watch its like if u dont understand this watch this and this is like the 50th video ive had to watch to understand the first one lol, but its a process
quick question for some reason when i try to include d3dx9.h, it cant open the source file even though i have the include and library directories set. screenshot: prnt.sc/t13z5x any tips? edit: i have the version of the sdk found in the video, and can even find the d3dx9 header file in the include file through windows explorer prnt.sc/t146h2, but for some reason, it still won't allow me to include it into the project.
The hook worked i believe, and pressing numpad closes it but its not beeing displayed. The Game is using DirectX7 but i read somewhere on GH that DirectX9 works also with lower versions. Ideas? The Game is a bit old so there is no fullscreen borderless but i still made it work and neither in window or borderless its displayed
One option would be: 1. Add global variable: bool showMenu = false; 2. your main loop: while (true) { //code here if (GetAsyncKeyState(VK_NUMPAD1)) { showMenu = !showMenu; } //more code here } 3. in your hooked function put everything into a if: if (showMenu) { //your pDevice->Clear etc here }
How would it be like if you use latest version of MSDetour. DetourFunction is no longer valid, but there is DetourAttach instead. I tried to do so, but my game crashes everytime.
Did you use DetourTransactionBegin() before DetourAttach() and finally DetourTransactionCommit()? Otherwise it won't work. "The attach, detach, and thread operations do not take effect until the program commits the transaction using the DetourTransactionCommit or DetourTransactionCommitEx API. Alternatively, the program can abort the transaction using the DetourTransactionAbort API."
@@Cr4ntz Thanks for answering the question with well explanation. I've already figured it out and even replaced it with minhook in my hack. Ive been struggling with the assembly thesedays but it's another story... Anyway thank you so much. I appreciate your kindness! I would've been very happy if I got this answer at that time. Please help other people like me too!
Solution ripped from UC: github.com/Microsoft/Detours/wiki/FAQ#where-can-i-find-detourslib-and-detoursh You have to build detours.lib from the source at: github.com/Microsoft/Detours/tree/master/src 1. Clone the Detours repo to your computer. 2. Open "x64 Native Tools Command Prompt" 3. Change directory to the src/ folder of the Detours repo 4. Enter "nmake" 5. The detours.lib should be in the ../lib.X64, one folder above the src/
how to clear drawing on every call so that memory does not clog? if(GetKeyState(VK_DOWN)) /* key switch color text font->DrawText(...); /* on */ /*memory clog*/ else font->DrawText(...) /* off */ /*memory clog*/
it's okay. Type: const D3DRECT* Pointer to an array of D3DRECT structures that describe the rectangles to clear. Set a rectangle to the dimensions of the rendering target to clear the entire surface. Each rectangle uses screen coordinates that correspond to points on the render target. Coordinates are clipped to the bounds of the viewport rectangle. To indicate that the entire viewport rectangle is to be cleared, set this parameter to NULL and Count to 0.
You can only hook things that the game uses. Maybe it uses opengl? Then you gotta look into how to hook that. Whatever graphics lib it uses is the one u gotta hook.
HRESULT result = pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dparams.hDeviceWindow, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dparams, &pDevice); this part is what fails for me, the dll is able to be injected and all but nothing is shown
Can you possible make a video on how to hook different versions of DirectX? Some games (most now-a-days) use Dx11... Also, is there any way to get this to work for 64bit dll's? I always get an error with Detours when I try it with 64bit
@@casualgamer1791 I tried minhook, but anytime I try and inject it says it fails to load minhook.64.dll or minhook.86.dll depending if I'm building 64 or 32... Apparently, minhook is broken or something... I even took the example project they provide and it fails to compile saying "failed to load minhook.lib"... If I manually add minhook.86.lib and minhook.64.lib then it says the respective dll's are missing. I add those, and it wont inject, probably because for whatever reason minhook wants to inject its minhook dll with the dll I'm trying to inject...
the game crashes when i eject the dll, i assume its to do with the detour but i dont really know much about hooking as ive only just started coding internals, any idea why this could be? great video btw :)
Unfortunately the code is giving me an erro "unresolved symblo external_Direct3DCreat9@4 and D3DXCreateFontA@48. I don't know why and I did everything correctly.Can someone help me here. Am actually a begginer but that much. Actually this video is the only video that explains everything very well for beginners. Anyways thumbs up my friend
you might be compiling under x64 instead of x86, I had this error and it went away so lmk if it helps. I did manage to get everything to compile but sadly it's not displaying anything with the game I'm running
@@casualgamer1791 hey thanks man fr i been looking everywhere for a cpp overlay window hack tutorial do u think if u make the tutorial you can show us how to draw esp and a menu to the overlay because i am trying to make my own apex legends cheat out of all the tutorials i have watched if so that would be amazing thanks
It will take a while until i'll have everything you are looking for. Here is some source code for an overlay which can be used for both esp and menu. guidedhacking.com/threads/direct2d-overlay-for-almost-any-application.8945/ I will cover all those things eventually but will take time Edit: you do have to register to download it but its free so w/e
Ok so am an Android Hacker and now I want to learn PC game hacking too, where do I start/what do I do first? I have knowledge in Assembly Language, C++, Hex Patching, and some Smali. For PC, so far I know Cheat Engine, and Basic Read/Write Memory
this is the most unfriendly video for people who have no idea how to make a cheat and want to start making one i understood nothing after downloading directx sdk
I tried this tutorial last year to no avail. Gave a break and tried it today. Works like a charm. Thanks a lot.
this is amazing thank you! most tutorials on this subject don't properly explain the concepts, just tell you to copy and paste some 'magic' code
how to know if a game is using directx 9 or other engine??
Where can I go to reinstall the Microsoft Visual C++ 2010 Redistributable
AWESOME tutorial! Major props for actually explaining the nitty-gritty of things, including the "Why"s of what you're doing.
So many other TH-cam tutorial channels don't do this, they just silently record themselves typing code, or even worse, copying and pasting. Those kind of tutorials are *useless* for anyone wanting to actually learn about this vs. just looking for a quickie copy/paste end result.
You have a great talent as a teacher. Awesome job!
Thank you for the kind words. That is exactly the goal. Who if not us should realy understand what's going on below the surface.
I fall in love with your videos, they're just amazing.
07:55 If anyone's return value isn't matching the function type (E0120) be sure to change __stdcall* to __stdcall
That was a pretty sneaky cut xd
U can always use the code linked in the desc. Sometimes I fk up while recording
@@casualgamer1791 Thanks. Awesome channel btw! Only a question of time before you hit 100k with quality like this ;)
You are so good at giving tutorials. This was very helpful.
My pleasure :)
This is really cool! I used your hooking technique to make a texture extraction tool.
Giant dad lives in my heart
How do I prevent the game from crashing when I resize it in Windowed mode after injecting DLL? This resize crashing persists even after the DLL is unloaded with Numpad0.
and what if a game runs on dirext8?
Hey, mate, you are back, and the video is good, useful for some games
Hey :) yea i felt bad for a while already not posting anything... finally made time for it.
I wrote everthing the same like you did and even copied the source code but still getting error... I even changed DetourFunction and DetourFunction to DetourAttach and DetourDetatch but now I got an error that the arguement ""PBYTE"" is incompatible with ""PVOID*""
Edit: I gotta try the old detour files you have linked
Would this get us VAC banned?
Hey! I downloaded DirectX and my d3dx9 file missing. Help please!
This tutorial was really useful for me, thank you
Hook is successfully done but I can't see the drawing on my screen. I debugged the code and everything works fine, but as I said no graphics. Any idea why?
Can I use this tutorial w DirectX11 games also? What is needed to change?
Wow! Such a great tutorial tbh
Could someone explain the pointer hell going on at void ** vTable = *reinterpret_cast(pDevice);
Figured it out, The VMT is usually located at the start address of the created object. Another way of writing it:
uintptr_t* vTable = (uintptr_t*)(*(uintptr_t*)pDevice) // basically just dereference the object pointer, Voila there's the VMT
// and for EndScene:
uintptr_t* EndScene = vTable + 168; // 42 x 4
@@Cr4ntz gj!
i tried void** vTable = *reinterpret_cast(pDevice) and it still work but if i close my app it still remain in task list. what is the diffrent between (void**)(pTable) and (void***)(pTable)
is there any way to draw like on the go? because it seems like you can only draw whats in the function and the only way to communicate between that function and the main cheat is through variables with a scope that reaches both... i'd like to make a function like DrawBox() or something so i can just draw boxes wherever i want (and call that function inside the main cheat and not the hookedEndScene func) but im not really too sure about how to do that ..
short answer: No.
Longer: The drawing needs to happen inside the EndSceene hook but you can get creative ofc. you can create and call functions/classes wich will lead to drawing outside the hook.
with your code made a hook to dx11 and it works
thx
Hi, whats the differences between an external and an internal "hook"? in both scenarios we are injecting a dll into the process to "execute" our functions.
External referns to a standalone application used to read/manipulate the game memory usually using RPM and WPM. Internal means using a dll injected into the process
Thanks man awesome tutorial works fine :)
700th subscribers
BEST TUTORIALS
welcome and ty :)
every video i watch its like if u dont understand this watch this and this is like the 50th video ive had to watch to understand the first one lol, but its a process
Hi, could you explain how to set rectangle in the right bottom of corner?
you just have to change the values of these coordinates: rectx1, rectx2, recty1, recty2, (depending on the window size of the game)
i have 2 error E0020 identifier "DetourFunction" is undefined and Severity cannot open source file "detours.h"
Severity is an IDE? Must be a linker issue. Make sure the detours file is linked properly
*sigh* time to learn direct3d... i already know opengl so that is a plus
AYYYY he is back
Hey :) Yea ... sorry about the long break. ll try to stay more consistent
CasualGamer no problem sorry for my late response lmfao
quick question
for some reason when i try to include d3dx9.h, it cant open the source file even though i have the include and library directories set.
screenshot: prnt.sc/t13z5x
any tips?
edit: i have the version of the sdk found in the video, and can even find the d3dx9 header file in the include file through windows explorer prnt.sc/t146h2, but for some reason, it still won't allow me to include it into the project.
In the Project Setting > VC++ Directories > Include Directories. The path has to be wrong/missing
The hook worked i believe, and pressing numpad closes it but its not beeing displayed. The Game is using DirectX7 but i read somewhere on GH that DirectX9 works also with lower versions. Ideas? The Game is a bit old so there is no fullscreen borderless but i still made it work and neither in window or borderless its displayed
Hello, how do I add a menu open / close?
One option would be:
1. Add global variable: bool showMenu = false;
2. your main loop:
while (true) {
//code here
if (GetAsyncKeyState(VK_NUMPAD1)) {
showMenu = !showMenu;
}
//more code here
}
3. in your hooked function put everything into a if:
if (showMenu) {
//your pDevice->Clear etc here
}
@@casualgamer1791 Please help me! Did as you wrote, but when I press a key, the program shuts down
This code tested and working for me: pastebin.com/Tbr6FbaL
@@casualgamer1791 Thanks no longer needed, I did a great job! But I got another one, for some reason Ks go crashes
@@casualgamer1791 And it became crash after I wrote a function to draw text
I imagined if I can call from spesific NumVertices and primCount to load
d3d11 hook tutorial plz , there are no d3d11 tutorials on the internet
Hi Bro, does making d3d menu required hooking directx?
Id recommend it. But tecnically not necessary. If you do not want to hook look at external overlay
How can i inject it to a 64 bit game?
How would it be like if you use latest version of MSDetour. DetourFunction is no longer valid, but there is DetourAttach instead. I tried to do so, but my game crashes everytime.
No clue :/ why use the latest version?
Did you use DetourTransactionBegin() before DetourAttach() and finally DetourTransactionCommit()? Otherwise it won't work.
"The attach, detach, and thread operations do not take effect until the program commits the transaction using the DetourTransactionCommit or DetourTransactionCommitEx API. Alternatively, the program can abort the transaction using the DetourTransactionAbort API."
@@Cr4ntz Thanks for answering the question with well explanation. I've already figured it out and even replaced it with minhook in my hack.
Ive been struggling with the assembly thesedays but it's another story...
Anyway thank you so much. I appreciate your kindness! I would've been very happy if I got this answer at that time. Please help other people like me too!
@@あまね-y6t No problem bro, remember, always read the documentation it's always worth your time (:
Holy shit, great tutorial
do you have detours 1.5 .h and .lib for x64
Solution ripped from UC:
github.com/Microsoft/Detours/wiki/FAQ#where-can-i-find-detourslib-and-detoursh
You have to build detours.lib from the source at: github.com/Microsoft/Detours/tree/master/src
1. Clone the Detours repo to your computer.
2. Open "x64 Native Tools Command Prompt"
3. Change directory to the src/ folder of the Detours repo
4. Enter "nmake"
5. The detours.lib should be in the ../lib.X64, one folder above the src/
Is it similar to dgvoodoo software?
how to clear drawing on every call so that memory does not clog? if(GetKeyState(VK_DOWN)) /* key switch color text
font->DrawText(...); /* on */
/*memory clog*/
else
font->DrawText(...) /* off */
/*memory clog*/
it's okay. Type: const D3DRECT*
Pointer to an array of D3DRECT structures that describe the rectangles to clear. Set a rectangle to the dimensions of the rendering target to clear the entire surface. Each rectangle uses screen coordinates that correspond to points on the render target. Coordinates are clipped to the bounds of the viewport rectangle. To indicate that the entire viewport rectangle is to be cleared, set this parameter to NULL and Count to 0.
gj
How to make it working on the game does not supports DirectX?
You can only hook things that the game uses. Maybe it uses opengl? Then you gotta look into how to hook that. Whatever graphics lib it uses is the one u gotta hook.
@@casualgamer1791 thanks you
HRESULT result = pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, d3dparams.hDeviceWindow, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dparams, &pDevice);
this part is what fails for me, the dll is able to be injected and all but nothing is shown
Can you possible make a video on how to hook different versions of DirectX? Some games (most now-a-days) use Dx11... Also, is there any way to get this to work for 64bit dll's? I always get an error with Detours when I try it with 64bit
regarding X11: yes will do
About 64bit dlls: I think the version I linked is 1.5 which does not support x64. Have a look at minhook
@@casualgamer1791 I tried minhook, but anytime I try and inject it says it fails to load minhook.64.dll or minhook.86.dll depending if I'm building 64 or 32... Apparently, minhook is broken or something... I even took the example project they provide and it fails to compile saying "failed to load minhook.lib"... If I manually add minhook.86.lib and minhook.64.lib then it says the respective dll's are missing. I add those, and it wont inject, probably because for whatever reason minhook wants to inject its minhook dll with the dll I'm trying to inject...
Sounds more like a project settings issue
thank man, easy coding for use I would like to see more comments
the game crashes when i eject the dll, i assume its to do with the detour but i dont really know much about hooking as ive only just started coding internals, any idea why this could be? great video btw :)
Your assumtion is correct i noticed this issue after releasing the video :/ one has to unhook the directX stuff. Ill see if i can find how to do that
@@casualgamer1791 okay cool, I'll look into it myself at some point, thanks!
Here we go:
DetourRemove((PBYTE)pEndScene, (PBYTE)hookedEndScene);
Ima add it to the linked code aswell
@@casualgamer1791 great thanks! I took it upon myself to learn more about detours so I figured it out a while back. But thank you anyways!
Unfortunately the code is giving me an erro "unresolved symblo external_Direct3DCreat9@4 and D3DXCreateFontA@48. I don't know why and I did everything correctly.Can someone help me here.
Am actually a begginer but that much. Actually this video is the only video that explains everything very well for beginners. Anyways thumbs up my friend
you might be compiling under x64 instead of x86, I had this error and it went away so lmk if it helps. I did manage to get everything to compile but sadly it's not displaying anything with the game I'm running
dudeeee ur videossss are amazing by any chance could you do a tutorial with directx 11 imgui a hook and how we could draw an esp
Ur tutorials are one point 👌🏻 maybe a combination with a ring0 driver?
is this like how some cheats use discord overlay for their cheats?
what the...
Actually not a stupid question imo. Those cheats hook the discord overlay instead of creating their own
how in hell do u memorize all those inputs?
You don't
So, does it work in fullscreen?
Generally speaking yes it should
@@casualgamer1791 thank U for the answer, im tryin to make an internal overlay to LoL, but first im learning diffrent options on a diffrent games ;)
is this hook hack can work in emulator like memu with freefire
hey man nice video do you think you can make a tutorial on drawing to a external transparent overlay
Thank you. Yes can and probably should do since that option works for all games
@@casualgamer1791 hey thanks man fr i been looking everywhere for a cpp overlay window hack tutorial do u think if u make the tutorial you can show us how to draw esp and a menu to the overlay because i am trying to make my own apex legends cheat out of all the tutorials i have watched if so that would be amazing thanks
@@casualgamer1791 and i subbed with notifs on btw
It will take a while until i'll have everything you are looking for.
Here is some source code for an overlay which can be used for both esp and menu.
guidedhacking.com/threads/direct2d-overlay-for-almost-any-application.8945/
I will cover all those things eventually but will take time
Edit: you do have to register to download it but its free so w/e
I probably should also mention the tutorial series by the all mighty fleep ^^
th-cam.com/video/06PpBTzVNts/w-d-xo.html
Please I'm begging you🙏🙏 If possible could you make a content to show us how to make a d3d menu using memory addresses. If possible😭😭
Ok so am an Android Hacker and now I want to learn PC game hacking too, where do I start/what do I do first?
I have knowledge in Assembly Language, C++, Hex Patching, and some Smali. For PC, so far I know Cheat Engine, and Basic Read/Write Memory
hello :) this could be a starting point: guidedhacking.com/threads/start-here-beginners-guide-to-learning-game-hacking.5911/
Can I have subtitle please
Why are u using the light-theme for VS?! Are you the devil or something???
^^ never even considered changing it tbh. any theme you would recommend?
CasualGamer the dark theme one
🙏 thank u
I love it
awesome!
Bro make a video for ios pub g esp hack
subscribed :)
this is the most unfriendly video for people who have no idea how to make a cheat and want to start making one
i understood nothing after downloading directx sdk
plz make video more
i like this video
thank u
anyone else get dllinject failed finding address of msvp140D!?cout@std@@3V?$basic_ostream@DU?$c...