热血江湖满线自动查询器制作
N久没玩网游,某天心血来潮想去了热血江湖,如是用以前的账号,尝试着无聊一下,结果发现热血江湖现在竟然异常火爆,服务器满线,尝试着登录的几个大号都满线,不只知道啥时候能登录,郁闷了一下,于是便有了下面的文章。
既然都满线,那不如试试弄个查线器,定时看看那个线路能进入。其实工具代码很好写,难得是思路。既然要做个查线器,查线肯定和网络有关,有了这想法,便拿起大学所学的WIRESHARK抓了下包,功夫不负有心人,分析了数据包,终于找到了思路和方法。具体操作,听我一一道来。-_-
WIRESHARK抓包还是很强大的,既然是数据包,肯定少不了IP和端口,那么IP和端口如何得到?方法有二,先说其一。首先打开热血江湖安装包,目录文件如下:
看到这些文件,先不管三七二十一,直接当文本打开,打开后发现,有两个文件对于咱们有用,一个是ServerInfo.txt,另一个是Session.cfg。下面分析一下这两个文件:
比较两文件前面10行,会发现一个是10个服务区,一个是10个域名,验证后不能发现域名对应的是IP,第二个文件的11到15猜测应该是端口,至于端口怎么对应,咱暂时可不用关心,后面可以通过数据包知道。SO,这里选择第8个(要发不离八,哈哈)电信四区做测试,即域名。有了域名,如何得到IP?这里用到一个命令nslookup,于是CMD,nslookup 得到结果如下:
发现Addresses既然有三个,咋办,哪一个才是我们需要的?不急,WIRESHARK会告诉咱们,咱们可以在数据包中,一个个是试验。到此准备工作已经完成,下面就是干货了。
打卡WIRESHAR,选择自己的真是网卡:
打开游戏,选择电四:
输入账号密码,登录游戏到选区界面,然后停止抓包:
下面开始分析数据包,前面得到的3个IP,咱们一个个试验,发现第一个218.30.83.35是咱们需要的(这个IP抓包可能每次会变化,但是没关系,都在这三个IP中),试验和筛选在WIRESHARK过滤框中输入如下操作:
一端是咱电脑自己的IP,一端是热血江湖服务端的IP。得到对应的数据后,就是一个个的分析。分析过程中,对于有SYN和 SYN,ACK 或只有ACK的数据可以不用看,这是TCP三次无握手的数据包。我们主要查看Info一列中的LEN 不为0的数据包。经过分析吗,你可以在包中找到自己的账号(账号未加密)和加密的密码。最终,发现可疑数据包如下:
这是服务器返回给咱的数据包,在数据包内容中发现有VIP,-1,-2等字样,同时VIP,-1,-2前都有相同的D7CFD4C2,经过字符集比对不难发现正好的是电信四区紫月的GBK编码,于是分析比对后不难发现这是咱们需要的服务器线路的状态数据(谢天谢地,竟然没加密),对半前面的服务器状态显示图分析数据知道,-1,-2等后的一个字节表示服务器的占有状态(百分比),可以看到(VIP)紫月-1 0x17(23),除了紫月-9,其他都是0xfa, 于是不难结合前面的图,FA表示服务器满员状态,紫月-9为0x63(99).
到此,服务器的状态数据咱们都得到了,但是不可能每次都是尝试登陆抓包得状态啊!咱们得写个网络连接,自动得到这些信息啊。分析这个包的前一个包(咱自己的机器发给热血江湖服务器的数据),发现给服务器发送了一个长度为4字节的16 80 00 00,同时端口为13101(在上面的配置文件第12行中)。
如上图,熟悉网络连接的人都知道,这应该是获取服务器状态的指令(咱们得先请求数据,发送指令,服务器才返回咱们需要的信息,而且从这个数据看,并未与账户密码关联,省掉咱们很多麻烦)。有了这些,咱便可以编写一个网络通信程序,解析得到咱们想要的数据。
编程部分就暂且不讲解了(体力活),直接将DEMO提供给大家。DEMO中的测试程序如下(可自己添加一个定时器,定时的刷新显示状态):
本文中所有软件或源码下载地址在下方链接中,欢迎下载并交流沟通
https://www.dslt.tech/article-319-1.html
版权声明:本文由 猪行天下 原创,欢迎分享本文,转载请保留出处