1

i am developing a video player i silverlight i wanna something to prevent recording or screen capturing

i thought about hacking the windows APIs and stop my program from running if there was any of those capturing software asking the user to close it first but i donno how to do this

is there another solution ??!!!!

AnthonyWJones
  • 187,081
  • 35
  • 232
  • 306
Miroo
  • 795
  • 3
  • 13
  • 35
  • 12
    Perhaps you will also need a way to prevent someone with a camera from taking photos of the screen? – Oded Jul 20 '10 at 10:27
  • 4
    There is another solution: accept the fact, that a computer belongs to its user and not to the developer, who runs his software on it. What you're trying to do, is only a waste of time, for both you and your users. – back2dos Jul 20 '10 at 10:31
  • i care about my high resolution content – Miroo Jul 20 '10 at 10:31
  • And stopping screen captures will do nothing to help with that. What would prevent someone from capturing the direct output from the video card? The content will still be high resolution. – Oded Jul 20 '10 at 10:33
  • So? If I wanted to get my hands on it, I'd try to decompile your app, throw out all your restrictive stuff and let it save the stream my hard drive directly. Screen capturing is really the most stupid way I could think of, to get hold of a video, that is transmitted to my computer. – back2dos Jul 20 '10 at 10:35
  • the content itself is kinda encoded :p :D i just wanna do the minimum security we can. preventing capturing software from running while my software is running what do u think ??!!! challenge yourself the opposite way :) – Miroo Jul 20 '10 at 10:37
  • What exactly should keep me from reusing the decoder I will find in your decompiled app and saving the decoded stream? In the end, your task is to build a software so good, that people prefer to watch your videos using your software, even if that involves payment. I think copy protection is disrespectful. Personally (for private use), I spent more money on donationware than on super protected payware. I absolutely hate it, having bought a software and spending several minutes dealing with its stupid copy protection. Copy protection makes software slow, resource hungry and cumbersome. – back2dos Jul 20 '10 at 10:44
  • +1 Its a reasonable requirement to protect content. I would not be surprised in the future to see some end-to-end means to ensure that playback is only occuring over an authenticated and encrypted HDMI connection. However as it stands now there isn't much you can do. – AnthonyWJones Jul 20 '10 at 14:27
  • @Oded so copy protection systems for games are pointless, too? – Dave O. Jul 20 '10 at 14:58
  • @Dave - apart from the fact that they cost a lot to implement and get cracked almost immediately? If you create a great game, it will sell. Adding copy protection to it will not prevent piracy. See what a game developer thinks - http://www.videogamer.com/news/creative_assembly_piracy_nature_of_the_beast.html – Oded Jul 20 '10 at 15:10

5 Answers5

5

It's simple not possible. If you try it, you're only going to annoy people. Even 'hacking the windows API' would not work, since the OS itself could be run inside a VM.

sloth
  • 99,095
  • 21
  • 171
  • 219
  • i guess i can user system.diagnostics.process to retrieve the running processes - but i can't find it in the silverlight project – Miroo Jul 20 '10 at 11:44
  • Blizzard is able to detect most cheat/bot software that runs in parallel to their games - so don't say it's impossible. – Dave O. Jul 20 '10 at 14:33
  • 1
    @Dave detecting cheat/bot software has nothing to do with screen capturing. – sloth Jul 20 '10 at 14:45
  • hm I thought the opposite. Since in both cases you have to detect other software that runs at the same time and behaves in a strange way (for example listens to the video output - if that's possible to detect by win api calls..). I hoped to gain a little insight how such things are done in the answers but they unfortunately focus on how the idea is bad to begin with. – Dave O. Jul 20 '10 at 14:57
  • 1
    @Dave The point is to capture the screen, you don't need extra software running on the system that runs the video player, since it could be run in a VM or the video output could be captured at hardware level. To detect cheating in games, there are lot of other practices, like behaviour analysis or checking the game files for integrity. Of course the answers focus on how bad the idea is, since it is really a very idea. It's like transporting information between applications via the clipboard... – sloth Jul 20 '10 at 15:17
3

I hate to be a downer, but task is impossible to fully accomplish.

If you were somehow able to hook the keyboard (from a silverlight app no-less) I would certainly hope that whatever AV the user is running would throw up some red flags.

Also what if the user doesn't use the standard (alt)+prtscr? A third-party tool might use a different key-combo. Also, I've written a screen-grabber with the GDI+ API, and there's no way to disable something that low-level.

What about attached capture-cards? What if your app is running in a VM or over remote-desktop?

If you are that deeply concerned about protection your HD content, watermark it, or make the user pay for it first.

All-in-all, as soon as your content's data enters your user's computer, they can duplicate it.

sigint
  • 316
  • 2
  • 6
  • i do but i am trying to consider the spreading after first time paying – Miroo Jul 20 '10 at 15:09
  • @Miroo Fully preventing a user from copying and distributing your content is impossible. Although you could always (attempt to) take legal action if a user violates your TOS. – sigint Jul 20 '10 at 15:16
2

You could go about using a key hook system, stopping the user pressing the print screen key on the keyboard, that would be a start. There aren't many systems which stop users from print screening video specifically. You might want to try just watermarking your video instead? At least then people know that the video was originally sourced from you.

Joel Kennedy
  • 1,581
  • 5
  • 19
  • 41
0

The solution is not to allow your application to run on a computer, but instead target a device such as a phone. Computers will always allow some kind of screen capture and video capture but this is much harder and less likely to be tackled if you restrict to only playing on certain devices.

Martin
  • 2,442
  • 14
  • 15
-1

How badly do you need this? There are many ways to defeat screen capture protection: for instance, aiming a video recorder at the computer screen (or looping output to a TV with a capture card, etc. etc. etc.)

Go for a commercial solution if you really really need this: don't have any experience with those myself, however.

Tobiasopdenbrouw
  • 13,811
  • 1
  • 22
  • 27