java 广告sdk开发_supersonicads广告sdk逆向分析以及无源码debug java

0x00 背景

最近看到一个小游戏,但是它使用了supersonicads的sdk,广告极其多,非常烦,所以我就逆向了一下它,顺便分析了一下supersonicads的工作原理。

0x01 supersonic广告sdk分析

首先贴一下该sdk的用法:Rewarded Video Integration for Android。简单地总结一下,就是在需要显示广告的时候调用mMediationAgent.showRewardedVideo(placementName);,然后在回调函数onRewardedVideoAdRewarded实现自己想要给予用户的奖励。在我这次逆向的游戏中,如果你没有star无法进行游戏了,该游戏就会调用showRewardedVideo给你播放一部视频广告,然后播完广告后给你回复一颗star,你才能继续游戏。

很自然地,我想到先分析showRewardedVideo这个函数,于是我下载了supersonic的sdk,然后在

这个网站http://www.javadecompilers.com/result上反编译了一下。我分析了很久源码,发现showRewardedVideo这个函数最终会调用到com.supersonicads.sdk.controller.SupersonicWebView的showRewardedVideo,该函数定义如下:

3204f4c0095a55b3614c3577f1b6f258.png

其中injectJavascript会生成一段javascript,并用webview来load它。这段javascript会调用游戏加载时已经下载好的一段javascript中的showRewardedVideo函数。这段js函数由mobileController.html这个html加载,名字为http://supersonicads-a.akamaihd.net/mobileSDKController/versions/2.0.10/sdk_controller.min.gz.js。该js使用了一个叫做PubSubJS的库,使用该库注册一个showRewardedVideo接口,然后由刚刚的webview来调用这个接口。当webview播放完动画后,会调用t.callSDKFunction("adCredited",e,"adCreditedSuccess","adCreditedFailed")这段js来触发java的native方法adCredited。该函数是被导出成javascript的接口的:

71e2880fcfd0a72cff8b0b2b1436f1d0.png

接下来该函数调用mOnRewardedVideoListener.onRVAdCredited,这里com.supersonic.adapters.supersonicads.SupersonicAdsAdapter实现了OnRewardedVideoListener这个接口,并实现了onRVAdCredited方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值