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

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

相关文章

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?