三国杀如何自动签到?

2016-02-28 13:55:01 +08:00
 sunyue

之前我有看过斗鱼 TV 的弹幕抓取如何获取斗鱼直播间的弹幕信息? - Python 。抓包过程实际上是斗鱼自己自定义弹幕格式,并没有使用 Web 协议。最近我在研究三国杀的签到,聚宝盆,工会击鼓等功能的数据包,有一些成果但是总体来说还是失败的。
先说一下我发现的几点:
1 :三国杀 online 登录以后会访问 http://web.sanguosha.com/220_9/gate/sgs_area_list.xml?nocache=1455900903nocache=1455900903 来获取对应区的 ip 地址(比如我是 9 区的,那么它会在区的 IP 地址列表里随机选择一个进行连接)。和斗鱼的弹幕服务器类似。
2 :我查看过,每日签到和聚宝盆会发送 web 请求,但是这个 web 请求只是用来日志记录,并不是真正的执行数据包。我猜真正的数据包应该是在 1 中连接的那个端口上发生数据的。我用 wireshark 抓包过了,然后在 data 中的数据全部是不可见字符,不像斗鱼 TV 那样是明文(可以看见 ASCII 码内容)
3 :我还尝试过反编译三国杀 online 的安卓端程序,然后我反编译后 发现,关键代码全部都是混淆过了的,很难找出每日自动签到和聚宝盆的实际执行代码。
4 :工会签到是发送了 web 请求的,但是里面有一个 sign 字段,看样子是加密了的,不知道如何破解。

现在想请高人能够解决这个问题,我想实现三国杀的自动签到,模拟发送数据包(无恶意,只是想用代码代替手工)。其实我对三国杀实现的技术原理更为感兴趣,希望知乎上能够有大牛能够详细的讲一下三国杀 online 的签到,聚宝盆的公会击鼓的整个流程。我百度,谷歌上都搜过了,关于这房方面的资料实在是太少了,而我个人能力又太弱,希望有大牛能够帮助。

知乎上转过来的,知乎上挂了几天没人回复,不知道这里有没有大牛能够给点建议。主要是思路,我现在不知道接下来该怎么办了。

3615 次点击
所在节点    分享创造
9 条回复
Jobin0528
2016-02-28 14:33:09 +08:00
mark 下
Kilerd
2016-02-28 15:46:14 +08:00
你的意思就叫别人帮你搞定咯?
sunyue
2016-02-28 15:55:00 +08:00
@Kilerd 然而并不是,不知道你是否有认真看过我发的主题,感觉你这语气不怎么友好。
1 :我并非是喊别人帮我搞定,我是希望能有人提出方法和思路,接下来如何做。
2 :我并非伸手党。我在百度和谷歌上都搜了,关于三国杀自动签到这方面的资料太少了。我尝试过网页抓包,并且已经在主题中说明了自己的发现。主要结论就是三国杀签到和聚宝盆的真正的执行数据包不是 http 协议的,应该是自定义协议的通信。我用 wireshark 抓包过了,但是数据应该是加密了的,不知道如何破解。此外我也尝试过反编译安卓版的三国杀,但是代码被混淆过了,全是 a , b , c 这个的类名和方法名。
sunyue
2016-02-29 13:25:13 +08:00
....收藏的挺多,为什么回答的人这么少
iniwap
2016-03-01 10:53:33 +08:00
md5 过的
sunyue
2016-03-01 14:00:32 +08:00
@iniwap 我也知道是 MD5 的,可知道是 MD5 也没用啊,需要解密。我把取得的 sign 在网上搜索的 MD5 解密网站试过了,都是没有查找到。
milklee
2016-03-02 11:49:48 +08:00
我也折腾过这个问题,当时我在 Chorme 开发者工具的 Network 想看看签到时发送的 HTTP 请求,结果就如楼主所说,发送的请求仅仅是日志。

我猜测 flash 内部应该与服务器建立了一个类似于 websockets 的连接,签到时的请求就是通过 sockets 发送的,所以 Network 里抓不到
sunyue
2016-03-02 12:51:54 +08:00
@milklee 是的,我主题里已经说了,我 wireshark 抓包也已经抓到了。
> http://web.sanguosha.com/220_9/gate/sgs_area_list.xml?nocache=1455900903nocache=1455900903 来获取对应区的 ip 地址(比如我是 9 区的,那么它会在区的 IP 地址列表里随机选择一个进行连接)。和斗鱼的弹幕服务器类似
三国杀会在这个 IP 地址选一个进行连接。
其实现在我已经抓包抓到了数据,然而所有数据全部是加密的,看到的只是十六进制数,无论 ASCII 编码是 UTF-8 编码都是无意义的字符。现在的问题是怎样破解加密数据的问题。
phttc
2016-03-02 13:14:55 +08:00
首先,游戏的 apk 一般都是 native 的。。。反编译没什么用
其次,棋牌类的游戏一般是用 TCP 长连接的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/259637

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX