作者sitos (麦子)
看板WarCraftChat
标题Re: [闲聊] 请问开图的最初原理?
时间Wed Mar 25 11:59:01 2009
※ 引述《MikuruXshana (合体)》之铭言:
: 标题: [闲聊] 请问开图的最初原理?
: 时间: Wed Mar 25 11:08:18 2009
:
: 想请问, 开图这工具的出现是因为 地图有漏洞 还是 魔兽争霸本身有漏洞呢?
: 还是说, 都不是,是由OS系统下去做出来的啊?
:
和地图本身的制作无关,也不是魔兽争霸的「漏洞」。
虽然我对於何谓「漏洞」没有什麽见解,但可以开图,显然是在设计游戏时就知道了。
开图可不是魔兽争霸的专利,也不是 Blizzard 第一次遇到的问题,
早在 Starcraft 的时候,开图软体就已经到处都是,因此在开发 Warcraft 时,
Blizzard 应该也早就知道相同的原理可以在 Warcraft 上面运作。
基本上我不认为开图是一种漏洞,因为在本机执行的程式本来就有可被窜改的可能,
Warcraft 就算被窜改顶多也只影响到正在游戏的玩家, Blizzard 未必会愿意花心力,
去处理一个其实整体而言影响不大的问题。只要本机程式有可能被窜改,
搞再多的防护,也只是延後被破解的时间,但基本上最後仍是徒劳无功。
Warcraft 的开图,可以粗略地区分为 detectable maphack 和 undetectable maphack ,
简单讲就是可侦测的 maphack 与不可侦测的 maphack 。看到这里可能会很好奇,
原来 maphack 还有这麽多种,而是否可以侦测,应该是指 Warcraft 本身,
是否能够对於使用开图这件事情作出判断。以下简述原理。
detectable maphack 做的事情多半只是更改 Warcraft 程式执行时的记忆体资料,
举例而言,现在的游戏是否有「全视野」,可能是以一个 bit 存在记忆体中,
当你在开游戏时若有选全视野,则该 bit 为 1 ,反之则为 0 。
因此要开全图,只要在正常游戏进行时,把该 bit 由 0 改为 1 就可以了。
其它类型的开图功能,必如说资源传输等等,都可以用类似的方式达成。
不过上面所讲的是非常粗略的概念,实作的时候得要考虑很多其它的因素,
例如直接开全图,会导致可以攻击原本看不到的敌人,若真的发生这样的事,
会导致 client 与 host 的 game state 不一致,进而断线。
因此怎麽样解开特定的功能,但不影响到游戏,是制作开图工具一个重要的考量。
好的开图工具是一开,该有的都有,该没有的都没有。做的烂的,就是该有的没有,
或者是不该有的一堆。下场就是可能跟没开一样,或者是很容易不小心按到就断线。
由於修改记忆体资料,可以透过把该记忆体资料读出来,来判断是否有启动开图,
因此不论是 Warcraft 本身或者是其它的程式,都可以作这个检查,
在天梯的游戏不会有「全视野」的设定,因此若是进行中的游戏有全视野,
那麽就可以被认定是有开图的。但 custom game 可能不能用同样的方式判断。
至於 undetectable maphack 则不是透过修改记忆体的方式达成。
我曾经取得过一款宣称是 undetectable maphack 的软体,里面有内附一个 dll 档,
看起来应该是透过 dll injection 去改变游戏的绘图函式,但细节我并不清楚。
我想以我的能力可能也不太容易弄清楚,因为那软体是要卖钱的。
不过是真的满强的,因为不改变记忆体内的资料,的确是难以侦测。
有兴趣的人可以 google 以下,然後花钱买来玩玩看。
: 会有这种疑问, 是因为看了许多防开图的机制都没有效, 一推出就马上被破解, 如果
: 下次Battle.net又更新时, 若有防开图的更新, 请问这有可能吗??
:
事实上每一次的更新,都会造成旧的开图软体无法使用,当然未必是刻意要挡开图。
最可能的原因就是因为更新过後,执行档改变,导致存放资料的记忆体位置改变,
因此修改记忆体的方式就会写到错误的位置造成错误。
但只要重新跑过一次制作开图软体的流程,就可以重新抓出这些记忆体位置,
因此新的开图软体的产生,只是早晚的问题。我不认为 Blizzard 会把心力放在反开图,
毕竟执行档散布出去,而 game state 又是每一个人完整拥有,
开图在逻辑上就是可能的。阻挡只不过是增加难度,但不可能完全消除开图的可能性。
而反开图这件事,对 Blizzard 而言没有太高的商业利益,就算不做玩的人还是很多。
不买正版的人不会因为有防开图就去买正版,玩盗版的人也不会因为能开图就不玩。
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 122.126.121.222
: 推 Gemani:正规天梯才有在抓外挂 只是不知道效果怎样 03/25 11:24
: → jesil:我也好奇正规抓的效率怎麽样 至少跟GGC比哪个比较好 03/25 11:25
: 推 Gemani:有谁有多的key可以去测试的 XD 03/25 11:40
--
我实实在在的告诉你们,一粒麦子不落在地里死了,
仍旧是一粒,若是死了,就结出许多子粒来。
约翰福音 12:24
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.31.132
1F:推 senmen:专业推 03/25 12:00
2F:推 capedoz:...........专业 03/25 12:06
3F:推 Dont2000:专业推!! 03/25 12:06
4F:推 jesil:太专业了 03/25 12:06
5F:推 poboq0002:看不懂推 03/25 12:21
6F:推 Gemani:确实不会影响到正盗版 bz就是有一堆忠实拥护者 03/25 12:31
7F:→ Gemani:那些游戏做烂又拼命搞反盗版软体的公司真该检讨一下 03/25 12:32
8F:推 bowplayer:推 03/25 13:31
9F:推 MikuruXshana:嗯! 感谢麦大解答我的疑惑~ 03/25 13:32
10F:推 senmen:之前在ro讨论板时 我有想过一个想法 03/25 13:40
12F:→ senmen:连美国国防部都有人入侵了 何况只是小小游戏公司? 03/25 13:41
13F:→ senmen:与其要求公司防外挂 不如要求公司做一个好游戏 03/25 13:41
14F:→ leepeter121:Blizzard的游戏就是好 没话讲 瑕不掩瑜 03/25 13:48
15F:推 tomjack0405:真专业 03/25 14:08
16F:→ tomjack0405:暴雪游戏就是好~每次出新游戏 不少公司会"学习" 03/25 14:09
17F:推 surolanter:泪推麦子大啦QAQ/ 03/25 14:12
18F:推 llzzyy01:专业推 03/25 15:25
19F:→ a0955133:後来一堆3D网路游戏大抄特抄WOW XDD 03/25 19:05
20F:推 jokermoon:推洨麦>8< 03/25 19:19
21F:推 wix3000:麦子大 江湖规矩,单挑! >8< 03/25 19:28
22F:推 jokermoon:楼上-.- 03/25 19:46
23F:推 Dont2000:玻璃渣威能阿@A@ / 03/25 20:15
24F:推 surolanter:>8< 蜘蛛炮瓦! 03/25 21:44
25F:推 SaVanNaSG:太专业了 03/25 21:48
26F:推 jesil:杀凡那怎麽最近都没看到人 03/25 22:29
27F:推 homer0403:清新 健康 专业! 03/25 23:17
28F:推 pucyaya:专业推 03/25 23:53
29F:推 dajon:专业m(_ _)m 03/26 01:09
30F:推 SaVanNaSG:因为我心灵受到小创伤了呀 过几天再去701找你们 03/26 09:10
31F:推 bluefish520:专业!! 03/26 14:48
32F:推 hsiehfat:快推,免得别人说我看不懂 03/26 16:35
33F:推 knme:推专业!!! 03/26 21:41
34F:推 fransice7:在商言商 , 只顾及利益是很正常的 03/28 03:44