atom0s Moderator Reputation: 198
Joined: 25 Jan 2006 Posts: 8516 Location: 127.0.0.1
|
Posted: Thu Mar 02, 2017 3:42 am Post subject: |
|
|
There are a few ways people go about doing this depending on the target.
1. Inject, hook and draw your own objects (1). The jist of this is to inject a DLL and hook the rendering engine being used (Direct3D, OpenGL, etc.) and use the device pointer to draw your own objects each frame. For Direct3D8/9, this is usually handled within EndScene or Present calls of the device. You would draw your code before the game handles the call itself allowing your objects to be drawn over the entire scene.
2. Inject, hook and draw your own objects (2). Similar to the above, however instead of hooking the rendering engine such as Direct3D, you would instead hook the games code itself and use the games rendering functions to draw things. This would allow you to draw a UI using the games functions meaning the UI will look like the rest of the games controls etc since you are using its own code.
3. Overlays. A more popular method these days due to anti-cheats, overlays are instead just a transparent window sitting on top of the games window using completely custom, up to you, rendering methods. Such as C# (via its built in GDI or WPF (Direct3D)), Direct3D, GDI/GDI+, and so on. This is a more common approach these days as I said since anti-cheats are a bit more strict on hooking. This also helps avoid typical screenshot functions that a lot of games use to detect ESP and other non-game rendered things on the screen within the given context.
If you go with route 1, there are premade UI libraries that you can use to inject with your stuff after you have the rendering device pointer. For example, IMGUI (https://github.com/ocornut/imgui) has become a popular UI codebase that many game hacks have been using lately.
_________________
- Retired. |
|