6

I am building an app that displays very sensitive information and as such, I want to be able to either

  • Disable the ability to capture the screen
  • Redact the portion of my app that is on the screen during capture
  • Detect that a screen capture was made via an event, hook, log etc

Are any of the above even possible in Windows? if so, how?

UPDATE I have tried checking the windows event log for screen captures. I have searched for all over the web and I could not find any windows hooks that could do that. Any ideas would be highly appreciated

Context: There are two entities. An regular user (User A) who wants to use my app and a third party (User B) who has access to the machine before User A uses it. The intention of User B is steal the sensitive information using screen capture software during User A's session. So using VMs or anything that requires the current user's explicit action is not included

17
  • 6
  • 7
    There are dozens of ways to capture the screen without Windows (or even the computer it's running on) being involved. If the information is so sensitive that someone capturing it is a bad thing, don't display it.
    – Blrfl
    Nov 18, 2014 at 14:11
  • 3
    There are lots of systems where the data is sensitive but I think time would be better spent trying to head off social engineering routes e.g. getting people to lock their screens, restricting access to apps/offices etc. Whatever you do (or believe you can do) in the app, it can be circumnavigated.
    – Robbie Dee
    Nov 18, 2014 at 16:02
  • 4
    I am inclined to say "no" as well given my understanding of Windows development. However, I know for a fact that some programs do this. For example, PowerDVD shows a black box when taking a screen capture while it is playing content protected by HDCP. This is true even when taking a screen shot using the API directly and not using the Print Screen key.
    – user22815
    Nov 18, 2014 at 18:00
  • 4
    It is impossible! When you show the information of your screen, User B can take a digital camera or its phone and physically snap the screen. You will bypass even Protected Media Path! Then it will send this to his friends over Facebook and you are screwed. Go ahead. Do something creative. This task has NO solution. Oct 10, 2016 at 10:28

4 Answers 4

2

Perhaps you could intercept the screen capture windows message and disable screen at that time.

Here is one possible solution.

6

I read a blog post on this a while ago: http://www.patrick-wied.at/blog/image-protection-on-the-web

His approach is to use interlacing images instead of single, still-standing images. You'd split up the image into several fractions, for example in the form of stripes, and display them alternating very fast. That way, if you try to cap the screen, you will only get a - possibly unreadable, depending on your algorithm - fraction of the original picture.

On windows, I'd attempt to overlay my application with several pictures with transparent stripes. Perhaps you could only overlay the text boxes, or make them alternate between visible/invisible...

To circumvent this, you'd have to painstakingly take repeated screencaps and puzzle them together, or, as noted by Jörg W Mittag, use a DSLR with a slow shutter speed.

I'm not really sure if this is actually a practical solution for your problem, but I find the approach ingenious.

1
  • 6
    I thought of that myself once & implemented it in PHP. I was so proud of myself until a friend suggested he would use a video capture :-(
    – Mawg
    Nov 18, 2014 at 10:12
0

There is a way to do this, and you should not necessarily give up based on the other answers.

I use an app that has limited "prints" of data, and to prevent users simply screen-grabbing, the screen goes dark when using screenshot apps.

I can of course use a camera, however that's really a pain and probably enough to prevent users violating the terms for IP.

If it's about data theft, such as identity theft, or account hacking, a camera photo is probably enough.

5
  • That's really close to what I want.. How did you achieve that?
    – Ody
    Feb 6, 2017 at 16:39
  • 3
    to prevent users simply screen-grabbing, the screen goes dark when using screenshot apps But that's exatly what the OP is asking: How do you do that? You are not answering the question.
    – Jan Doggen
    Feb 6, 2017 at 21:01
  • Not sure why I am marked down. I don't know how. I am only saying that it IS possible, because an App I use does this, so don't give up. Other answers say not possible, I was clarifying that it is. Also I was noting that this does not prevent stealing screen data through say the use of a camera.
    – wcndave
    Mar 22, 2017 at 16:47
  • @wcndave mind sharing the name of this app? Mar 22, 2020 at 12:00
  • @GezaKerecsenyi The app I was referring to is Musicnotes, which is a windows store app. You can buy sheet music, however only print it once. But you can look at it on screen as much as you like. If I try to capture with any software, or just prntscreen, it goes dark. I can take a photo of course, but the technology does clearly exist to achieve OP question.
    – wcndave
    Mar 23, 2020 at 16:47
-1

I believe your best option is to permanently disconnect that particular computer from the Internet.

That way, even if a program did capture your screen of log your keyboard, then it will not be able to send it anywhere as there's no connection.

Of course, you should also disconnect from the network as well unless it's necessary to be connected and you are sure that all the computers on the network are disconnected from the Internet at all times.

This is the safest way so far.

P.S. If you need to access the Internet, then acccess from on a computer that has no sensitive information on it.

1
  • 1
    This too is tricky because the application runs in a corporate network behind firewalls so they can't connect to the Internet however the system needs to be connected to the network
    – Ody
    Feb 6, 2017 at 19:33

Not the answer you're looking for? Browse other questions tagged or ask your own question.