虽然早就听说过浩方是如何工作起来的。但要真正说到其细节,还是可以深入地探究一下。
很多都应该知道,浩方本质上是将整个Internet变成若干个大的局域网的方式,让所有游戏在这个“局域网”上运行。那么,浩方是如何架构这样的系统的呢?
下面的所有的分析,使用大家熟知的星际争霸作为例子。首先先看看星际在局域网上运行的方案。我们这里不分析UDP协议的。有兴趣的可以深入探讨。
两个不同的星际实例,依赖于IPX协议在局域网里进行连接。另外,众所周知,星际争霸是基于DirectX开发的,因此,暂且认为,其是基于DirectPlay来进行IPX开发的。
在上面的这种方案下,要将其扩展到Internet,关键就在于替换IPX协议。为什么这么说呢?原因有两个:
第2点可以通过试验得到证实。如果你使用Dll Explorer对星际程序进行跟踪,会发现,如果用浩方启动星际,那么会比直接启动星际多出一个dll。这个dll正是浩方自己自带的SCSocket.dll。
我们基本可以根据这个假设,画出浩方的架构图:
当你使用Depends打开SCSocket.dll之后,你会发现一些细节。
整个架构中,我认为最有创意的在于将IPX转换成TCP/IP。很多人说这是中国环境下发展出来的特有产物,我也比较同意。这并不是我所关心的。不管怎么样,这个架构确实非常棒。
架构这东西,其层面就是处于那个说出来,大家都能明白,但是做出来的,只有那么几个。不过从上面的分析看来,浩方确实已经修改了原有星际的运行规则,并且其运行方式必须是浩方启动星际,很有Loader破解的嫌疑。也正因为此,浩方目前正和神州奥美打着关司呢。