Video writing

Can I write directly to the video driver bypassing all Windows API?

xxxxx@hotmail.co.uk wrote:

Can I write directly to the video driver bypassing all Windows API?

No. Why would you want to?

EVERY driver is accessed through the Windows API. There is no “direct”
path into any driver.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

I want to display in a game some stats which anti-cheating applications forbid me from doing. I’m not cheating it is just stats on e-mail alerts etc.

xxxxx@hotmail.co.uk wrote:

I want to display in a game some stats which anti-cheating applications forbid me from doing. I’m not cheating it is just stats on e-mail alerts etc.

Most games take exclusive control of the display. Further, most games
are 3D applications, where everything is rendered as textured triangles;
even if you could get to the driver, you couldn’t modify the the list of
3D objects being rendered.

If it were easy, it would already have been done.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

> I want to display in a game some stats which anti-cheating applications forbid me from doing. I’m not cheating it is just stats on e-mail alerts etc.

How about a 2nd screen? Most games only take over the primary, leaving your other screens free for normal desktop applications.

Tim.

If I wanted to write to a 3D triangle I would understand but I was picturing a direct overlay. For example setting pixel 1,1 to red.

It seems simple.

Tim: I only have one monitor.

If you can bring *any* window to the foreground while your game is
running then you obviously can write a simple app that puts a
transparent window up over your game with the data you desire.
Otherwise you are basically SOL.

Mark Roddy

On Tue, May 10, 2011 at 2:08 PM, wrote:
> If I wanted to write to a 3D triangle I would understand but I was picturing a direct overlay. For example setting pixel 1,1 to red.
>
> It seems simple.
>
> Tim: I only have one monitor.
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
>

Not that I endorse any of this however have you thought about a straight dll injection into the game? I know it’s not exactly a driver solution, but once you gain a foot hold into the game you could pretty much pipe whatever you want into it. What game? I play battlefield 2 (a mod for it actually)

-JC

xxxxx@hotmail.co.uk wrote:

If I wanted to write to a 3D triangle I would understand but I was picturing a direct overlay. For example setting pixel 1,1 to red.

It seems simple.

It seems simple only because you do not understand the mechanism.

Virtually all games today are 3D, either Direct3D or OpenGL. These
games work by constructing a display list of all of the objects and
surfaces to be rendered, along with colors and textures. The game then
renders that “scene” periodically, by having the hardware go through
that list and generating the display you see. That happens over and
over and over, at a rate near the monitor refresh rate. You could, of
course, use subterfuge to locate the physical address of the frame
buffer, map that to virtual memory, and go write a value to that
memory. However, your pixel would be overwritten almost immediately
when the game rendered its scene again.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi,

I am sorry I took so long to reply, can you give me more information on using subterfuge?


Re: Video writing
xxxxx@hotmail.co.uk wrote: > If I wanted to write to a 3D triangle I would understand but I was picturing a direct overlay. For example setting pixel 1,1 to red. > > It seems simple.

It seems simple only because you do not understand the mechanism. Virtually all games today are 3D, either Direct3D or OpenGL. These games work by constructing a display list of all of the objects and surfaces to be rendered, along with colors and textures. The game then renders that “scene” periodically, by having the hardware go through that list and generating the display you see. That happens over and over and over, at a rate near the monitor refresh rate. You could, of course, use subterfuge to locate the physical address of the frame buffer, map that to virtual memory, and go write a value to that memory. However, your pixel would be overwritten almost immediately when the game rendered its scene again.

Tim Roberts,

xxxxx@probo.com Providenza & Boekelheide, Inc.

On Sunday, May 22, 2011, ? wrote:
> Hi,
>
> I am sorry I took so long to reply, can you give me more information on using subterfuge?
>
> -

Seriously?

Sarcasm does not translate to globish.

>
> Re: Video writing
> xxxxx@hotmail.co.uk?wrote: > If I wanted to write to a 3D triangle I would understand but I was picturing a direct overlay. For example setting pixel 1,1 to red. > > It seems simple.
>
> It seems simple only because you do not understand the mechanism. Virtually all games today are 3D, either Direct3D or OpenGL. These games work by constructing a display list of all of the objects and surfaces to be rendered, along with colors and textures. The game then renders that “scene” periodically, by having the hardware go through that list and generating the display you see. That happens over and over and over, at a rate near the monitor refresh rate. You could, of course, use subterfuge to locate the physical address of the frame buffer, map that to virtual memory, and go write a value to that memory. However, your pixel would be overwritten almost immediately when the game rendered its scene again.
>
> –
>
> Tim Roberts,
>
> xxxxx@probo.com?Providenza & Boekelheide, Inc.
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
>


Mark Roddy

xxxxx@hotmail.co.uk wrote:

I am sorry I took so long to reply, can you give me more information on using subterfuge?

Do you know what the word means? It basically means using dirty,
unapproved tricks to achieve your goal. You can go scan the PCI
configuration space to locate your graphics card, and fetch the resource
from there. However, as I said in my first message, you won’t like it.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.