开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 7838|回复: 26
收起左侧

[图文资料] (一) AG通过WSS协yi实现自动化分析:Chrome开发工具使用

[复制链接]
发表于 2020-8-18 07:34:32 | 显示全部楼层 |阅读模式   湖北省荆州市
最近开发了一款AG自动软件,抛开界面绘制,登录等常规业务,核心就是基于websocket协议,按照规定的数据格式,向AG的服务器发送操作指令,获取返回数据,按照AG解密函数对返回数据进行解密,最后对解密后的明文数据进行后续的业务操作。

本文将会详细介绍加密解密过程。全文所有操作基于windows操作系统,浏览器为谷歌Chrome,开发语言为JavaScript,代码开发工具为vscode。主要分为以下几个步骤:
  • Chrome开发工具使用
  • 协议源码分析
  • 协议加密、解密分析
  • 对关键函数,以及获取关键参数的API进行抽取


1.1 Chrome工具面板说明
我们的核心诉求,是基于编码,向服务器下达操作指令,对平常只能通过人工点击操作的行为进行流程分解,来达到自动化操作的目的。所有客户端与服务端的数据交互,必然会经过网络协议,向服务器发送数据,并解析服务器的返回数据,经过对返回数据的解析,再根据编码的逻辑判断,看是否需要执行下一个操作请求。有网页的客户端,直接就可以通过谷歌浏览器开发者工具network模块进行抓包解析,手机浏览器也一样可以通过Chrome远程协议,在电脑端抓包解析,app则通过抓包工具,例如fiddler,wireshark等,对手机网络请求进行拦截分析。本文主要讲解电脑端网页客户端与服务器交互,其他工具不进行赘述。

登陆游戏,打开Chrome调试工具,windows电脑快捷键F12,得到如下界面



1.png

对其中红框内常用到的几个模块简单说明一下,第一排的每个模块都可以用鼠标左键按住不动进行左右拖动,自定义显示顺序。
Network:当前页面所有网络相关的模块都显示在这里。

All:显示network模块的全部信息,网络请求,js资源,图片资源加载等等

XHR:显示所有htt请求,api调用相关的信息

WS:显示所有websocket相关的请求信息

Console:控制面板,通常在开发js,对开发过程中的数据内容进行调试输出
Source:当前网站的所有html,js,css等前端网站的资源信息,所有通过js加密解密的源码都在这个模块找
Elements:当前页面的html代码,主要是html布局,js逻辑处理,css样式三大块。

分析阶段主要使用Network模块。如果你不是在打开游戏的第一时间打开谷歌浏览器的开发者调试工具,会导致network模块内的请求信息没有抓全,如果需要全新的请求信息,开发者工具界面按快捷键Ctrl+R,强制刷新当前网页,重新获取所有请求。

1.2 操作命令定位
开发工具准备完毕,接下来需要判断常规的手动下单指令,是通过具体的哪一个js函数发出的。常规的增删改查都可以在network下的XHR查看,先定位到XHR页面,点击clear按钮,对当前页面的请求进行清空。单后切换到游戏网页,进行下单,得到如下页面
2.png
可以看到,都是flv,mp3等游戏影音资源的请求和加载,并没有相关操作请求的指令。可见关键函数不在这里。只能进入WS模块重新进行分析,websocket基本概念与操作自行百度。

打开WS模块,Ctrl+R,游戏加载完毕后,得到如下页面,相关信息已经在图片标注,需要说明的是,只有一个5000端口的链接,一直在与服务器进行交互,其他几个全部是5035端口,交互消息内容很少。
3.png

切换游戏界面,进入房间,发送下单指令,切回WS,发现多出了3个wss连接,消息内容同样是经过加密,切换游戏,不断进入其他房间,观察wss连接,进入每个房间都会重新建立三个wss连接,其中5030,和5075不变,5241这个端口随着房间不同,会有相应的变化。
4.png

经过上述步骤得到如下结论:
1: 游戏下单指令通过wss协议向服务器发送
2: 每个房间对应固定端口号

1.3 函数调用栈分析

回到WS模块最初界面,先从端口为5000的wss连接调用栈开始分析,函数调用栈结构如下:
5.png

在右下调用栈面板最底部,点击show more *** frames,显示左右,调用栈就是当前选择的wss连接具体执行了哪一些js方法,方法执行的时间顺序为从最下到最上依次执行。其中@符号后面的代表函数执行来源,VMxxx标识执行这个方法的js文件是在网页加载之后向服务器动态请求得到的js文件,有具体名字的则可以在开发者工具的source目录下找到源代码。

点开每一个VM***开头的动态文件,对比代码内容,就能够在network all模块下找到对应的执行js函数的js文件名。
6.png

从js文件命名可以看到带有版本号,游戏开发人员会定期更新关键代码的版本号进行迭代升级

将wss函数调用栈涉及到的所有js文件复制response里面的内容,进行格式化之后保存到本地,再根据调用栈涉及到的具体方法逐一分析。

根据调用栈内的函数方法名,从下往上,先从看到名字就能猜出方法内容的函数开始分析起,

7

7


到这里,关于分析ag wss协议,具体应该怎么开始着手,涉及到了Chrome浏览器的哪一些模块,基本都描述完毕。接下来就是源码分析,以及分析过程中如何使用Chrome debug 动态加载的js方法。









































评分

参与人数 7好评 +7 精币 +30 收起 理由
afd + 1 + 5 很赞同,谢谢!
执此一念 + 1 + 2 新技能已get√
零点丶 + 1 + 2 感谢分享,很给力!~
福仔 + 1 + 4 新技能已get√
解千语 + 1 + 2 感谢分享,很给力!~
1051496412 + 1 + 5 奉上小小红包希望笑纳
冰点 + 1 + 10 奉上小小红包希望笑纳

查看全部评分


结帖率:100% (1/1)
发表于 2024-4-15 10:29:11 | 显示全部楼层   江西省萍乡市
有成品协议,有需要的可以联系QQ283672737
回复 支持 反对

使用道具 举报

签到天数: 21 天

发表于 2023-10-31 13:47:49 | 显示全部楼层   云南省昭通市
写此类协议,专业的
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2023-8-6 15:11:32 | 显示全部楼层   辽宁省沈阳市
下一篇在哪里 看不到了
回复 支持 反对

使用道具 举报

发表于 2023-3-17 23:51:53 | 显示全部楼层   江西省赣州市
看不懂,加个收藏吧~
回复 支持 反对

使用道具 举报

发表于 2023-3-1 10:18:07 | 显示全部楼层   河南省周口市
这个AG协yi我看的也是一知半解,有没有会的 可以付费学习一下
回复 支持 反对

使用道具 举报

发表于 2023-2-7 15:14:07 | 显示全部楼层   河南省信阳市
协yi已更新,但是还是很有参考价值,已搞定新AG协yi,非常感谢楼主
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2023-1-21 12:56:06 | 显示全部楼层   河南省信阳市
提示: 该帖被管理员或版主屏蔽
回复 支持 反对

使用道具 举报

发表于 2022-12-17 11:52:37 | 显示全部楼层   四川省南充市
有没有做好的模块呀
回复 支持 反对

使用道具 举报

发表于 2022-9-11 16:39:02 | 显示全部楼层   浙江省金华市
很牛逼先学习学习
回复 支持 反对

使用道具 举报

发表于 2021-12-1 15:06:01 | 显示全部楼层   广东省东莞市
感谢你的分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表