|
|
本帖最后由 qwerll 于 2026-3-12 21:46 编辑
回复可见,目前稀饭有so层签名校验,只能hook。
vip的东西我没找到,有懂的大佬可以分享下,怀疑到so了。
适配最新5.2.1版本的。
Banner广告那段好像不管用,试试吧。
一、字节跳动广告SDK
1.1 SDK初始化拦截
类名:com.bytedance.sdk.openadsdk.TTAdSdk
方法名:init
参数类型:Context, TTAdConfig
返回值类型:boolean
拦截方式:拦截执行
说明:阻止SDK初始化
1.2 模拟付费用户
类名:com.bytedance.sdk.openadsdk.TTAdSdk
方法名:updatePaid
参数类型:boolean
返回值类型:void
拦截方式:修改参数
说明:将参数设置为true
二、腾讯广告SDK
2.1 SDK初始化拦截
类名:com.qq.e.comm.managers.GDTAdSdk
方法名:init
参数类型:Context, String
返回值类型:void
拦截方式:拦截执行
说明:阻止SDK初始化
类名:com.qq.e.comm.managers.GDTAdSdk
方法名:start
参数类型:OnStartListener
返回值类型:void
拦截方式:拦截执行
说明:阻止SDK启动
2.2 广告加载拦截
类名:com.qq.e.ads.AbstractAD
方法名:a
参数类型:Context, String
返回值类型:void
拦截方式:拦截执行
说明:阻止广告初始化
三、应用封装的广告SDK
3.1 Banner广告
3.1.1 Banner广告加载
类名:com.hzsv.openads.SVAdsSdkBanner
方法名:loadAd
参数类型:SVBannerAdRequest
返回值类型:void
拦截方式:拦截执行
说明:阻止Banner广告加载
3.1.2 Banner广告显示
类名:com.hzsv.openads.SVAdsSdkBanner
方法名:showAd
参数类型:ViewGroup
返回值类型:void
拦截方式:拦截执行
说明:阻止Banner广告显示
类名:com.hzsv.openads.SVAdsSdkBanner
方法名:showAd
参数类型:ViewGroup, LayoutParams
返回值类型:void
拦截方式:拦截执行
说明:阻止Banner广告显示
3.2 插屏广告
3.2.1 插屏广告加载
类名:com.hzsv.openads.SVAdsSdkInterstitial
方法名:loadAd
参数类型:无
返回值类型:void
拦截方式:拦截执行
说明:阻止插屏广告加载
3.2.2 插屏广告显示
类名:com.hzsv.openads.SVAdsSdkInterstitial
方法名:show
参数类型:HashMap
返回值类型:void
拦截方式:拦截执行
说明:阻止插屏广告显示
类名:com.hzsv.openads.SVAdsSdkInterstitial
方法名:show
参数类型:Activity, HashMap
返回值类型:void
拦截方式:拦截执行
说明:阻止插屏广告显示
3.3 激励视频广告
3.3.1 激励视频广告加载
类名:com.hzsv.openads.SVAdsSdkReward
方法名:loadAd
参数类型:无
返回值类型:void
拦截方式:拦截执行
说明:阻止激励视频广告加载
3.3.2 激励视频广告显示
类名:com.hzsv.openads.SVAdsSdkReward
方法名:show
参数类型:无
返回值类型:void
拦截方式:拦截执行
说明:阻止激励视频广告显示
3.4 广告显示检查(核心Hook点)
3.4.1 广告显示检查方法
类名:com.hzsv.libs.a.AbstractC1707a
方法名:q
参数类型:Activity, int, int
返回值类型:boolean
拦截方式:修改返回值
说明:返回true跳过广告显示
这是最核心的Hook点,应用在显示插屏和激励视频广告时会调用此方法检查是否应该显示广告,直接返回true可以跳过广告显示。
四、WindMill广告SDK
4.1 SDK初始化
类名:com.windmill.sdk.WindMillAd
方法名:startWithAppId
参数类型:Context, String
返回值类型:void
拦截方式:拦截执行
说明:阻止SDK初始化
4.2 Banner广告
类名:com.windmill.sdk.banner.WMBannerView
方法名:loadAd
参数类型:WMBannerAdRequest
返回值类型:void
拦截方式:拦截执行
说明:阻止Banner广告加载
4.3 插屏广告
类名:com.windmill.sdk.interstitial.WMInterstitialAd
方法名:loadAd
参数类型:无
返回值类型:void
拦截方式:拦截执行
说明:阻止插屏广告加载
类名:com.windmill.sdk.interstitial.WMInterstitialAd
方法名:show
参数类型:Activity, HashMap
返回值类型:void
拦截方式:拦截执行
说明:阻止插屏广告显示
4.4 激励视频广告
类名:com.windmill.sdk.reward.WMRewardAd
方法名:loadAd
参数类型:无
返回值类型:void
拦截方式:拦截执行
说明:阻止激励视频广告加载
类名:com.windmill.sdk.reward.WMRewardAd
方法名:show
参数类型:无
返回值类型:void
拦截方式:拦截执行
说明:阻止激励视频广告显示
五、推荐Hook策略
5.1 策略优先级
优先级1(最有效):
- com.hzsv.libs.a.AbstractC1707a.q() - 广告显示检查方法
优先级2(源头拦截):
- com.bytedance.sdk.openadsdk.TTAdSdk.init() - 字节跳动SDK初始化
- com.windmill.sdk.WindMillAd.startWithAppId() - WindMill SDK初始化
- com.qq.e.comm.managers.GDTAdSdk.init() - 腾讯SDK初始化
优先级3(模拟付费):
- com.bytedance.sdk.openadsdk.TTAdSdk.updatePaid() - 设置为已付费用户
优先级4(广告加载拦截):
- com.hzsv.openads.SVAdsSdkBanner.loadAd() - Banner广告加载
- com.hzsv.openads.SVAdsSdkInterstitial.loadAd() - 插屏广告加载
- com.hzsv.openads.SVAdsSdkReward.loadAd() - 激励视频广告加载
六、Hook点汇总表
序号 类名 方法名 参数类型 返回值类型 拦截方式 负责的SDK 优先级
1 com.bytedance.sdk.openadsdk.TTAdSdk init Context, TTAdConfig boolean 拦截执行 字节跳动广告SDK 2
2 com.bytedance.sdk.openadsdk.TTAdSdk updatePaid boolean void 修改参数 字节跳动广告SDK 3
3 com.qq.e.comm.managers.GDTAdSdk init Context, String void 拦截执行 腾讯广告SDK 2
4 com.qq.e.comm.managers.GDTAdSdk start OnStartListener void 拦截执行 腾讯广告SDK 2
5 com.qq.e.ads.AbstractAD a Context, String void 拦截执行 腾讯广告SDK 4
6 com.hzsv.openads.SVAdsSdkBanner loadAd SVBannerAdRequest void 拦截执行 Banner广告 4
7 com.hzsv.openads.SVAdsSdkBanner showAd ViewGroup void 拦截执行 Banner广告 4
8 com.hzsv.openads.SVAdsSdkBanner showAd ViewGroup, LayoutParams void 拦截执行 Banner广告 4
9 com.hzsv.openads.SVAdsSdkInterstitial loadAd 无 void 拦截执行 插屏广告 4
10 com.hzsv.openads.SVAdsSdkInterstitial show HashMap void 拦截执行 插屏广告 4
11 com.hzsv.openads.SVAdsSdkInterstitial show Activity, HashMap void 拦截执行 插屏广告 4
12 com.hzsv.openads.SVAdsSdkReward loadAd 无 void 拦截执行 激励视频广告 4
13 com.hzsv.openads.SVAdsSdkReward show 无 void 拦截执行 激励视频广告 4
14 com.hzsv.libs.a.AbstractC1707a q Activity, int, int boolean 修改返回值 所有广告类型 1
15 com.windmill.sdk.WindMillAd startWithAppId Context, String void 拦截执行 WindMill广告SDK 2
16 com.windmill.sdk.banner.WMBannerView loadAd WMBannerAdRequest void 拦截执行 Banner广告 4
17 com.windmill.sdk.interstitial.WMInterstitialAd loadAd 无 void 拦截执行 插屏广告 4
18 com.windmill.sdk.interstitial.WMInterstitialAd show Activity, HashMap void 拦截执行 插屏广告 4
19 com.windmill.sdk.reward.WMRewardAd loadAd 无 void 拦截执行 激励视频广告 4
20 com.windmill.sdk.reward.WMRewardAd show 无 void 拦截执行 激励视频广告 4
七、注意事项
1. 优先级说明:
- 优先级1:最有效的Hook点,建议优先实现
- 优先级2:源头拦截,可以阻止整个SDK的初始化
- 优先级3:模拟付费用户,可以减少广告显示
- 优先级4:广告加载拦截,在广告加载时阻止
2. 拦截方式说明:
- 拦截执行:直接阻止方法执行,不调用原方法
- 修改参数:在方法执行前修改参数值
- 修改返回值:在方法执行后修改返回值
3. 测试建议:
- 优先测试优先级1的Hook点,如果有效则不需要其他Hook点
- 如果优先级1无效,再测试优先级2的Hook点
- 最后才考虑优先级3和4的Hook点
4. 兼容性:
- 不同版本的APK可能类名或方法名有变化,需要根据实际情况调整
- 建议添加异常处理,避免Hook失败导致应用崩溃
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|