[搬运]反截图技术的原理及简单实现
本帖最后由 592618243 于 2020-12-2 19:43 编辑前言
该文章将邀请世界第一的编程语言-易语言来为我们演示。
吹逼
随着好玩的游戏越来越多,盖佬人才越来越突出,好玩的游戏+一款牛逼的WG成为了一个老挂逼的日常生活。鲁迅说过‘有乐同享,有难同当‘,于是乎,老挂逼们开始投身于直播行业,以‘高超’的技术,来向大众传递游戏胜利的快乐。为了防止大众偷学到自己的技术,一种技术诞生了-反截图。
啥叫反截图
顾名思义,就是让你截取不到你想截取的图片呗。这时聪明人又来了,那我直接把截图函数全部干掉不就完事了吗?
ennnnn你行你上。
为什么要反截图 直播、装逼、防止一些有截图检测的游戏
实现一个简单反截图 这个简单啊,打钱就完事。
咳咳,开个玩笑。上才艺
看不懂没关系,会用就行。
这样就OK,然后咱们运行后看一下截图效果
我们发现,窗口变黑了。这是一个简单的反截图效果,虽然能反截图了,但是是个人都觉得这种反截图不靠谱。假设你正在用科技直播,观众全部就看着黑框了。而且,咱们自己都觉得这种反截图效果不行,那游戏公司还会傻吗?不给你一个套餐,难道留着回家过年吗。 那么问题来了,当前这个黑框是覆盖在我们窗口上面呢,还是他把窗口直接变成黑色。接下来开始探究。
探究反截图原理 那么我们能不能实现一个全透明的反截图效果呢,比如B覆盖在A上面,我们截图,只能截取到A,B就完全处于一个透明的状态。答案是肯定的。接下来我们来进一步研究一下,既然我们想让他透明,好办啊,我们给窗口设置一个透明。
运行起来之后,发现窗口透明了
那我们来重新截图试试看。
诶,我们发现刚刚那个反截图的效果,也变透明了。我们添加一个控件再运行截图看看效果。
我们发现,看不到按钮。经过这样的测试我们发现,SetWindowDisplayAffinity 这个函数之后所产生的黑框,并不是覆盖上去的,而是直接把窗口刷新成为黑色的,而且这种黑色的效果可以通过修改窗口透明度来控制黑色的可见度。
由此可知,一个新的反截图思路:给窗体一个透明度,这样就实现了全透明的反截图,
Ok.下面开始根据第一种方法实现反截图(嘴角开始上扬)。
优化反截图 其实在上面我们已经实现了全透明的反截图,只不过用的是易语言官方库的命令(易语言真是世界上最好用的语言呢),现在用API实现。
用这个函数设置就行,第一个参数句柄,第四个参数:1则用crKey,忽略bAlpha;2则用bAlpha,忽略crKey。这个函数干嘛的呢,就是设置窗口透明度的。
下面为了方便演示,我在窗口写了字,看看效果。
截图看一下效果
这样的话,就实现了一个简单的反截图。如果想要实现效果更好的,可以到我上面指出的帖子里看看实现方法。 下面是我将此技术运用在D3D透明绘制上
截图后
结束语 本篇文章只是探究一个低级的反截图,该反截图的原理也是我再某论坛看到的,虽说开源,但是却是调用DLL。凭着正义心驱使的我岂能让这种作为猖狂,直接扔进OD瞎操作,最后得知原理。
另外这种方法还能过OBS直播/录制等等,感谢@PlaneJun大牛的分享。 w7lovelmy 发表于 2020-12-2 22:39
偷偷拿手机出来拍不就好了。。还有谁反截图的。。出来~!
类似LXL某WG三杀四杀五杀自动截图的嘛还有各大主播直播过直播跟录制之类的 我在易语言知道这个能窗口反截图,但是我想问问怎么让绘制反截图,绘制好像没有窗口句柄 qq148 发表于 2020-12-2 18:40
我在易语言知道这个能窗口反截图,但是我想问问怎么让绘制反截图,绘制好像没有窗口句柄
外部绘制。 那么问题来了 怎么反 反截图 我就想知道网贷甚至银行的app都无法截图,怎么破,,安卓10。 vvang_pengfei 发表于 2020-12-2 19:05
我就想知道网贷甚至银行的app都无法截图,怎么破,,安卓10。
不会啊用自带的都能截啊华为没毛病!{:1_919:} 笨蛋蛋 发表于 2020-12-2 19:00
那么问题来了 怎么反 反截图
这就得邀请我们的南极企鹅厂来一期专业的讲解了。 技术贴支持一个 学习了,灰常有用。 雕图一堆{:301_997:}