Using Deviare to Cheat on Games
This simple Deviare code allows you to to see through game walls. We intercept Direct3D objects and select wireframe mode so the walls are transparent. This code injects a DLL to create an object based on the IDirect3D9 interface and hook the address of the CreateDevice COM method from the virtual table. The hooked CreateDevice COM method receives an object with IDirect3DDevice9 interface, which is used to set the wireframe mode by calling pDeviceInterface->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME). The pDeviceInterface->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID) call reverts to the solid mode. You can switch between the wireframe and the solid modes by using the INSERT and DELETE keys.
Deviare can be used to develop a lot of other game tools. Some ideas to try yourself are:
- Hooking the random function in the Minesweeper to return zero and solve the game with just one click
- Retrieving the 3D models from games which encrypt them
- Implementing an Aimbot
It would be a dangerous thing for the gamer community if streamed online games such as OnLive succeeded. You cannot reverse engineer the cloud. Game cheating has a long early history, it would be bad to cut it. Gamers have been cheating on video games since their invention. It would be a shame to stop the fun.
Prerequisites
Acknowledgments
Code sample written by Douglas from Nektra Windows driver development. He was helped by Data Loss Prevention Solution Development and Windows Software Development teams.