Anti-Screen Capture(Prevent Screen Captures)截屏与反截屏
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)截屏与反截屏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 泰拉瑞亚黏黏水晶长什么样
- 下一篇: 成都大熊猫基地需要人工讲解吗