上次说到学习黑客技术,学着学着跑偏了,改成游戏外挂开发了。今天来讲讲具体代码。
网游有服务端和客户端,用到网的其实就是数据传输,我们可以通过抓包来找到这些数据,了解它运作的部分逻辑。我玩的是手机网游,通过抓包我获得了它的url地址和端口,原来它就和我们上网访问网页一样,一切操作都是靠访问不同url子路径,得到返回数据实现的。
我用Burp Suite作为代理,手机通过该代理上网,这样就可以抓到包了,如图:
当我在手机上点开游戏时,可以看到post请求,有头部信息,还有一串json,里面一般包括服务器名、账号、唯一ID和另几个参数。可以注意到加密格式为gzip,我记得一开始是乱码的,需要解密,但没想到很简单,其实也就是解压出来,另外cookie也被编码成base64的了,我还写代码来解码,发现它其实就传递了一个ID和一个时间戳,开始时我照着它的格式自动生成字符串,并编码成base64格式,当做cookie发送请求,后来发现它是由服务端给出的,不需要解码,直接用就行。
弄清所需的几个请求后,开始写代码。还加入了图形界面,方便使用。
字有点小,不过重要的说明都在上面了,可以点开图放大看。现在还有一些没实现的部分,一是目前结果还显示在命令行里,没有投到图形界面上;二是多线程问题,并且需要个停止线程的按钮和退出时关闭进程的功能;三是把它打包成可执行程序,现在还只是个脚本,每次都得运行shell;四是完善游戏功能,有些操作还得登手机,并且各事物的数据也没有反馈,这是个大工程,因为抓包的数据只有ID对应的数量,但我不知道它对应游戏里的那个物品,得一个一个靠数量对。
也许一犯懒就不想再改进了。不管是钻研技术还是学习其他知识,只要一犯懒就没动力了,然而技术又正是人们犯懒才得以发展的,这个矛盾很辩证。