魔兽局域网搜索器原理

zy1306 2008-05-07 04:13:01
浩方对战平台使不处于同一局域网的机器能联机打游戏,还有一个软件,叫魔兽局域网搜索,能搜索到同一网段不同局域网里魔兽主机,并能加入游戏.它们所有技术原理相同么?是什么技术啊?有相关资料的朋友请将资料发到我邮箱里zhouyun1306@163.com.谢谢了
...全文
8132 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
hawk081 2011-01-02
  • 打赏
  • 举报
回复
LZ 我想开发个对战平台。校园网内使用
kk_balls 2009-10-06
  • 打赏
  • 举报
回复
我们学校最近好像把魔兽局域网搜索器给封了,只要我们一打开就会自动断网显示网络连接失败。有没有那个大虾给指点一下怎么破除学校的对局域网搜索器的管理!
xinrui5577 2009-09-17
  • 打赏
  • 举报
回复
我在做这个,开源! 已经有了,想加入的联系我就可以了 QQ:393191345

http://code.google.com/p/warpuber/
魔兽的工作流程
魔兽进入局域网的时候会广播一个搜索包,只发送一次。只发送当前网段(255.255.255.255),所以我们的魔兽只能看到本寝室,或者少数几个寝室的几个主机。

建立了了主机的魔兽收到之后就会发送一个包给他,这个包就是地图信息,包括地图信息,主机名,加入了多少人,剩下多少位置,还有一个重要的数据就是游戏的端口。一般魔兽的端口是6112.

建立主机的魔兽会向本地发送一个包,“我建立主机了”

搜到这条消息的魔兽会发送一个搜索包给主机。

主机就发送 地图信息。

收到之后就解析地图,这时候大家就看到了有人建主了 点击加入·

建立tcp连接 一直到推出主机的游戏



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xinrui5577/archive/2009/09/16/4560590.aspx
solar2006 2008-07-10
  • 打赏
  • 举报
回复
小弟也有个想法,做个类似“魔兽局域网搜索器”的联机软件。
但是“魔兽局域网搜索器”在war3在开始游戏之后还是有用的,如果关掉它,游戏连接就中断了!但是我分析了抓取的数据包,的确在游戏开始后,双方主机都是通过6112端口直接发tcp包,而没通过搜索器。
war3在游戏开始后发的是tcp包,如何利用搜索器建立连接呢?到现在还没想明白!!!
如何分析数据包呢?你通过什么程序来接受处理数据包呢?我想用c实现,但现在如何才能得到网卡接口呢?如何才能将接收到的war3 udp数据包的内容提取出来并显示?
很想和你交流交流

能把你的qq给我吗?
lbkdn 2008-05-22
  • 打赏
  • 举报
回复
LC很牛,只要主机是外网,联机的在网吧都可以连,也就是说有UDP打洞功能,使得内网用户能跟主机联机。
xxgamexx 2008-05-17
  • 打赏
  • 举报
回复
用HOOK API 自己开个端口吧~ 但是现在我功力不够~
FireBirdCN 2008-05-15
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 xxgamexx 的回复:]
你的帖子看了,发送UDP数据我已经知道了,而且也做了试验。(有人说可以发送一个更底层的IP包,构造虚假的端口)

但是我是从本地6110(任意)一个端口发送WAR3搜索包(也就是你写的那个结构体)到目的的6112,但是这只是建立了6110与6112之间的通讯,但WAR3占用的是本地6112端口,WAR3是根本不理睬6110的呀~

这是我最头痛的地方。


象LC和BL就。。。。。。。
[/Quote]
理睬滴~~发送到6112端口,war3会回发游戏信息。我用的7778端口发送,可以接收到。
现在我也困在如何跟远程主机相连的地方了,仔细看了lancraft的端口,他开了一个6112的TCP端口,打开魔兽后魔兽自己会开一个6110的TCP 正好跟UDP的两个端口相反,有点晕~~再看看一起学习
xxgamexx 2008-05-14
  • 打赏
  • 举报
回复
你的帖子看了,发送UDP数据我已经知道了,而且也做了试验。(有人说可以发送一个更底层的IP包,构造虚假的端口)

但是我是从本地6110(任意)一个端口发送WAR3搜索包(也就是你写的那个结构体)到目的的6112,但是这只是建立了6110与6112之间的通讯,但WAR3占用的是本地6112端口,WAR3是根本不理睬6110的呀~

这是我最头痛的地方。


象LC和BL就。。。。。。。

xxgamexx 2008-05-14
  • 打赏
  • 举报
回复
BL它不开任何自己的端口,貌似是完全HOOK。真想学习,学习~


LC后来发现是用自己得进程端口与主机的6112端口进行通讯哦 !!


还是先补补功课再来~
xxgamexx 2008-05-14
  • 打赏
  • 举报
回复
啊? 我的错,在这辩解一下(下BL得时候没见到说明文档哦)。

完全同意楼上得。

lancraft是用Dephi写的^_^,BL是用VC6写的 宝贵的资料。
非常感谢。



不过不管是那边开,BL的实现应该还是类似得吧,但不清楚具体实现是什么,SPI或者HOOK API拦截并修改数据包?我还是网络盲,还得去多多补补功课!
FireBirdCN 2008-05-14
  • 打赏
  • 举报
回复
难得呀,看到这么多人在研究war3联机软件,幸会幸会~~^_^
LZ说的那个款软件叫做GameSeacher 是FlyingSnow写的 建议LZ去GA的论坛找找FlyingSnow的文章
xxgamexx 你用BL的方式是错误滴~ 仔细读一下BL的说明文件就知道了,
BL是建主机(A)的人开,然后把要加入的机器(B)的IP添进去,要加入的人直接开war3就能看到主机A了。
当然你那样加入的人开BL 也可以,不过会经常出问题。另外BL加的IP比较多的话,会导致机器非常卡,我的机器曾经被卡死过
- -
lancraft还是蛮稳定的,推荐大家用。另外知道lancraft是用Dephi写的^_^,BL是用VC6写的。

还有war3在开始游戏之后,联机软件就没有用了,是靠war3自身的TCP连接的,所以一般我们玩的时候,游戏开始就切出去把联机软件关掉(尤其是BL 最容易卡)。
三款软件 我自己认为 原理是不同的。
GameSeacher 就相当于一个 代理服务器
BL就是主动把war3的信息发给指定的IP
LC是发送搜索包到指定IP
其实想想 LC跟 GS原理差不多
另外 浩方 VS 这些对战平台用的是虚拟局域网,跟这些又不一样了
xxgamexx 不知道如何构造UDP包 可以去 我的帖子看下 我也是刚刚问到的 嘿嘿
http://topic.csdn.net/u/20080509/11/2aac9c73-d634-4c0b-bbf8-d2d5ca9c610b.html
lake_cx 2008-05-13
  • 打赏
  • 举报
回复
不是有VLAN么?有个软件叫SoftEther,可以安装一个虚拟网卡,然后将该虚拟网卡的数据包全部映射到另外一个网络连接,使用TCP/IP来传输该数据包,以模拟局域网环境
xxgamexx 2008-05-13
  • 打赏
  • 举报
回复
172.18.84.15是WAR3主机

2台机器都启动WAR3 监听6112端口

联网工具从6110发送UDP到6112请求包,如果收到主机返回的信息,则用12336与6112端口进行了TCP连接。 这里面它具体是如何与WAR3进程进行通讯的呢?
xxgamexx 2008-05-13
  • 打赏
  • 举报
回复


请问这样的连接具体是怎么实现的?




caitian6 2008-05-13
  • 打赏
  • 举报
回复
学习
xxgamexx 2008-05-12
  • 打赏
  • 举报
回复
刚时间紧了点


我的帖子 http://topic.csdn.net/u/20080511/01/4d7ee694-eb35-44b7-930b-b360bf645af0.html

我们也在研究这个东西,如果LZ有兴趣 联系我~
xxgamexx 2008-05-12
  • 打赏
  • 举报
回复
和我一样的问题


首先来介绍这款工具BattleLan(跨网关联机工具,利用的是TCP/IP连接),它能连接一个校园网内不在同一LAN的工具,我们用来连机打WAR3游戏的。

比如 A:172.18.78.61 MASK:255.255.255.0 Agateway:172.18.78.1
B: 172.18.84.34 MASK:255.255.255.0 Bgateway:172.18.84.1

B(WAR3主机),A -》启动BATTLELAN-》填写IP:172.18.84.34-》启动WAR3-》进入主机



上面是UDP包,BL搜索主机的UDP包



上面是TCP包 6112是WAR3的进程端口。
可以看到 172.18.84.24的TCP连接。

推测可能是通过转发广播报文的方式进行连接的。

1,如果是 编程如何实现(关键是转发技术,我们几个同学想写个类似的)。还望大虾们不吝发点资料给小弟。 小弟邮箱:19792488@qq.com

2,如果不是通过转发报文,那大虾们能给小弟讲讲到底是什么原理吗?我想大虾们不会见死不救吧?不要让偶误入迷途呀~~~

在这不胜感激了!



补充:
1:只要发送端开启BL(BattleLAN),能够进行飞鸽传输和各类游戏联网

2:通过反复抓包发现BL并不即时发送广播,按照SL的说法是利用WINHOOK监视WSOCK32.DLL,估计使用到SEND方法时BL再发送UDP到指定的目的IP。网关通过某种转发机制把这个包传达到目的地址,目的地址做出反映,使主机被认为是本地子网的机器。

现在关键想弄明白的是 如何构造这个UDP包,目的主机返回的内容是什么,源主机如何处理并把目的主机(另一子网的一台机器,如上面的172.18.84.34)当作本地子网机器


http://topic.csdn.net/u/20080511/01/4d7ee694-eb35-44b7-930b-b360bf645af0.html
Eleven 2008-05-12
  • 打赏
  • 举报
回复
up
xxgamexx 2008-05-12
  • 打赏
  • 举报
回复
下面是我今天实验的结果

用lancraft工具 从6110发送目标IP 6112(WAR3进程端口)的抓包情况
能正常看到主机发送的包和返回的包

UDP发送的包
[2008-5-12 17:54:08:046]
00000000 F7 2F 10 00 50 58 33 57 14 00 00 00 04 00 00 00 ./..PX3W ........
00000010 F7 2F 10 00 50 58 33 57 14 00 00 00 05 00 00 00 ./..PX3W ........
00000020 F7 2F 10 00 50 58 33 57 14 00 00 00 06 00 00 00 ./..PX3W ........
00000030 F7 2F 10 00 50 58 33 57 14 00 00 00 07 00 00 00 ./..PX3W ........
00000040 F7 2F 10 00 50 58 33 57 14 00 00 00 08 00 00 00 ./..PX3W ........
00000050 F7 2F 10 00 50 58 33 57 14 00 00 00 09 00 00 00 ./..PX3W ........
00000060 F7 2F 10 00 50 58 33 57 14 00 00 00 00 00 00 00 ./..PX3W ........

UDP返回的包
[2008-5-12 17:54:11:046]
00000000 F7 30 7C 00 50 58 33 57 14 00 00 00 01 00 00 00 .0|.PX3W ........
00000010 C2 75 5E 00 E5 BD 93 E5 9C B0 E5 B1 80 E5 9F 9F .u^..... ........
00000020 E7 BD 91 E5 86 85 E7 9A 84 E6 B8 B8 E6 88 8F 20 ........ .......
00000030 28 73 61 00 00 01 03 49 07 01 01 69 01 E9 69 01 (sa....I ...i..i.
00000040 9D 65 63 A7 4D 8B 61 71 73 5D 29 35 29 45 55 75 .ec.M.aq s])5)EUu
00000050 73 75 6D 65 53 6F 6F 63 6B 2F 77 33 79 3D 01 73 sumeSooc k/w3y=.s
00000060 61 61 61 01 01 00 04 00 00 00 09 00 00 00 01 00 aaa..... ........
00000070 00 00 04 00 00 00 6B 08 00 00 E0 17 ......k. ....
......`. ....


我发送同样的包给目的主机 主机同样能返回主机一些信息 跟上面正常显示的信息一样,但是问题是 在WAR3游戏里面就是看不到主机。。。(估计还得返回给6112端口),那如何使6110发出的返回包给WAR3进程的6112端口呢?
加载更多回复(5)
这是一个纯java写的魔兽对战平台.不抓包.原理非常简单. 可以聊天,可以发布自己的魔兽主机.有人建立主机或者人满了也会有声音提示. 主机是自动发布的,不需要客服端搜索。 也不需要连、接转。整个过程就是一个局域网!!!让联机的效率最高! 学习网络编程.非常好! java 魔兽搜索器 魔兽对战平台 源码 warpuber 纯java写的魔兽联机源码!绝对的好东西! 里面有许多注释.应该能看懂. 关于原理.博客上有详细介绍.http://blog.csdn.net/xinrui5577/archive/2009/09/16/4560590.aspx 需要更新请到http://code.google.com/p/warpuber/ 这是这个软件的开源项目.热烈欢迎你一起加入这个开源项目中! 使用说明: 登陆随便写.那个 区,楼.是我们学校的,南区 北区.随便写就可以了 个人需要自己建立主机则需要在主机上运行server. 然后在客户端代码上修改主机IP.这个变量在DataContainer.java 里面. 可以修改魔兽的显示. 这个很简单.自己打开就会了. 可以发布魔兽主机. 这个需要在xml文件夹下打开ip.xml 然后添加IP段. 格式是 10.10.136.* 之后点击发布就可以了 ----------------------------------------------------------------- 作者证实:确实有病毒!!请勿下载。。。。。 我已经上传一份干净的版本了。万分抱歉!! -----------------------------------------------------------------

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧