How to protect OpenGL program ?

Hi!

How to protect OpenGL program from tools like GLTrace and GLIntercept ?

Dynamic link OpenGL DLL and see checksum and size of this OpenGL DLL ?

Can you help ? Thanks!

and keep a database of all opengl32.dll files that come with all possible drivers, annoying users everytime a new driver comes out and makes them wait for days or weeks til you update this database? how about simply living with the fact that opengl calls can be intercepted? its not like your opengl commands are giving away your engine source or any important secrets.

Especially seeing as though you’re the type of person who posts that kind of question on a public newsgroup - I don’t think I’d even want to use anything you’ve written let alone steal your ‘secrets’.

I second that.

I think there is some value in this.
Its not difficult to use a program like GLTrace to steal the texture artwork from games, and maybe someone would want to stop this?

M.

Originally posted by Ventura:
[b]I think there is some value in this.
Its not difficult to use a program like GLTrace to steal the texture artwork from games, and maybe someone would want to stop this?

M.[/b]

Why would anyone steal artwork from another game and use it in theirs?
A single texture may go unnoticed but more than that would be discovered sooner or later…
Even if GL Intercept wasn’t around, there are still tools to unpack data-files for most games.

Originally posted by Ventura:
[b]I think there is some value in this.
Its not difficult to use a program like GLTrace to steal the texture artwork from games, and maybe someone would want to stop this?

M.[/b]
If someone does this, and does it commercially, then apply your copyright and hit 'em. You can.

You’re not going to stop Virgil with checking a dll checksum I’m afraid he could just hack your app and remove the ckeck…
Or he’ll write an AgpDump tool or run SoftIce or whatever if he is really keen on finding out your secrets.
Copyright makes up for commercial infrigement and hobbyists just steal quake3 art

Charles

The best way to protect your data is to make it awfull, like electro blue + bright red textures etc.

In the digital world, once you ship it, it’s OUT OF YOUR HANDS. You gotta learn to deal with that. Create a business where you can live with this fact. Or perhaps watermark your source art, if you’re really concerned and want some form of traceable source proof.

Any function call with known signature can be intercepted using Microsoft’s tool “detours”. Just live with this fact.

  • Klaus

I knew that someone was going to ask that when I wrote GLIntercept. As the others above have pointed out, there is no way to protect data that is sent via a public API. (I would also like to point out that similar tools exist for D3D - DLLDetective and D3DSpy-Comes with the DX sdk)

You can make the hackers job a little harder by directly loading the system opengl32.dll (specify the full path) at run time and retrieving the entry points manually. This will only stop casual hackers however as experienced people will figure out what you are doing and replace the system dll with GLIntercepts’ and make GLIntercept point to the moved system dll.

[This message has been edited by sqrt[-1] (edited 02-28-2004).]

Originally posted by M/\dm/
:
The best way to protect your data is to make it awfull, like electro blue + bright red textures etc.

Or you could write your app for the Amiga, C64 or better yet the Apple ][e. Then it’d be much less likely that someone would bother to steal your “secrets”.

I believe Far Cry has encrypted its DX9HLSL shader files…suppose nobody will be bothered cracking them open, as most hacking efforts are towards getting a pirated game running rather than getting access to any source code.

Just get patents for your techniques

Seriously, it’s very unlikely for a serious application or game to rely on some technical detail that could be reverse-engineered from them. The more essential stuff like general design and UI typically be ripped just by looking at the program.

Don’t get me wrong, I do think programmers should respect the authors’ choice to keep their source closed. Some just don’t, and there’s little you can do about it.

-Ilkka

Far Cry demo has ALL CG SHADERS INT TXT FILES cpy’n’paste if you wish But if honestly, shaders are usually are similiar fresnel, bump, cube lookup, hair, fur, shadows etc. If you’ll write one of those, it’s likely that you’ll end with wwwwwwery close shader. As well you can steal someones else & just mask it. Actually it’s a lot harder with textures.
Anyway, it’s all about honesty. You can protect nothing in OpenGL.

If someone is so afraid that anyone can retrive their textures and command calls then it’s perhaps time to make a software engine with compressed textures and all that stuff. Or stop coding. :wink: