根据 Reversing the League of Legends Client 一文中提到的方法,我们可以通过 API Monitor
拦截 cef_parse_url
得到部分的 url 调用。这里为了方便,介绍另一种方法。
工具:Fiddler
+ Proxifier
+ TCPView
准备工作:
在 Proxifier
中设置一个针对 LeagueClientUx
进程的访问转向,转至 Fiddler
的本地代理服务地址。
- 在
Fiddler
的Tool -> Options -> Connections
中可以看到 默认是 8888 端口。 - 在
Proxifier
中添加Proxy Servers
及rules
注意此时不要勾选转向,由于 Fiddler
并不能完整的处理中间的转发
准备工作完成后,正式开始
- 先启动游戏,登陆并进入大厅
- 打开
TCPView
, 观察LeagueClient
进程的listening
端口号 - 在
Proxifier
中 勾选转发规则, - 在
TCPView
中断开LeagueClientUx
进程中 目标端口 为上述观察的 端口号(地址为本机) 的连接
事实上,这里需要关闭的连接的端口号只有一个,而目标进程可能会 listening
多个,都关掉也无妨
由于 LeagueClientUx
内部会重试连接。 之后就能在 Fiddler
中观察到大部分的协议。
这里需要一提的是
在默认模式下, LeagueClient
与 LeagueClientUx
交互采用的 spdy_http_stream
方式
在经过上述捣腾后, 变为了 HttpBasicStream
这个细节在后续逆向中可能会有帮助。
结果