深度剖析:黑神化悟空的防御机制,为何成为破解难题?

2024-08-28 14:28

本文主要是介绍深度剖析:黑神化悟空的防御机制,为何成为破解难题?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

深度剖析:黑神化悟空的防御机制,为何成为破解难题?

黑神话悟空还没发售就被破解? #国产游戏 #悟空 #西游记

推荐阅读:

全红婵抖音魅力无限,粉丝数量历史性突破1000万大关!

奥运激情日!8月9日赛事看点全解析,带你领略体育魅力

七夕不踩雷!MBTI类型恋人送礼指南,超实用推荐

海淀很潮,流行起来!一场关于创新与美学的盛宴

孙颖莎王楚钦首战告捷?悬念揭晓,精彩不容错过!

原文地址:https://www.bsw80.com/category-7.html

经过分析,黑神话的程序还暗藏了一个彩蛋,我感觉是用来嘲讽 d 加密破解团队皇后 n press 你想知道是什么吗?黑猴子反盗版的原理是什么?会拖慢游戏运行速度吗?看完本期视频你就知道了,为了搞清楚黑猴到底是如何防止盗版的,我又请来了喜欢逆向的变量。

首先必须要声明一下,破解游戏是违法行为,本视频不会传授任何破解方法。看了本视频也不会给黑神话悟空带来任何被破解的风险,所以请大家放心观看。首先作为单机游戏黑神话悟空的反盗版对抗点要搞清楚。对了,它的对抗核心思想就是不能脱离平台运行,这个平台就是 we game 和Steam,别看目标是那么简单,但为了实现却需要很大的功夫。通过我们的分析,游戏的反破解分为静态和动态两个层面。首先是静态层面,也是大家能感知到的,就是游戏程序文件变大了很多,我们打开 Steam 版本的游戏目录,我们看到悟空的主程序高达 800 多兆,而经过边量的分析,游戏文件膨胀了至少上百倍,里面有 151 万个函数,这就是代码膨胀的特征。为啥要代码膨胀呢?代码膨胀本身就是给原有代码添加无关的代码,目标当然是提高逆向破解的难度。

深度剖析:黑神化悟空的防御机制,为何成为破解难题?

我们来看一个例子。当然黑猴是 C + + 边形,为了大家能理解,我用一个简单的 Python 程序来讲解一个函数实现了两个数相加,那么膨胀后的代码是这样的。可以看到这里增加了一个无用的随机数,一个无用的 range 检查,还有一个无用的 if 条件判断,而且这个 if 条件判断的逻辑永远不会触发,是不是这段代码给你看了之后需要更多的时间去理解,何况逆向你还看不到具体代码。你看到的还是一堆汇编代码,破解难度就增加了很多。然后我举的例子,代码撑死膨胀了 4 倍,而黑神话悟空的膨胀了上百倍,所以大家可以看到难度有多大。除了代码膨胀,还有代码混淆、代码等价交换,目的都是为了提高立项工程的难度,拖延被破解的时间。

除了这个黑猴悟空还有非常多的地方,他入了 CPU ID。经过边量的统计,至少有 3, 000 多次 CPU ID,插入 CPU ID 指令可以获取 CPU 的详细信息,说白了就是获取计算机硬件唯一标识符,这在反盗版的领域,特别是软件本地授权非常重要,可以有效防止游戏程序被非法拷贝。

深度剖析:黑神化悟空的防御机制,为何成为破解难题?

除了这一点,通过 CPU ID 还可以判断当前环境是不是虚拟机,毕竟很多地下工程都是要在虚拟机下进行的,所以真的要破解难度可能真要堪比登天了。以上就是静态层面的反破解了,接下来就是游戏的运行过程中动态反破解,如何动态反破解的?那就是哈希,哈希可以理解为数字指纹,你只要知道指纹能代表内容的唯一性就可以了,只要内容变了一个字节,指纹就变了。这个哈希主要针对三个地方,一个是系统核心的 d l、 n t DL kernel 32、 kernel base。还有一个是进程环境快PEB,还有一个是共享数据结构 k user share data 系统核心 DL 检查主要是防止注入破解代码到这几个 DL 中。进程块 PEB 的哈希是 Windows 操作系统中的一个进程级的数据结构,包含了与进程相关的多个信息,比如加载的模块列表、命运行参数等等。 PEB 检查用于判断是否存在板调试或者进程环境被修改。游戏程序可能会通过检查 PEB 的结构中的标志位,例如 PEB 点 Bing debug 来判断进程是否处于调试状态。哈希值的变化可以提示此类修改可以。

user share data 是 Windows 内核中的一个共享数据结构,所有用户模式进程都可以读到其中的信息。该结构包含了一些全局变量,比如系统时间时区信息、版本信息等等。通过检查这部分的数据变化,可以判断游戏是否被调试。可以看到这三种检查的目的就是反调试,反调试的技术主要目的是增加软件运行时逆向工程的难度,通过阻止调试器,从而阻止调试器的正常工作回到刚开始的问题,黑猴的反破解技术有没有影响游戏的性能?我的答案是肯定的,但这个影响是不好估算的,毕竟我目前也拿不到脱密版的游戏,只能说你对电脑 CPU 性能越差影响越大。如果你玩黑猴的帧数主要的天花板是显卡,那么说明反破解并没有影响到你。

深度剖析:黑神化悟空的防御机制,为何成为破解难题?

以上是黑猴子主要反破解手段,当然可能还有其他地方,如果评论区里有人知道,可以补充。另外边亮还发现了一个有趣的点,就是这个游戏是有特殊接口,具体接口怎么进我就不方便公开透露。只不过这个借口里面带了一个密钥,很有趣,是一个女人的名字。我感觉是为了嘲讽帝家密破解小组 m press 皇后而设,后续变量将为大家揭开这层面纱。记得关注它,黑神话悟空作为国产第一款 3A 大作,销量已经破了 1, 000 万套,之所以有这么喜人的成绩,我想游戏本身的防盗版技术实力和广大玩家对正版游戏的观念转变有很大的关系。我依然记得当年仙剑 4 上市的时候满大街的破解版以及上海软新官方网站再见若有缘这五个字,所以游戏商业的成败和是否能扛住破解尤为重要。作为曾经的游戏从业者,看到黑神话悟空的成功,我自然非常欣慰,我希望这款游戏能成为火种,点燃更多中国 3A 单机游戏。大家是不是和我有一样的想法,让国产游戏不等于氪金网游。

这篇关于深度剖析:黑神化悟空的防御机制,为何成为破解难题?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115019

相关文章

如何用GPU算力卡P100玩黑神话悟空?

精力有限,只记录关键信息,希望未来能够有助于其他人。 文章目录 综述背景评估游戏性能需求显卡需求CPU和内存系统需求主机需求显式需求 实操硬件安装安装操作系统Win11安装驱动修改注册表选择程序使用什么GPU 安装黑神话悟空其他 综述 用P100 + PCIe Gen3.0 + Dell720服务器(32C64G),运行黑神话悟空画质中等流畅运行。 背景 假设有一张P100-

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

动手学深度学习【数据操作+数据预处理】

import osos.makedirs(os.path.join('.', 'data'), exist_ok=True)data_file = os.path.join('.', 'data', 'house_tiny.csv')with open(data_file, 'w') as f:f.write('NumRooms,Alley,Price\n') # 列名f.write('NA

深度优先(DFS)和广度优先(BFS)——算法

深度优先 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支,当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访

图解TCP三次握手|深度解析|为什么是三次

写在前面 这篇文章我们来讲解析 TCP三次握手。 TCP 报文段 传输控制块TCB:存储了每一个连接中的一些重要信息。比如TCP连接表,指向发送和接收缓冲的指针,指向重传队列的指针,当前的发送和接收序列等等。 我们再来看一下TCP报文段的组成结构 TCP 三次握手 过程 假设有一台客户端,B有一台服务器。最初两端的TCP进程都是处于CLOSED关闭状态,客户端A打开链接,服务器端

java线程深度解析(六)——线程池技术

http://blog.csdn.net/Daybreak1209/article/details/51382604 一种最为简单的线程创建和回收的方法: [html]  view plain copy new Thread(new Runnable(){                @Override               public voi

java线程深度解析(五)——并发模型(生产者-消费者)

http://blog.csdn.net/Daybreak1209/article/details/51378055 三、生产者-消费者模式     在经典的多线程模式中,生产者-消费者为多线程间协作提供了良好的解决方案。基本原理是两类线程,即若干个生产者和若干个消费者,生产者负责提交用户请求任务(到内存缓冲区),消费者线程负责处理任务(从内存缓冲区中取任务进行处理),两类线程之

java线程深度解析(四)——并发模型(Master-Worker)

http://blog.csdn.net/daybreak1209/article/details/51372929 二、Master-worker ——分而治之      Master-worker常用的并行模式之一,核心思想是由两个进程协作工作,master负责接收和分配任务,worker负责处理任务,并把处理结果返回给Master进程,由Master进行汇总,返回给客