如何破解一般的普通软件?

访客4年前黑客文章334

  硬件加密锁,俗程“加密狗”,对于加密狗的破解大致可以分为三种 *** ,一种是通过硬件克隆或者复制,一种是通过SoftICE等Debug工具调试跟踪解密,一种是通过编写拦截程序修改软件和加密狗之间的通讯。 硬件克隆复制主要是针对国产芯片的加密狗,因为国产加密狗公司一般没有核心加密芯片的制造能力,因此有些使用了市场上通用的芯片,破解者分析出芯片电路以及芯片里写的内容后,就可以立刻复制或克隆一个完全相同的加密狗。不过国外的加密狗就无法使用这种 *** ,国外加密狗硬件使用的是安全性很好的自己研制开发的芯片,通常很难进行复制,而且现在国内加密狗也在使用进口的智能卡芯片,因此这种硬件克隆的解密 *** 用处越来越少。 对于Debug调试破解,由于软件的复杂度越来越高,编译器产生的代码也越来越多,通过反汇编等 *** 跟踪调式破解的复杂度已经变得越来越高,破解成本也越来越高,目前已经很少有人愿意花费大量精力进行如此复杂的破解,除非被破解的软件具有极高的价值。 目前加密锁(加密狗)的解密破解工作主要集中在应用程序与加密动态库之间的通讯拦截。这种 *** 成本较低,也易于实现,对待以单片机等芯片为核心的加密锁(加密狗)具有不错的解密效果。 由于加密锁(加密狗)的应用程序接口(API)基本上都是公开的,因此从网上可以很容易下载到加密狗的编程接口API、用户手册、和其它相关资料,还可以了解加密狗技术的最新进展。 例如,某个国内知名的美国加密狗提供商的一款很有名的加密狗,其全部编程资料就可以从网上获取到,经过对这些资料的分析,我们知道这个加密锁(加密狗)有64个内存单元,其中56个可以被用户使用,这些单元中的每一个都可以被用为三种类型之一:算法、数据值和计数器。 数据值比较好理解,数据值是用户存储在可读写的单元中的数据,就和存储在硬盘里一样,用户可以使用Read函数读出存储单元里面的数据,也可以使用Write函数保存自己的信息到存储单元。 计数器是这样一种单元,软件开发商在其软件中使用Decrement函数可以把其值减一,当计数器和某种活动的(active)算法关联时,计数器为零则会封闭(deactive)这个算法。 算法单元较难理解一些,算法(algorithm)是这样一种技术,你用Query(queryData)函数访问它,其中queryData是查询值,上述函数有一个返回值,被加密的程序知道一组这样的查询值/返回值对,在需要加密的地方,用上述函数检查狗的存在和真伪。对于被指定为算法的单元,软件上是无法读和修改的,即使你是合法的用户也是如此,我理解这种技术除了增加程序复杂性以外,主要是为了对付使用模拟器技术的破解。 此加密锁(加密狗)的所有API函数调用都会有返回值,返回值为0的时候表示成功。 因此,破解思路就出来了,就是使用我们自己的工具(如VB、VC等)重新编写构造一个和加密狗API一样的DLL动态库文件,里面也包含Read、Write等全部API中包含的函数,使用的参量及返回值和原来的函数一样,所有函数返回零。然后对Query、Read函数进行处理,返回应用软件需要的数值即可。 这个新的DLL文件编写成功后,直接替换掉原来的DLL文件,这时候再运行应用软件,软件访问加密狗的操作就全部会被拦截,拦截程序永远会返回正确的数据给软件,从而实现了模拟加密狗的运行。 以上是目前破解软件加密狗(加密锁)的一些常见思路,对于这种破解,软件开发者还是有相应的一些对策的,下一回我将在《软件加密锁编程技巧》一文中具体介绍一下软件开发者将如何编写安全可靠的代码,使得这种类似的破解 *** 失效。

  更好用的破解游戏软件有:爱吾游戏盒子、GM助手、乐玩游戏盒子、格来云游戏破解版。

  1、爱吾游戏盒子

  爱吾游戏盒子是一款专业为玩家们提供破解版、 *** 修改版手游下载的游戏盒子,这款软件破解了大量游戏,大家可以在这里寻找你想要的游戏破解版、 *** 版公益服、GM版游戏,非常方便,丰富你的生活。

  2、GM助手

  GM助手让每位手游用户更好地获得游戏体验,让玩家可以自助发钻石、无限发元宝、轻轻松松就能拥有绝版装备。GM助手配合手游使用,不仅可以自助无限发元宝,还能让玩家获得GM权限,是手游刷钻必备工具。

  3、乐玩游戏盒子

  乐玩游戏盒子是一款为玩家们提供海量的破解版、 *** 公益服游戏下载变态版手游盒子。在盒子中,游戏攻略,游戏社区,游戏礼包等等关于游戏都能找到。精彩的游戏内容,玩家能够畅玩不停。

  4、格来云游戏破解版

  格来云游戏破解版是一款非常强大的游戏模拟器软件。它为用户提供各种大型3A电脑和主机游戏,用户不需要下载游戏,对性能配置没有过高的要求,只需流畅的 *** 通过云端模拟器让用户直接在手机上畅玩平台上的所有游戏。

  格来云专享多套个性手柄让玩家和伙伴玩的更加畅爽,各个平台账号互通更加 *** 。另外它还为用户提供了视频录制功能,可以帮助用户随时录制精彩的游戏视频。

  更好用的破解游戏软件是:爪游控游戏盒子、坚果游戏盒子、骑士助手、虫虫助手。

  1、爪游控游戏盒子

  爪游控,是一家专注于手游内容的综合性游戏媒体,下设门户、社区、游戏库、产业频道、视频频道、新游戏频道、游戏专区、原创游戏资讯、APP端等各类资源。

  2、坚果游戏盒子

  提供最新更好玩的手机游戏下载,首家全民手游充值返利平台及手机游戏公会推广联盟,最新最热的手机游戏下载排行榜评测,关注游戏玩家利益,助您畅玩手游。

  3、骑士助手

  是一款安卓游戏破解大全软件,这里拥有大量的好玩的破解版游戏,无需充值vip,提供无限的金币,用户可免费下载;同时还有各种辅助工具,等你来发掘。

  4、虫虫助手

  虫虫游戏,只玩精品。只为玩家提供最精品更好玩最新鲜最热门的游戏,拥有特色游戏、 *** 版游戏等独有板块,可以满足不同年龄段,不同群体对于游戏的需求,是手游玩家们的又一好去处。

  你说的是能破解游戏的软件,还是 *** 了很多破解游戏的软件

  前者不太清楚,后者的话去贴吧论坛找找,实在不行下个网易游品位搜搜看,国外破解游戏居多

  更好用的破解游戏软件是:破解游戏盒子

  破解变态游戏的官方版:破解变态游戏即为变态服游戏,是指由官方授权推出的特色福利游戏,通过创角赠送VIP和元宝道具,提高充值比例、调整爆率多活动玩法等方式,使玩家快速提升游戏体验。

  通俗版:就是你玩这个游戏,进去就送你VIP,送你元宝啊金币啊道具首充之类的。不同游戏有的还可以在线提升等级,BOSS变多,掉率更好这样。总而言之,就是让你爽到飞起~不充钱也是VIP,充值了更是不得了。充值1元,游戏内得到几百元宝活动几千元宝不等都有~厉害了呀!

   *** 破解游戏盒子的特点有:

  节奏更快:因为提高了奖励和比例,那在游戏中不管你是玩 *** 页游还是 *** 手游,基本都能很快达到很高的等级以及获得很好的战力,这些若放在没改版的游戏中可能要好几天,甚至半个月、一个月。

  福利更多:本身就是为了加快游戏的节奏,再加上非大公司没有那么多资源,为了吸引更多的玩家,那自然在福利上设置得会更好一些,通常来讲上线都是会赠送VIP等级一级相应的礼包以及还有海量的元宝、金币、材料什么的。

  竞争压力小:因为运营 *** 游戏的平台通常相较于那些游戏大公司没有他们那么多资源,所以在玩家数量上会少一些,那么人少一些竞争压力就会小一些,更加容易成为游戏中的强者。

  游戏体验更爽:在 *** 游戏中可以更快的体验到游戏的乐趣,因为我们能很快的变强,很快的拥有哪些高级的资源,这些在官方的游戏中是需要很多的人力物力才能办到的,而在 *** 游戏中,这些都是轻而易举的事情,所以游戏体验会更加的爽。

  更好用的破解游戏软件是:爪游控游戏盒子、坚果游戏盒子、骑士助手、虫虫助手。

  1、爪游控游戏盒子

  爪游控,是一家专注于手游内容的综合性游戏媒体,下设门户、社区、游戏库、产业频道、视频频道、新游戏频道、游戏专区、原创游戏资讯、APP端等各类资源。

  2、坚果游戏盒子

  提供最新更好玩的手机游戏下载,首家全民手游充值返利平台及手机游戏公会推广联盟,最新最热的手机游戏下载排行榜评测,关注游戏玩家利益,助您畅玩手游。

  3、骑士助手

  是一款安卓游戏破解大全软件,这里拥有大量的好玩的破解版游戏,无需充值vip,提供无限的金币,用户可免费下载;同时还有各种辅助工具,等你来发掘。

  4、虫虫助手

  虫虫游戏,只玩精品。只为玩家提供最精品更好玩最新鲜最热门的游戏,拥有特色游戏、 *** 版游戏等独有板块,可以满足不同年龄段,不同群体对于游戏的需求,是手游玩家们的又一好去处。

  先脱壳,然后反编译,然后设断点,分析&跟踪,找到注册吗,写出注册机。

  下面谈到了一些在学习解密过程中经常遇到的问题,本人根据自己的经验简单给大家谈一谈。这些问题对于初学者来说常常是很需要搞明白的,根据我自己的学习经历,如果你直接照着很多破解教程去学习的话,多半都会把自己搞得满头的雾水,因为有很多的概念要么自己不是很清楚,要么根本就不知道是怎么一回事,所以希望通过下面的讨论给大家一定的帮助:

  1. 断点:所谓断点就是程序被中断的地方,这个词对于解密者来说是再熟悉不过了。那么什么又是中断呢?中断就是由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。打个比方:你正在上班,突然有同学打 *** 告诉你他从外地坐火车过来,要你去火车站接他。然后你就向老板临时请假,赶往火车站去接同学,接着将他安顿好,随后你又返回公司继续上班,这就是一个中断过程。我们解密的过程就是等到程序去获取我们输入的注册码并准备和正确的注册码相比较的时候将它中断下来,然后我们通过分析程序,找到正确的注册码。所以我们需要为被解密的程序设置断点,在适当的时候切入程序内部,追踪到程序的注册码,从而达到crack的目的。

  2. 领空:这是个非常重要的概念,但是也初学者是常常不明白的地方。我们在各种各样的破解文章里都能看到领空这个词,如果你搞不清楚到底程序的领空在哪里,那么你就不可能进入破解的大门。或许你也曾破解过某些软件,但那只是瞎猫碰到死老鼠而已(以前我就是这样的^_^,现在说起来都不好意思喔!)。所谓程序的领空,说白了就是程序自己的地方,也就是我们要破解的程序自己程序码所处的位置。也许你马上会问:我是在程序运行的时候设置的断点,为什么中断后不是在程序自己的空间呢?因为每个程序的编写都没有固定的模式,所以我们要在想要切入程序的时候中断程序,就必须不依赖具体的程序设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。在DOS时代,基本上所有的程序都是工作在中断程序之上的,即几乎所有的DOS程序都会去调用各种中断来完成任务。但是到了WINDOWS时代,程序没有权力直接调用中断,WINDOWS系统提供了一个系统功能调用平台(API),就向DOS程序以中断程序为基础一样,WINDOWS程序以API为基础来实现和系统打交道,从而各种功能,所以WINDWOS下的软件破解其断点设置是以API函数为基础的,即当程序调用某个API函数时中断其正常运行,然后进行解密。例如在SOFTICE中设置下面的断点:bpx GetDlgItemText(获取对话框文本),当我们要破解的程序要读取输入的数据而调用GetDlgItemText时,立即被SOFTICE拦截到,从而被破解的程序停留在GetDlgItemText的程序区,而GetDlgItemText是处于WINDWOS自己管理的系统区域,如果我们擅自改掉这部分的程序代码,那就大祸临头了^_^!所以我们要从系统区域返回到被破解程序自己的地方(即程序的领空),才能对程序进行破解,至于怎样看程序的领空请看前面的SOFTICE图解。试想一下:对于每个程序都会调用的程序段,我们可能从那里找到什么有用的东西吗?(怎么样去加密是程序自己决定的,而不是调用系统功能实现的!)

  3. API:即Application Programming Interface的简写,中文叫应用程序编程接口,是一个系统定义函数的大 *** ,它提供了访问操作系统特征的 *** 。 API包含了几百个应用程序调用的函数,这些函数执行所有必须的与操作系统相关的操作,如内存分配、向屏幕输出和创建窗口等,用户的程序通过调用API接口同WINDOWS打交道,无论什么样的应用程序,其底层最终都是通过调用各种API函数来实现各种功能的。通常API有两中基本形式:Win16和Win32。 Win16是原来的、API的16位版本,用于Windows 3.1;Win32是现在的、API的32位版本,用于Windows 95/98/NT/ME/2000。Win32包括了Win16,是Win16的超集,大多数函数的名字、用法都是相同的。16位的API函数和32位的API函数的区别在于最后的一个字母,例如我们设置这样的断点:bpx GetDlgItemText、bpx GetDlgItemTextA和bpx GetDlgItemTextW,其中 GetDlgItemText是16位API函数,GetDlgItemTextA和GetDlgItemTextW是32位API函数,而GetDlgItemTextA表示函数使用单字节,GetDlgItemTextW表示函数使用双字节。现在我们破解中常用到的是Win32单字节API函数,就是和GetDlgItemTextA类似的函数,其它的两种(Win16 API和Win32双字节API函数)则比较少见。 Win32 API函数包含在动态链接库(Dynamic Link Libraries,简称DLLs)中,即包含在kernel32.dll、user32.dll、gdi32.dll和comctl32.dll中,这就是为什么我们要在softice中用exp=C:windowssystemkernel32.dll等命令行将这些动态链接库导入softice中的原因。因为不这样做的话,我们就无法拦截到系统Win32 API函数调用了。

  4. 关于程序中注册码的存在方式:破解过程中我们都会去找程序中将输入的注册码和正确的注册码相比较的地方,然后通过对程序的跟踪、分析找到正确的注册码。但是正确的注册码通常在程序中以两种形态存在:显式的和隐式的,对于显式存在的注册码,我们可以直接在程序所处的内存中看到它,例如你可以直接在SOFTICE的数据窗口中看到类似"297500523"这样存在的注册码(这里是随意写的),对于注册码显式存在的软件破解起来比较容易;但是有些软件的程序中并不会直接将我们输入的注册码和正确的注册码进行比较,比如有可能将注册码换算成整数、或是将注册码拆开,然后将每一位注册码分开在不同的地方逐一进行比较,或者是将我们输入的注册码进行某种变换,再用某个特殊的程序进行验证等等。总之,应用程序会采取各种不同的复杂运算方式来回避直接的注册码比较,对于这类程序,我们通常要下功夫去仔细跟踪、分析每个程序功能,找到加密算法,然后才能破解它,当然这需要一定的8086汇编编程功底和很大的耐心与精力。

  5. 关于软件的破解方式:本人将破解方式分为两大类,即完全破解和暴力破解。所谓完全破解主要是针对那些需要输入注册码或密码等软件来说的,如果我们能通过对程序的跟踪找到正确的注册码,通过软件本身的注册功能正常注册了软件,这样的破解称之为完全破解;但如果有些软件本身没有提供注册功能,只是提供试用(DEMO),或是注册不能通过软件本身进行(例如需要获取另外一个专用的注册程序,通过INTERNET的注册等等),或者是软件本身的加密技术比较复杂,软件破解者的能力、精力、时间有限,不能直接得到正确的注册码,此时我们需要去修改软件本身的程序码.

  6. 关于破解教程中程序代码地址问题:破解教程中都会放上一部分程序代码以帮助讲解程序的分析 *** ,例如下面的一段程序代码:

  ......

  0167:00408033 PUSH 00

  0167:00408035 PUSH EBX

  0167:00408036 CALL [USER32!EndDialog]

  0167:0040803C JMP 0040812C

  ......

  在这里程序中的代码地址如0167:00408033,其代码段的值(即0167)有可能根据不同的电脑会有区别,不一定一模一样,但偏移值应该是固定的(即00408033不变),所以如果看到破解文章里的程序代码的地址值和自己的电脑里不一样,不要以为搞错地方了,只要你的程序代码正确就不会有问题。

  7. 关于如何设置断点的问题:正确恰当的设置好断点对于快速有效的解密非常重要,好的断点设置可以使我们迅速找到关键的程序段,而不恰当的断点则会对解密造成不必要的精力消耗,甚至根本就不能拦截到程序的运行。

  但是具体什么时候用什么断点比较合适很难说,这需要自己用经验去累积,总的说来bpx hmemcpy这个万能断点对大多数注册码方式的软件都有用,初学者不妨多试试这个断点(通常我也是用这个断点设置,懒嘛^_^,哈哈。。。)。

  对于那些需要暴力破解的非注册码方式的软件,通常我们应该拦截对话框(如bpx DialogBox)和消息框(如bpx MessageBox(A))等。不论对于哪一类软件,当我们设置的断点均没有效果时,可是试一下bpx lockmytask,这个断点的作用是拦截任何一个按键的动作,具体常用的一些断点设置请参考"破解常用断点设置"一文。

  另外,在注册码的破解中通常需要输入用户名和注册码,一般说来用户名和密码都可以随意输入,但是根据我自己的经验,很多软件对于注册码都会逐位的进行处理,假如输入"78787878"这串数字,那么在跟踪程序的时候我们就无法知道我们当时所看到的"78"倒底是哪一个"78",所以我比较喜欢用"12345678"这样的注册码输入方式,这样的话就就能知道程序是在对注册码的哪一位进行运算,同样的对于那些需要输入较长序列号的软件,输入类似"12345-67890-ABCDEF"这样的序列号较好。

  不过有一点大家需要特别的注意:上面讲的注册码输入方式"12345678"是针对拦截WIN32 API函数来说的,假如有些时候直接拦截WIN32 API函数难以找到程序的突破口,而要借助于"S"指令在内存中寻找我们输入的用户名或注册码时,就更好不要采用"12345678"作为注册码,因为内存中很可能有许多的"12345678"字符串,这样我们没有办法知道倒底我们要破解的程序使用的是哪一个"12345678",所以我们应该选择一个不易和内存数据相同的注册码,比如:74747474(本人喜欢用,意思嘛:去死去死。。。哈哈哈^_^),对应的搜索指令为: S 30:0 L FFFFFFFF ‘74747474‘ 。当然,以上只是我个人的习惯而已,具体用什么样的输入形式可以根据本人的爱好、习惯来定,不必拘泥于某一固定的模式。

  8. 关于如何跟踪程序的问题:初学者在开始学习解密的时候往往不知道怎么样去跟踪程序,怎么样找到注册码比较的地方,当面对长长的一堆程序代码时显得不知所措。通常软件的程序内部都会利用一个子程序(即 CALL ********)去验证我们输入的注册码正确与否,对于注册码显式存在的程序,一般都会将所输入的注册码和正确的注册码放进寄存器,然后调用验证子程序进行判断,将结果返回,应用程序根据子程序返回的结果决定是否注册成功,这样的程序经常具有如下的形式:

  ****:******** MOV EAX,[********] (或 PUSH EAX等形式)

  ****:******** MOV EDX,[********] (或 PUSH EDX等形式)

  ****:******** CALL ********

  ****:******** TEST EAX,EAX (或 TEST AL,AL,或是没有这一句等形式)

  ****:******** JNZ ******** (或 JZ ********等形式)

  其中EAX和EDX指向的内存区域就是我们输入的注册码和正确的注册码,这里的寄存器EAX和EDX是随意写的,也可以是ECX,EBX,EDI,ESI等等。对于注册码隐式存在的程序,虽然不能直接看到正确的注册码,但是通常也是先将所输入的注册码地址放进某个寄存器,然后调用子程序去验证,破解时就需要进入子程序去分析注册算法。总之,看到子程序(call ********)后面跟着跳转指令(JNZ ********或JZ ********)的地方我们就应该提高警惕,多用 D EAX(或EBX、ECX、EDX、EDI、ESI...等)去看看寄存器指向的内存区域藏着什么东西。

  有一点大家要提醒大家:看见程序中使用下面这个函数是要注意,即GetDlgItenInt,这个API函数的作用是将输入的文本转化为整数,所以这类程序中是不会有显示存在的注册码的,因为注册码被转换为整数了,程序通常会用CMP ECX,EDX 这种类型的指令去验证注册码的正确性,这里ECX和EDX中存的就是所输入注册码和正确注册码的整数形式,此时可以用 ? edx 和 ? ecx 看到其十进制形式,即我们输入的形式。

  9. 关于软件的反安装问题:经常我们使用某些软件时都会遇到一个问题,就是共享软件过期之后即使删掉原程序重新安装,程序依然不能用,还是一样提醒你试用期已过请注册;或者是你已经破解了某个软件,但是还想继续研究它,但是因为软件已经注册好,没有了注册选项,这时你即使彻底删掉程序再重新安装软件,结果程序运行后还是注册过的。

  遇到这样的情况,其实原因很简单,因为程序将注册或过期信息存在了系统注册表里,所以简单的重新安装软件是无济于事的。解决的办法就是自己删掉注册表中有关的信息,但是因为注册表是WINDOWS系统工作的基础,如果不小心就很可能会损坏它而引起系统异常,所以如果你对注册表不是很熟的话,应该在修改之前备份一下注册表。

  不论是修改还是备份注册表都可以使用WINDOWS下的注册表管理工具"REGEDIT"来进行,一种办法是在"开始->运行"下输入"regedit"启动它,也可以直接点击"C:WINDOWSregedit.exe"来运行。大部分的应用软件都会将自己的信息存在如下的路径中:HKEY_LOCAL_MACHINESoftware、HKEY_LOCAL_MACHINESoftwareMicrosoft、HKEY_CURRENT_USERSoftware、HKEY_CURRENT_USERSoftwareMicrosoft 或 HKEY_USERS.DEFAULTSoftware下,具体是哪个地方依据不同的程序而有所不同,只要按上面的顺序肯定能找到有关应用程序的键,然后将和用户名及注册码有关的键值删掉就搞定了。

  10. 关于破解练习的问题:学习破解需要大量的练习,对于破解目标的选择,初学者不宜以大型的、著名的软件为目标,因为这些软件通常加密较为复杂,破解不易,应该选择一些比较不出名的、小型的和早些时候的共享软件来练习,因为加密相对简单的软件有利于初学者快速掌握破解思想和技能。至于习题的来源则很广泛,可以从网上下载,也可以去市面上购买一些共享软件光盘。 (来自百度百科,基本上你要读懂内存编码)

相关文章

有偿人肉 先查后款_黑客网站找人

互联网技术的时期挣钱如同越来越更为的非常容易了,不会太难发觉许多人从这当中盈利,可是关键是挑选了正确了新项目。自然,一直都说互联网技术自主创业门坎低,的确很低,乃至有完全免费的网上赚钱新项目,尽管赚不...

特朗普要离婚了吗-梅拉尼娅要离婚-特朗普梅拉尼

这几天对于美国现任总统特朗普来说应该是特别的难熬,拜登成功上位,媒体虎视眈眈。而这边总统大选还未完全尘埃落定,又有媒体爆出了特朗普要离婚了的消息,特朗普梅拉尼娅要离婚了吗?据了解,此前特朗普前助手爆料...

望梅止渴典故(望梅止渴是谁的典故)

东汉末年,曹操带兵打仗,在行军的路上遇到了很大的困难,那就是,荒原百里,没有水源,将士们都干渴难忍,有的体弱的士兵, 原意是梅子酸,人想吃梅子就会流涎,因而止渴。后比喻愿望无法实现,用空想安慰自己。〖...

不需要同意的微信定位(就是这么简单方便)_微信定位

不需要同意的微信定位 我们知道微信可以很容易地定位用户当前的地理位置,但实际上也可以使用很多客户端页面,比如外卖式的美团、出行式的滴滴、地震速报客户端。几年前,手机实时地理位置定位并不是那么准确或那...

王源抽烟风波后被偶遇独自吃饭,一个人点五个菜

王源抽烟风波后被偶遇独自吃饭...

暗黑3怎么赚钱?暗黑3捞金10大法则

法则 1. 人们面对着权衡取舍 这个原理奠定了一个理性经济学思维的基础。 如果每个人随时都可以拥有他们想要的 一切,那么就没有交易的需求了。 (而且这样暗黑游戏会少了很多乐趣 ) 但是,事实并非如...