今年开春,Clash Royale《皇室战争》在国内上架,又是SuperCell公司的大作,想必会非常火。在去年年底我层玩过封测版本,掉线比较严重,但仍没影响到我对它的好奇,我很想知道它的网络同步是如何实现的,战斗那块是帧同步吗?全是客户端计算的吗?这些疑问一直困扰着我,这次在国内上线了,网络状况也好,调试起来会更会舒心,更方便。
为此,我在工作之余,开始对Clash Royale《皇室战争》进行了黑盒分析,洋洋洒洒写了80多页的PPT,用于团队内部分享。顺便也发在博客上,让博客看上去有点生机。
由于我逆向基础差,对clash royale的libg.so分析零零散散的将近两周,一直没能搞定sc文件内容的编码规则,没搞定通讯的消息包结构编码规则,直到团队内部分享日期逼近,才决定暂停分析,尽快收尾,先完成分享,以后再继续。
而我又不想就这样放弃,在分享前后的几天里,我内心一直纠结这事,放不下来,抽空就想去再调试调试,为此落下了工作,计划中的功能也没给其他兄弟们做个好开头,没专心把主体框架搭建好,直到另外一个兄弟简介的提醒,列出大纲框架,我才意识到已经耽误很大的进度了,羞愧难当,今天(周六)本没打算去公司加班的,又把周五背回来的电脑又背回去,乖乖的写点东西,才让我内心平静下来。现在想想,今日凌晨3点多的恶梦或许就是因为愧疚吧。现在这里做个了结,不在工作时间去分析这个问题,不能再耽误工作进度。
分享里,更多的是介绍思路,我本身因为逆向功底原因,未能实现协议的解密,是借助coc-proxy这个项目来完成的。同样,关于SC文件解码部分,也是参考COC的SC文件拼接规则进行的。感谢github社区的技术资料。
PDF如下,由于内容较多(127页),加载时间可能较长,请耐心等待…另外,本PDF会持续更新,增加内容以及修正错误,请来本站阅读最新版本。
希望自己可以在空闲时间里把遗漏的知识点补充的扎实点。
2016年5月17日,公开了公司内部版(公司内部应该修复完毕),127页,10M左右,包含公司内两款手游的解密过程,以及手机游戏客户端的资源、协议、加密密钥保护方案,常见反外挂方案等。希望可以帮助到同样做游戏的朋友。
下载地址: clash royale皇室战争静态资源解密过程与常见手游客户端保护方案
CFC4N的博客 由 CFC4N 创作,采用 署名—非商业性使用—相同方式共享 4.0 进行许可。基于https://www.cnxct.com上的作品创作。转载请注明转自:Clash Royale皇室战争的黑盒技术分析
受教了 感谢大神~
受教了 感谢大神~
"网络同步是如何实现的,战斗那块是帧同步吗?全是客户端计算的吗?" 80页ppt并没有提到这些内容
网络同步这块,应该是帧同步的,而且,录像回放上,帧同步数据包小,用帧同步也相当好做。但是不是全为客户端计算,这个我不确定。 另外,这PPT你说“80”多页,那你看到的应该是之前的老版,最近我更新了新版,为127页,可以看下最新版的。希望可以帮助到您。
受教了,感谢大神分享