windows 软件防截屏?

2022-02-19 15:00:32 +08:00
 Inn0Vat10n
发现在用的某个 windows 客户端软件有防截屏功能,无论是 QQ 的截屏还是系统自带的 PrtSc, 一截,软件界面会自动变黑,这个是怎么实现的?有什么办法可以绕过?
6416 次点击
所在节点    问与答
30 条回复
duke807
2022-02-19 15:11:15 +08:00
把 windows 安裝在 linux 系統的虛擬機裏面,在 linux 系統環境截圖試試。

同樣的方法,可以破解 QQ 的登陸密碼的鍵盤保護,可以監控到登錄密碼,我親自試過可以。
Inn0Vat10n
2022-02-19 15:17:43 +08:00
@duke807 我只是想分享截图内容给朋友,为了这个装虚拟机其实不如我直接手机拍照了。。有点好奇这个是怎么实现的
duke807
2022-02-19 15:34:00 +08:00
那你拍照好了

應該是操作系統有截圖事件通知吧

用虛擬機的話,外部操作系統的截圖通知不會傳遞到虛擬機內部

虛擬機內部的各種鍵盤等保護也沒法保護到外部虛擬機

然後順便說一下,很多網站不允許複製粘貼,這種限制對 linux 無效,因為 linux 獨有鼠標中鍵粘貼。

反正,linux 對開發最友好,對小白也最友好,暫時不友好的是對遊戲玩家,但適配 linux 的遊戲大廠也越来越多。未來是 linux 的,早換早省事。
duke807
2022-02-19 15:36:01 +08:00
fix typo: 虛擬機內部的各種鍵盤保護等機制也沒法保護到外部主系統
cjpjxjx
2022-02-19 15:59:08 +08:00
远程桌面 < 虚拟机 < 采集卡 < 拍照
BreadKiller
2022-02-19 16:08:52 +08:00
我猜可能是监听电脑的剪贴板,如果是图片的话就自动给你替换成空白。
你可以试试在画图软件里打开一张图片,然后用框选工具框选之后复制,如果不能复制可能就是我猜的这个原因了。
BreadKiller
2022-02-19 16:11:54 +08:00
我没看清楚楼主的描述~软件变黑的话应该就是别的手段了
asmmt
2022-02-19 16:16:41 +08:00
hook 了 windows 截屏 api ,检测到截屏时先把界面变黑。
Telegram
2022-02-19 16:42:42 +08:00
Netflix 的防截屏就类似,很牛批。
ColorfulBoar
2022-02-19 17:01:34 +08:00
@Inn0Vat10n 这位 linux 大师其实是建议你把 windows 删了换成 linux ,再在 linux 里面装虚拟机然后在 linux 下面的虚拟机里面装 windows……对就为了截个图。

---

另外真的没懂为啥 2022 年了 Linux 狂信徒反而越来越疯了,居然连绕开网页复制限制都能给吹成 Linux 特色功能,至于推荐新手和(未来的)游戏玩家换 Linux 更是脸都不要了。有兴趣的可以翻翻其历史记录,特别搞笑,一位完美的 Linux-hacker syndrome 患者。
duke807
2022-02-19 17:10:35 +08:00
@ColorfulBoar 你誤解了,我瘋狂的推廣 linux 就是為了讓你們討厭 linux ,不然的話,大家都精通 linux 了,linux 就不值錢了,對於小白不容易中毒等好處也就沒有了。
elfive
2022-02-19 17:32:08 +08:00
记得早些年有些用 OpenGL 的程序就是这样的,截屏直接是黑的,试试用 Fraps 截图,应该是可以截到的
mgrddsj
2022-02-19 17:40:53 +08:00
@Telegram Netflix 的不太一样,那是通过 DRM 保护的媒体内容。一般程序应该是不会用 DRM 的吧,否则在 DRM 实现不好的电脑上就显示不了内容了。我估计楼主这个程序是用别的方法实现的。
ljsh093
2022-02-19 17:58:09 +08:00
DRM ?
andytao
2022-02-19 18:02:04 +08:00
感觉开发一个这样的工具有 [钱途] 呀
crab
2022-02-19 18:05:32 +08:00
用这个 API 就可以了。
SetWindowDisplayAffinity
geelaw
2022-02-19 18:39:51 +08:00
@ColorfulBoar #10 🤔 我是不是识别出来你是谁了?

@mgrddsj #13 DRM 防截图在 Windows 上就是 app 告诉 Windows 在截图得时候阻碍自己被截图,即 @crab #16 说的那个 API ,就行了。并且不存在“DRM 实现不好得电脑”,只存在“DRM 实现不好的软件”。

远程桌面可以绕过这个 API 的限制,和虚拟机一样,在客户端(宿主机)截图的时候,远程桌面客户端(虚拟机程序)不会通知服务器(客机)。我并不知道 Windows 8 以来用来测试的 nested session 版远程桌面(即提供 Windows 应用商店应用开发时模拟器测试的基础设施)是否也能,不妨一试。
ysc3839
2022-02-19 19:18:28 +08:00
整个窗口变黑的情况,大概率是使用 SetWindowDisplayAffinity

如果想解除限制,或者给某个窗口加上限制,我之前写过一个工具 https://github.com/ysc3839/NoScreenCap 通过注入代码到目标进程来进行控制,不过这个方案有一定风险,可能会被目标程序检测到,认为是作弊、外挂等。另外我也没给这个项目发布编译好的 exe ,所以要用的话需要自己编译。
Buges
2022-02-19 20:00:50 +08:00
@ColorfulBoar X selection 确实能算”Linux 特色功能“,至于为什么能绕过限制,当然还是因为用的人少。
win11 都开始强制要求 ms 账号才能用了,我觉得 linux+win 虚拟机确实是最好的解法。至于(未来的)游戏,别忘了 valve 和显卡直通。
ysc3839
2022-02-19 21:20:00 +08:00
@geelaw 视频 DRM 用的是别的接口,不是 SetWindowDisplayAffinity ,前者可以实现截图时仅仅视频区域变黑,且叠加在视频区域上方的东西也能正常显示,后者只能让整个窗口变黑。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/835037

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX