Texture Theft via OpenGL

I hope this is the best place to put this topic. I believe the issue is multi-platform but I use Windows in particular so I figured I would ask here.

There is a program called GLIntercept (http://glintercept.nutty.org/) which can intercept textures and among other things from memory so to speak. What I am noticing though is that this program is used for means of theft of other peoples hard work.

I am asking for help, reference, tools, code or advice as to how this kind of non-sense can be stopped without having to deal with filing copyright suits which require time and money to deal with someone who “easily” ripped someone elses hard work.

Is there any hope for content creators?

You can’t. GLIntercept is a debugging tool which can be misused (as any other debugging tool). But honestly, I don’t think you will loose money on it, as probably noone will steal your art for commercial projects (high risk). Intelleactual property is a complicated issue. I see nothing wrong if someone uses my hard work for some research (non-profit) purpouses as I don’t loose money on it.

zenaphex, what about the hordes of games that easily allow access to content (.jpg, .tga, etc)?

Is there even a single reported case of content “theft” that resulted in commercial loss?

And one more: there are some “authors” that “protect” their rights by checking for special tools installed (like daemontools or glintercept) and aborting the program if this is the case. The was someone on this board asking an advice on how to do this. Besides of being violation of client’s rights this also often results in system instability or incompartibility. Just relax, noone is going to steal your art :-/

The only failsafe way of protecting something from being copied is to not make it at all, but in light of the new theories in physics, even that might not help.
So relax, if they do steal it and you catch them selling your work, you could always sue them for lot’s of $$$.

It is to do with Intellectual Property. Apologies for not mentioning. That is user created digital art that is used, sold and viewed digitally.

I don’t know of any of you have ever used a platform called Second Life (http://secondlife.com). User created content is a serious issue and many cases have already been posted privately within its forums. They go after the big name designers and are even selling freebie acquired content for their own profit.

Originally posted by zeoverlord:
So relax, if they do steal it and you catch them selling your work, you could always sue them for lot’s of $$$.
There’s a problem here. They created a platform which anyone can register without providing identifying information. No credit cards identification. And even names and addresses can be faked. They did this for the purpose of opening the community internationally so they could attract a more diverse community. Yea…the consequences are terrible. So, copyright suits are useless.

EDIT: Just another thought. Isn’t in some countries this stuff not a legal issue so they can at free will do as they wish?

This is why I hope in some way or another someone could invent some rock-solid countermeasure to this non-sense. Yea…I have too much hope but I am an artist myself and feel deeply for these people who are at risk to theft.

Originally posted by zenaphex:
This is why I hope in some way or another someone could invent some rock-solid countermeasure to this non-sense.
That is as i stated before physically impossible, it can’t be done.
Sure, you could put up some insane copyprotection sheme, but that would at best slow down people who want to steal your art, however, this also comes at a price towards the honest end users, i just hope it’s not to high.

maybe a GL_EXT_texture_encryption extension could help :stuck_out_tongue:

maybe a GL_EXT_texture_encryption extension could help
For maybe 5 minutes until somebody crakz0rz it.

Face facts: once you loose your product upon the public, you can’t stop them from taking textures, shaders, etc. And blaming GLIntercept for it is nonsense; you can steal textures and so forth in D3D too.

In fact, you can steal textures easily enough by just cracking the format used to store them and getting them directly from packed files. Such files are generally easy to deprocess if you put the effort into it.

Like I said, once you release it, you release it.

As for legality, using GLIntercept to take textures is something called “fair use”. The purchaser of the software has the right to take such things. And even make derivative works from them. As long as they don’t sell them, give them away, or claim the works as their own, they can do whatever they want.

Fair use has nothing to do with how much money you make from it. Even if you give your game based on stolen textures away for free, it’s still illegal. I’m no lawyer, but I think the key point here is distribution. As long as you only use it yourself (e.g. for testing your engine), you’re okay, but don’t give it away, even if it’s for free.

As for copy protection:
You have a logical dilemma here. Of course you can encrypt textures. But you want to display them somehow, and for that they have to be decrypted eventually. So even if you find the PerfectUnbreakableEncryptionMechanism™, you still have to ship the key with the product. And the cracker just needs to read the unencrypted image from memory after your program decrypted it for display.

Overmind:

“As long as they don’t sell them, give them away, or claim the works as their own, they can do whatever they want.”

I covered that.

Just FYI: I had a offline email discussion.

The main issue in second life is not that people can get the textures used, it is that they can re-upload the extracted textures and claim them as their own. (secondlife is a MMO space where users can create and sell items)

The only solution to this I suggested is to have secondlife embed digital watermarks in the textures before sending them to clients for display, so that if someone re-sends a texture - the watermark can be found by the server and the texture will be rejected.

(textures are stored on the secondlife server and sent to the cleints as needed - so a watermark could be embedded when they initially upload the texture)

Sorry Korval. I should read more carefully :wink:

Originally posted by zenaphex:
[b] It is to do with Intellectual Property. Apologies for not mentioning. That is user created digital art that is used, sold and viewed digitally.

I don’t know of any of you have ever used a platform called Second Life (http://secondlife.com). User created content is a serious issue and many cases have already been posted privately within its forums. They go after the big name designers and are even selling freebie acquired content for their own profit. [/b]
I think jwatte worked there.

glIntercept works by dropping the dll into the exe’s folder. This same trick was commonly used by cheaters on Counter-Strike and Half-life and they just make the walls transparent and make the smoke grenades smokeless, color the enemy in red.
The other problem that pissed me off back then was that some people’s drivers suck, so fog doesn’t work for some people and they can see you through some surfaces. SiS crap!

A GL program can detect if the DLL is present in it’s folder. Secondly, you need to detect if a debugger is running on you EXE (There is a Win API for this)

@V-man:
true, but a hacker can easily override your calls by overriding the WinAPI or such… This is closed circle :-/

And you always can replace the DLL in the system32 directory. Checksums don’t help either, unless you want your app to be broken when the next service pack comes out.

Of course you can detect if a debugger is running, but what if the cracker uses a debugger to skip your debugger detection code?

It’s no use trying to archieve something that’s not possible. You can’t protect data that’s needed for display on the client. All you can hope for is detecting theft, you can’t prevent it.

Sure, it’s not possible to come up with a full proof method. I’m sure it’s even possible to have a virtual PC with a virtual video card. As you send your texture to GL, the virtual driver will pick it up even if this mythical GL_EXT_texture_encryption existed.

But let’s not discourage zenaphex from trying to defend his work :slight_smile:

Why not? False security is worse than no security at all, because people tend to rely on it, even if it does not work :stuck_out_tongue:

Well, there is a possible solution in using digitally signed libraries, but you need to use .Net or Mono for it.
opengl32.dll isn’t managed anyway