1.数字图片使用类似与动画的方式显示,每次显示的是数字的一部分,当动态显示的时候人眼是可以分辨出具体数字的。但是截图的话就只能截取一部分,参考:

cups.cs.cmu.edu/soups/2007/posters/p147_lim.pdf

2.屏蔽系统按键:Print Screen 和 Alt + Print Screen,主要原理是注册热键的方式,参考:

http://www.vckbase.com/document/viewdoc/?id=1566

3.全局Hook,参考:

Screen Capture Library for Windows : http://gpalem.web.officelive.com/screencap.html

http://topic.csdn.net/u/20090914/00/70e6da83-906b-4db4-a3ee-d79dfd460bd6.html

这种方法不仅要Hook GDI方式的截图还有DirectX方式的截图,当然不排除还有其他方式的截图,例如:“Windows Media API for Capturing the Screen”。

所以这种方法实施起来甚是繁琐,第一要尽可能多地Hook相关API函数,但是你很难做到全面。另一方面稳定性,扩展性和维护性也不太好。

4.视频过滤驱动(Video filter drivers)。

相对于Hook来说可能更好一些,但是技术难度比较大。

http://search.codesoso.com/Record/ddf85213-2bdf-bfae-5626-15646cefdf09_446750_1.html

http://www.codeproject.com/Articles/Toby-Opferman

Driver Development Part 6: Introduction to Display Drivers

5.ShadowSSDT

经过体验“卡巴斯基2012”版本的虚拟键盘功能,发现其有防截屏功能,当虚拟键盘开启时截取的屏幕是全黑色的。如果虚拟键盘未开启,则截图时截不到卡巴斯基的主界面。

使用xuetr分析,卡巴斯基并没用设置“Video filter drivers”,而是使用了ShadowSSDT做的防截屏,以下是驱动klif.sys的ShadowSSDT:

[code=C/C++]

[XueTr][ShadowSSDT]: 21
序号       函数名称                      当前函数地址      Hook             原始函数地址      当前函数地址所在模块
13         NtGdiBitBlt                   0xB1EE8508        ssdt hook        0xBF809F5F        C:\WINDOWS\system32\DRIVERS\klif.sys
227        NtGdiMaskBlt                  0xB1EE85DE        ssdt hook        0xBF8384E0        C:\WINDOWS\system32\DRIVERS\klif.sys
237        NtGdiPlgBlt                   0xB1EE864E        ssdt hook        0xBF943B92        C:\WINDOWS\system32\DRIVERS\klif.sys
292        NtGdiStretchBlt               0xB1EE8572        ssdt hook        0xBF8738A3        C:\WINDOWS\system32\DRIVERS\klif.sys
307        NtUserAttachThreadInput       0xB1EE8BD6        ssdt hook        0xBF8F7976        C:\WINDOWS\system32\DRIVERS\klif.sys
312        NtUserBuildHwndList           0xB1EE86B6        ssdt hook        0xBF835EA1        C:\WINDOWS\system32\DRIVERS\klif.sys
323        NtUserCallOneParam            0xB1EE84D4        ssdt hook        0xBF801067        C:\WINDOWS\system32\DRIVERS\klif.sys
378        NtUserFindWindowEx            0xB1EE82C8        ssdt hook        0xBF8B128C        C:\WINDOWS\system32\DRIVERS\klif.sys
383        NtUserGetAsyncKeyState        0xB1EE80D6        ssdt hook        0xBF8491D4        C:\WINDOWS\system32\DRIVERS\klif.sys
414        NtUserGetKeyboardState        0xB1EE83D6        ssdt hook        0xBF852661        C:\WINDOWS\system32\DRIVERS\klif.sys
416        NtUserGetKeyState             0xB1EE8122        ssdt hook        0xBF820DEC        C:\WINDOWS\system32\DRIVERS\klif.sys
460        NtUserMessageCall             0xB1EE821A        ssdt hook        0xBF80EDEB        C:\WINDOWS\system32\DRIVERS\klif.sys
475        NtUserPostMessage             0xB1EE816E        ssdt hook        0xBF808934        C:\WINDOWS\system32\DRIVERS\klif.sys
476        NtUserPostThreadMessage       0xB1EE81C2        ssdt hook        0xBF8B3C60        C:\WINDOWS\system32\DRIVERS\klif.sys
490        NtUserRegisterHotKey          0xB1EE8C90        ssdt hook        0xBF8ADC84        C:\WINDOWS\system32\DRIVERS\klif.sys
491        NtUserRegisterRawInputDevices 0xB1EE835E        ssdt hook        0xBF915CEB        C:\WINDOWS\system32\DRIVERS\klif.sys
502        NtUserSendInput               0xB1EE827A        ssdt hook        0xBF8C3117        C:\WINDOWS\system32\DRIVERS\klif.sys
529        NtUserSetParent               0xB1EE8A88        ssdt hook        0xBF8795B5        C:\WINDOWS\system32\DRIVERS\klif.sys
549        NtUserSetWindowsHookEx        0xB1EE8026        ssdt hook        0xBF852721        C:\WINDOWS\system32\DRIVERS\klif.sys
552        NtUserSetWinEventHook         0xB1EE807E        ssdt hook        0xBF8F0099        C:\WINDOWS\system32\DRIVERS\klif.sys
576        NtUserUnregisterHotKey        0xB1EE8DB0        ssdt hook        0xBF912A64        C:\WINDOWS\system32\DRIVERS\klif.sys

[/code]

其中还有一些防键盘记录的,与截屏有关的是:NtGdiBitBlt,NtGdiMaskBlt,NtGdiPlgBlt,NtGdiStretchBlt。NtUserBuildHwndList,NtUserFindWindowEx用来隐藏窗口,使得三方程序查找窗口时找不到被保护的窗口,也是与防截屏功能有关的。

Anti-Screen Capture(Prevent Screen Captures)截屏与反截屏相关推荐

  1. Tiger Screen Capture(虎跃屏幕录制大师)

    1.Tiger Screen Capture(录屏大师) 一款跨平台,小巧的录屏软件.支持多个平台,可显示录制实时内容. 2.功能 1.支持屏幕录制 2.支持麦克风,电脑声音录制 3.支持摄像头录制 ...

  2. 计算机一键黑屏,电脑快速黑屏软件(Black Screen)

    Black Screen是一款电脑快速黑屏软件,能够一键将显示器快速黑屏和亮屏,可以自定义快捷,还有屏保壁纸显示功能哦!你也可以设置一张图片代替黑屏,一键切换为屏保. 软件特色 操作简单 1.让你的眼 ...

  3. android开发截屏代码,android截屏代码:C++实现

    android截屏代码:C++实现 示例代码在: frameworks\base\services\surfaceflinger\tests\screencap\screencap.cpp /* * ...

  4. 笔记本电脑截屏怎么截_电脑的截屏与录屏

    电脑的截屏与录屏 相信大家都知道 QQ的截屏和录屏快捷键:截屏:Ctrl+Alt+A录屏:Ctrl+Alt+S 这种方便快捷的方式非常受人欢迎,但是万一我们的电脑上没有下载或打开QQ,我们该怎么办呢? ...

  5. Android滚动截屏,ScrollView截屏,Listview截屏,Recyclerview截屏, 截长图

    最近在做一个关于截频的功能, 恰逢鸿洋大神分享了一篇相关的博客, 我使用之后觉得甚是好用, 所以也整理了一下,以供学习. 在做分享功能的时候,需要截取全屏内容还有截长图,一屏展示不完的内容,一般我们会 ...

  6. linux删除screen命令,Linux screen命令

    screen是什么? Screen是一个全屏窗口管理器,它可以在多个进程之间多路复用一个物理终端.Screen中有会话的概念,用户可以在一个会话中创建多个screen窗口,在每一个screen窗口中就 ...

  7. ABAP:区别CALL SCREEN/SET SCREEN/LEAVE TO SCREEN

    1,CALL SCREEN XXXX将在Screen调用栈(CALL STACK)上面添加一层调用(进栈),调用XXXX的PBO和PAI,如果XXXX的Next Screen不为0,那么将继续其Nex ...

  8. 区别CALL SCREEN/SET SCREEN/LEAVE TO SCREEN

    1,CALL SCREEN XXXX将在Screen调用栈(CALL STACK)上面添加一层调用(进栈),调用XXXX的PBO和PAI,如果XXXX的Next Screen不为0,那么将继续其Nex ...

  9. 怎么抓取屏幕截图计算机考试时间,定时抓屏快照(电脑截屏工具)V4.8 最新版

    定时抓屏快照(电脑截屏工具)是一款非常实用的电脑屏幕定时抓拍软件.想定时截取电脑屏幕?定时抓屏快照(电脑截屏工具)轻松帮助用户.马上要放假了,家长一定很担心小孩最新的上网情况,看是在电脑上玩什么,用户 ...

最新文章

  1. Technology Document Guide of TensorRT
  2. day17 - 动态内存的分配初步理解
  3. 第一届云原生应用大赛火热报名中! helm install “一键安装”应用触手可及!
  4. react使用引入svg的icon;svg图形制作
  5. 在html中2em是多少px,在css设置单位px、em、rem哪个更好?
  6. 「权威发布」2019年大学生电子设计竞赛获奖名单
  7. srs 服务关闭命令_【经验总结】如何做到网络版工作站与服务器时间同步?
  8. Nginx配置文件详细说明(转)
  9. ng-repeat循环出来的部分调用同一个函数并且实现每个模块之间不能相互干扰
  10. 数据产品-数据分析和可视化工具Excel基础使用
  11. [Unity] 无脚本导出 Texture 为 PNG
  12. matlab 平滑曲线连接_【仪光学习】技能分享 | 前方高能:如何用Matlab轻松实现数学建模...
  13. 数据安全治理方法导论
  14. 赛门铁克symantec的安装与卸载-附下载地址(本人亲测)
  15. 解决idea代码无故爆红问题
  16. Leetcode 1348:推文计数
  17. Java动态代理的原理
  18. 互联网IT就业市场,你要说最有市场的一定是它,linux内核视频教程全套
  19. 注解与反射 - 注解
  20. 计算机领悟英语怎么说,领悟用英语怎么说_领悟英文怎么说_领悟英文翻译_趣词词典...

热门文章

  1. URL模块之parse方法
  2. js中字符串和数组的使用
  3. 响应式方案调研及前端开发管理思考
  4. 一步步构建大型网站架构 [转]
  5. python关于字典嵌套字典,列表嵌套字典根据值进行排序
  6. Hadoop HA集群的搭建
  7. Linux 文件属性
  8. while和for循环
  9. 原生js使用forEach()与jquery使用each遍历数组,return false 的区别
  10. Oracle转Sqlserver 记录