转载

冲顶大会逆向分析

1月3日,王思聪的一则微博,带来超过20万的下载量,并且这个数据还在极度攀升之中,短时间内吸引了众多人的参与,资本的围观。“冲顶大会”在微博单日阅读量100万+,鲸准热度、百度指数、知乎热度直线上升。亮眼的数据成绩,在票圈也掀起了一波狂潮。这俩天西瓜视频 冲顶大会都在答题撒钱圈用户,那么我们今天带着学习的态度分析下冲顶大会这款暴热的APP吧。

冲顶大会逆向分析

首先考虑到时直播答题那APP源码里应该可以搜到socket,搜索后果然有重要发现LiveTriviaBarrageSocket,WXOGCDAsyncSocket,JPUSHTcpSocket,AsyncSocket,几乎可以肯定LiveTriviaBarrageSocket 这个应该是冲顶大会开发者答题收发消息的业务实现类,AsyncSocket是socket三方库,WXOGCDAsyncSocket是微信支付三方库,JPUSHTcpSocket是推送三方库,我们看到BarrageSocket有receiveMessage,didConnect,didDisConnect读名字都知道干什么事了。

既然是答题类业务那么搜Question这个词试下呢,这个搜出的业务类就更多了LiveQuestionOptionButto选择答案的按钮,

LiveQuestionResultLostViewController答题失败,

LiveQuestionResultWinViewController答题成功,

ShareQuestionView 题目显示View?业务类太多了就不一一看了。

接下来我们验证下上边的猜想通过hook关键方法,首先试下hook题目内容BarrageSocket.receiveMessage,,麻蛋冲顶大会的开发者做了混淆,整个直播答题都完了,也没hook住,坑死了有木有,好吧既然直播结束了,那就hook首页吧

CHOptimizedMethod(0, self, voidHomeViewController, viewDidLoad) 如我预料还是没hook住,看了下反编译代码,卧槽终于hook住了,要用混淆后的类名

_TtC10LiveTrivia18HomeViewController感觉自己好机智,那么直播的socket用混淆后的类名应该也可以hook住了明天有直播的时候在验证下。

冲顶大会逆向分析

另外直播页面PlayerViewController,LiveQAContentView题目view,猜想在socket内拦截题目内容或直接hookLiveQAContentView的text拿到题目内容,然后调用查询接口或开发答题插件自动百度弹出与题目相关的答案,就可以提高正确率登顶拿大奖,做这些并不复杂(发财项目啊哈哈哈),感觉登顶开发者安全方面做得不够,需要加强。

冲顶大会逆向分析

正文到此结束
Loading...