3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 14112|回复: 55
打印 上一主题 下一主题

[讨论] (更新版)暗黑3破解扫盲贴!!破解思路!!菜鸟破解扫盲!!

   关闭 [复制链接]

6

主题

45

帖子

49

积分

初级玩家

Rank: 2

贡献度
6
金元
847
积分
49
精华
0
注册时间
2011-7-4
跳转到指定楼层
主题
发表于 2011-9-12 23:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 achere221 于 2011-9-13 22:15 编辑

1,我们先看看一个最简单的传统的单机游戏破解。就拿星际争霸1来说,当你进入游戏的时候,如果是盗版会提示让你输入序列号,好,就此打住,分析:我草,我把这个输入序列号的这步直接从程序里面去掉,不就可以玩了吗?答案是,yes!相当聪明。这样就破解了,当然一个游戏可能会有很多类似触发输入序列号的条件,把这些触发输入序列号的程序都通通砍掉,重新打包编译,到此这个游戏就基本上破解了。可能中间会很复杂,但大部分就是这个原理。

2,然后我们再来分析暗黑3的破解思路,暗黑3采用传统的类c/s架构,换句话说就是客户端和服务器端架构。再换句话说,采用的是现在网游的设计结构。
    那么我们的破解思路在哪里,同学们会说,按上面的方法,不就是要key吗,我把暗黑3beta版输入提示激活码的程序砍掉不就可以了吗?答案是:对,但不完整,继续分析,当我们想进一切办法之后,总算可以不用输入key了,第二个问题又来了,就是校验,你想想,既然你连进去,战网肯定会校验你的相关文件,连进来一看,你tmd居然不是我的主,服务器直接拒绝了。那怎么办,想办法咯,伪造文件进行校验,找准服务器要校验哪些文件,这是个思路,不过可行性不大。那么还有什么办法呢,未完待续。。。。。

我来了,好多热心群众回帖,看来大家确实很关注,本贴是扫盲贴,只是一步一步去分析和探索过程,欢迎高手们拍砖
继续。
    上面的方法不管是破解key也好,破解登录也好,能破,这个没问题,接下来的问题是数据交互,哪些数据是在本地哪些是必须通过和服务器交换数据才行
    第一种:单机任务:所有的物品人物实体都在本地,这个没错,绝对正确,要不开发这么大的客户端干嘛,直接B/S得了。。,那么客户端和服务器端的数据是怎么交互的呢,简单一点,首先我们想到了任务和装备,好,就从这里开始说,不管是装备掉落,还是任务系统,都会有一个触发器,OK,当人物走到npc面前说话,或者走到特定场景,任务就激活了,为什么会激活,因为有个触发系统,暂且叫为触发器,。那么这个触发系统是由谁来管,或者说是由谁来操控?假定是由客户端本地来操控和触发,那么就不存在延迟,也就是说,你在玩单人战役游戏的时候,不管网络有多差,会很顺畅,因为触发命令都是由本地发出来的,不存在延迟。从beta实际情况来看,我们发现网络延迟非常影响游戏,延迟大就很卡,说明什么?说明即便是在单人任务下,至少有部分触发器是必须由战网直接发令过来,客户端收到后,再触发事件,包括攻击事件,行动事件等等,这样的话,我们想到了一个办法,sf...,对没错,就是自己架设战网服务器来做数据交互,怎样架?两个办法:1,盗取暴雪的战网2.0系统,难度不是没有,是相当大,除非有内鬼,否则基本上不可能发生。2,自己开发战网服务器,代价是你必须非常清楚客户端和服务器数据交互的来龙去脉,必须一清二除,这还只是前提,知道数据包交互的过程后,还需要进一步破解数据包交换的加密过程和解密过程,简单说来就是加解密算法和key(这里的key和betakey类似,但不是一个概念),什么是加解密算法和key,一个简单的例子,y=ax,这个函数大家都了解吧,其中的y可以看成是加密后的内容,x可以看成是加密前的内容,a就是key了,ax就是算法。如果加密前的内容是3,key是2,加密后的内容就成了6,不难理解吧,这只是最简单的对称加密算法,可以通过加密算法推演解密算法,x=y/a,也就是你知道加密后的内容,再除以a(key)就得到了加密前的内容,非对称的加密就不具例子了,不过一般来说会用对称加密算法来加密数据,非对称算法来加密密钥。说多了,再转回暗黑3,可想而知,自己搞服务器难度是有的,但不是说就一定不能搞,需要时间去研究算法。那么还有什么方法呢,未完待续,先睡觉。。。

继续来完了,
     上面提到了暗黑三的各种破解思路,只是范范的讲,大体上基本上是确认用sf的技术了,还有没有其他可能呢,答案是有!
     我们现在知道了所有或者大部分事件的触发都是由服务器下发的,这点基本上可以确认了,那么我们再来分析下触发器的模型,触发器总的来说有两种
     第一种触发模型:客户端不知道模型,触发结果完全由服务器下发。比如,事件1,人物走到npc, 客户端产生触发消息(信号),下一步要做什么,客户端也不知道,把该信号发给服务器,服务器收到之后,回复你应该显示npc第几页第几页的内容,收到服务器返回结果,npc回应说话并显示内容,这个事件中,我们可以了解到,客户端只负责产生场景触发,只负责提交触发事件,该事件触发后,客户端需要做什么操作是完全不知道的,需要服务器端返回完整的命令,然后客户端再执行相应的内容。
     第二种触发模型:  客户端知道触发事件之后下一步要做什么,只需要等待服务端回复是做还是不做。很好这个模型就可以专空子,很简单,举个例子,人物走到npc,客户端产生触发,客户端知道这个事件的结果就是显示npc的对话内容,但是客户端同样需要发个信息给服务端(汇报),说,老大,我马上要显示npc的对话内容了,你同意还是不同意。服务器只返回yes or no,在这个模型下的事件,我们就可以根据第一种方法去除程序内的相关汇报模块,重新编译即可。不需要私服,当然这只是个思路。
     第三种触发模型:结合第一种触发和第二种触发。

未完待续中。。。。

评分

4

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-4-2 09:19 , Processed in 0.028465 second(s), 17 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表