admin 发表于 2021-2-22 13:32:39

反截图技术的原理及简单实现

https://s3.ax1x.com/2021/02/22/y7WkB8.md.png
随着好玩的游戏越来越多,盖佬人才越来越突出,好玩的游戏+一款牛逼的WG成为了一个老挂逼的日常生活。鲁迅说过‘有乐同享,有难同当‘,于是乎,老挂逼们开始投身于直播行业,以‘高超’的技术,来向大众传递游戏胜利的快乐。为了防止大众偷学到自己的技术,一种技术诞生了-反截图。
啥叫反截图
       顾名思义,就是让你截取不到你想截取的图片呗。这时聪明人又来了,那我直接把截图函数全部干掉不就完事了吗
虽然是这么个理,但是你确定你干得来吗。
为什么要反截图
       直播、装逼、防止一些有截图检测的游戏
实现一个简单反截图
       这个简单啊,打钱就完事
这样就OK,然后咱们运行后看一下截图效果
我们发现,窗口变黑了。这是一个简单的反截图效果,虽然能反截图了,但是是个人都觉得这种反截图不靠谱。假设你正在用科技直播,观众全部就看着黑框了。而且,咱们自己都觉得这种反截图效果不行,那游戏公司还会傻吗?不给你一个套餐,难道留着回家过年吗。
      那么问题来了,当前这个黑框是覆盖在我们窗口上面呢,还是他把窗口直接变成黑色。接下来开始探究。
探究反截图原理
         那么我们能不能实现一个全透明的反截图效果呢,比如B覆盖在A上面,我们截图,只能截取到A,B就完全处于一个透明的状态。答案是肯定的。接下来我们来进一步研究一下,既然我们想让他透明,好办啊,我们给窗口设置一个透明。
运行起来之后,发现窗口透明了
我们发现,看不到按钮。经过这样的测试我们发现,SetWindowDisplayAffinity 这个函数之后所产生的黑框,并不是覆盖上去的,而是直接把窗口刷新成为黑色的,而且这种黑色的效果可以通过修改窗口透明度来控制黑色的可见度。
由此可知,一个新的反截图思路:给窗体一个透明度,这样就实现了全透明的反截图。
       Ok.下面开始根据第一种方法实现反截图(嘴角开始上扬)。
其实在上面我们已经实现了全透明的反截图,只不过用的是易语言官方库的命令(易语言真是世界上最好用的语言呢),现在用API实现。
页: [1]
查看完整版本: 反截图技术的原理及简单实现