返回列表 发新帖

某次元Flutter免广告(二)

  [复制链接]

46

主题

2829

回帖

1万

积分

博士生

灵衫Pro

Rank: 7Rank: 7Rank: 7

金币
7608
好评
61
信誉
111

MT论坛新人MT论坛帅哥MT论坛活跃会员考神

QQ
发表于 2024-12-19 23:30:47 来自手机  | 显示全部楼层 | 阅读模式  来自 贵州
本帖最后由 LsPro 于 2024-12-19 23:50 编辑
[/free]
本期音乐:



[free]
前情回顾
上期教程说了省流版
因为字数限制,没办法直接写完
那么这期详细教程就来了
查看上期教程
--------------------分割线--------------------
视频教程
https://b23.tv/xOYeiPs


详细教程
[hide]
通过前几位大佬提供的思路,我不断摸索,发现该套壳软件的广告都是“com.windmill”这个sdk有关
在浏览“com.windmill”我们发现“WMCustomRewardAdapter”,通过翻译看到“RewardAdapter”翻译为“奖励适配器”

而这类壳子的会员就是通过奖惩机制(看广告)发布的领取的,先打开这个类

首先我们要明确目的,是通过不看广告并领取奖励,那就需要从显示广告的方面下手
既然如此,我们发现其中的“showad”方法名是“abstract”,可以理解为:在Smali代码中“abstract”被定义为public抽象定义方法接口,需要在子类中调用或实现
但是我们不知道他被哪个子类所调用并实现,也就是说,我们直接更改这个方法名是没有用的,那我们就只能从其他方法下手


往下滑发现“showCustomAd”是“final”,可以理解为:在Smali代码中“abstract”被定义为public的“最终的”,并且不能被子类重写(覆盖)
那么很显然,这个方法名在当前类下修改是有效果的,因为我们并不知道如何修改,所以我们只能喂给ai分析
喂了几次代码和需求,终于被我喂出效果相似的结果了

  1. .method public final showCustomAd(Landroid/app/Activity;Landroid/view/ViewGroup;Lcom/windmill/sdk/d/a;)V
  2.     .registers 6

  3.     invoke-virtual {p0}, Lcom/windmill/sdk/custom/a;->c()Lcom/windmill/sdk/base/WMAdConnector;

  4.     move-result-object v0

  5.     iget-object v1, p0, Lcom/windmill/sdk/custom/a;->e:Lcom/windmill/sdk/d/a;

  6.     invoke-interface {v0, p0, v1}, Lcom/windmill/sdk/base/WMAdConnector;->adapterDidLoadAdSuccessAd(Lcom/windmill/sdk/custom/a;Lcom/windmill/sdk/d/a;)V

  7.     invoke-virtual {p0}, Lcom/windmill/sdk/custom/a;->c()Lcom/windmill/sdk/base/WMAdConnector;

  8.     move-result-object v0

  9.     iget-object v1, p0, Lcom/windmill/sdk/custom/a;->e:Lcom/windmill/sdk/d/a;

  10.     invoke-interface {v0, p0, v1}, Lcom/windmill/sdk/base/WMAdConnector;->adapterDidPlayEndAd(Lcom/windmill/sdk/custom/a;Lcom/windmill/sdk/d/a;)V

  11.     invoke-virtual {p0}, Lcom/windmill/sdk/custom/a;->c()Lcom/windmill/sdk/base/WMAdConnector;

  12.     move-result-object v0

  13.     iget-object v1, p0, Lcom/windmill/sdk/custom/a;->e:Lcom/windmill/sdk/d/a;

  14.     const p1, 0x1

  15.     invoke-interface {v0, p0, v1, p1}, Lcom/windmill/sdk/base/WMAdConnector;->adapterDidRewardAd(Lcom/windmill/sdk/custom/a;Lcom/windmill/sdk/d/a;Z)V

  16.     invoke-virtual {p0}, Lcom/windmill/sdk/custom/a;->c()Lcom/windmill/sdk/base/WMAdConnector;

  17.     move-result-object v0

  18.     iget-object v1, p0, Lcom/windmill/sdk/custom/a;->e:Lcom/windmill/sdk/d/a;

  19.     invoke-interface {v0, p0, v1}, Lcom/windmill/sdk/base/WMAdConnector;->adapterDidCloseAd(Lcom/windmill/sdk/custom/a;Lcom/windmill/sdk/d/a;)V

  20.     const/4 v0, 0x1

  21.     iput-boolean v0, p0, Lcom/windmill/sdk/custom/WMCustomRewardAdapter;->m:Z
  22.     return-void
  23. .end method
复制代码


修改后去测试,成功了


但发现还是会弹开屏广告以及其他插屏广告

从图中我们可以看到有个类“WMCustomSplashAdapter”


既然上面的测试成功了,那么我们基本可以确定修改的是“com.windmill.sdk.custom”下的类
而“WMCustomSplashAdapter”正是“com.windmill.sdk.custom”下的类其中之一,并且翻译过来是“WM自定义飞溅适配器”,“Splash”这个单词想必各位在软件中很常见,一般都是开屏广告

所以,废话不多说,直接喂给ai (又是经过漫长的喂ai过程)
结果发现,他给我的一堆解释


(果然ai替代不了人类)

通过ai给的解释加以分析,我们得知“d”方法名在广告关闭时被调用,而“showCustomAd”与免广告基本一致,所以,我们只需要更改“d”和“showCustomAd”方法名

方法名:
  1. com.windmill.sdk.custom.WMCustomSplashAdapter.d
复制代码

清空并将整个方法名替换为:

  1. .method public final d()V
  2.     .registers 4
  3.     iget-boolean v0, p0, Lcom/windmill/sdk/custom/WMCustomSplashAdapter;->n:Z

  4.     if-nez v0, :cond_1b

  5.     const/4 v0, 0x1

  6.     iput-boolean v0, p0, Lcom/windmill/sdk/custom/WMCustomSplashAdapter;->o:Z

  7.     invoke-virtual {p0}, Lcom/windmill/sdk/custom/a;->c()Lcom/windmill/sdk/base/WMAdConnector;

  8.     move-result-object v0

  9.     if-eqz v0, :cond_16

  10.     invoke-virtual {p0}, Lcom/windmill/sdk/custom/a;->c()Lcom/windmill/sdk/base/WMAdConnector;

  11.     move-result-object v0

  12.     iget-object v2, p0, Lcom/windmill/sdk/custom/a;->e:Lcom/windmill/sdk/d/a;

  13.     invoke-interface {v0, p0, v2}, Lcom/windmill/sdk/base/WMAdConnector;->adapterDidCloseAd(Lcom/windmill/sdk/custom/a;Lcom/windmill/sdk/d/a;)V

  14.     :cond_16
  15.     invoke-virtual {p0}, Lcom/windmill/sdk/custom/WMCustomSplashAdapter;->f()V

  16.     iput-boolean v0, p0, Lcom/windmill/sdk/custom/WMCustomSplashAdapter;->n:Z

  17.     :cond_1b
  18.     return-void
  19. .end method
复制代码

--------------------



方法名:
  1. com.windmill.sdk.custom.WMCustomSplashAdapter.showCustomAd
复制代码

清空并将整个方法名替换为:

  1. .method public final showCustomAd(Landroid/app/Activity;Landroid/view/ViewGroup;Lcom/windmill/sdk/d/a;)V
  2.     .registers 6

  3.     new-instance v0, Ljava/lang/StringBuilder;

  4.     invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

  5.     sget-object v1, Lcom/windmill/sdk/custom/WMCustomSplashAdapter;->q:Ljava/lang/String;

  6.     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

  7.     const-string v1, "------------showCustomAd------------"

  8.     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

  9.     invoke-virtual {p3}, Lcom/windmill/sdk/d/a;->F()Ljava/lang/String;

  10.     move-result-object v1

  11.     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

  12.     const-string v1, ":"

  13.     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

  14.     invoke-virtual {p3}, Lcom/windmill/sdk/d/a;->J()Ljava/lang/String;

  15.     move-result-object v1

  16.     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

  17.     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

  18.     move-result-object v0

  19.     invoke-static {v0}, Lcom/czhj/sdk/logger/SigmobLog;->i(Ljava/lang/String;)V

  20.     const/4 v0, 0x1

  21.     iput-boolean v0, p0, Lcom/windmill/sdk/custom/WMCustomSplashAdapter;->o:Z

  22.     return-void
  23. .end method
复制代码

--------------------


好了,这样开屏广告就没了,但是还有插屏广告(广告真TM多)

不急,再分析

依旧是通过这个图


发现有非常多的“Adapter”
全看了一遍,发现“IWM”开头的全是“public abstract”,那我们可以确定,广告存在于“WM”开头的“Adapter”里

其中,有一个特别显眼“WMCustomAdapterProxy”,翻译为“WM自定义适配器代理”
代理?就决定是你了,打开来一看,有个“addInitListener”,翻译为“添加初始化监听”,看你不顺眼,给你清空了

结果发现进不去了,毁了
看来不能动“WMCustomAdapterProxy”,那还剩下
“WMCustomBannerAdapter”
“WMCustomInterstitialAdapter”
“WMCustomNativeAdapter”

依次点进去发现都有“showCustomAd”,思考ing....

有了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有3人评分好评 金币 理由
幸运儿8 + 1 + 1 正好研究需要,感谢
龙华799 + 1 + 1
氵衮 + 1 + 1

查看全部评分 总评分:好评 +3  金币 +3 

回复

使用道具 举报

46

主题

2704

回帖

1万

积分

博士生

听冬宝宝

Rank: 7Rank: 7Rank: 7

金币
4089
好评
91
信誉
151

MT论坛帅哥考神MT论坛新人MT论坛活跃会员MT论坛最佳新人

QQ
发表于 2024-12-19 23:40:57 来自手机  | 显示全部楼层  来自 贵州
33大佬又开始圈金币了
回复

使用道具 举报

46

主题

2829

回帖

1万

积分

博士生

灵衫Pro

Rank: 7Rank: 7Rank: 7

金币
7608
好评
61
信誉
111

MT论坛新人MT论坛帅哥MT论坛活跃会员考神

QQ
发表于 2024-12-19 23:44:35 来自手机  | 显示全部楼层  来自 贵州
不熬夜的听冬酱 发表于 2024-12-19 23:40
33大佬又开始圈金币了

其实到b站看,一分币不花就能学完
但是都在b站学了,不留三连就过分了
回复

使用道具 举报

85

主题

4970

回帖

1万

积分

禁止访问

金币
2538
好评
18
信誉
121
发表于 2024-12-19 23:48:32 来自手机  | 显示全部楼层  来自 辽宁
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

46

主题

2829

回帖

1万

积分

博士生

灵衫Pro

Rank: 7Rank: 7Rank: 7

金币
7608
好评
61
信誉
111

MT论坛新人MT论坛帅哥MT论坛活跃会员考神

QQ
发表于 2024-12-19 23:51:42 来自手机  | 显示全部楼层  来自 贵州
Creampie 发表于 2024-12-19 23:48
这个和刚才的一样吗,还是新内容

一样的,只不过有讲解
回复

使用道具 举报

134

主题

3460

回帖

1万

积分

博士生

无敌最俊朗

Rank: 7Rank: 7Rank: 7

金币
3011
好评
49
信誉
105
发表于 2024-12-19 23:51:45 来自手机  | 显示全部楼层  来自 四川
看看隐藏
回复

使用道具 举报

0

主题

380

回帖

1447

积分

高中生

Rank: 4

金币
792
好评
0
信誉
100
发表于 2024-12-19 23:53:37 来自手机  | 显示全部楼层  来自 浙江
看看隐藏
回复

使用道具 举报

13

主题

6965

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1508
好评
4
信誉
104

考神

发表于 2024-12-19 23:57:56 来自手机  | 显示全部楼层  来自 云南
学习下隐藏
回复

使用道具 举报

14

主题

2357

回帖

9325

积分

硕士生

Rank: 6Rank: 6

金币
5535
好评
11
信誉
100
发表于 2024-12-19 23:59:42 来自手机  | 显示全部楼层  来自 湖南
厉害了,不错
回复

使用道具 举报

10

主题

7203

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
5145
好评
1
信誉
91

MT论坛最佳新人考神

发表于 2024-12-20 00:01:44 来自手机  | 显示全部楼层  来自 湖北
看看隐藏
回复

使用道具 举报

5

主题

1万

回帖

3万

积分

博士后

萌新

Rank: 8Rank: 8

金币
3420
好评
51
信誉
101

考神MT论坛最佳新人MT论坛帅哥MT论坛新人MT论坛活跃会员

发表于 2024-12-20 00:04:18 来自手机  | 显示全部楼层  来自 广东
感谢分享
回复

使用道具 举报

1

主题

1220

回帖

3047

积分

大学生

Rank: 5Rank: 5

金币
3136
好评
0
信誉
100
发表于 2024-12-20 00:05:42 来自手机  | 显示全部楼层  来自 山东
感谢分享
回复

使用道具 举报

13

主题

1879

回帖

5591

积分

硕士生

Rank: 6Rank: 6

金币
4142
好评
0
信誉
100
发表于 2024-12-20 00:06:06 来自手机  | 显示全部楼层  来自 江苏
学习一下
回复

使用道具 举报

14

主题

694

回帖

3090

积分

大学生

Rank: 5Rank: 5

金币
160
好评
1
信誉
94
发表于 2024-12-20 00:07:56 来自手机  | 显示全部楼层  来自 江西
感谢感谢
回复

使用道具 举报

2

主题

4507

回帖

1万

积分

禁止访问

iKUN

金币
1214
好评
16
信誉
111
发表于 2024-12-20 00:14:04 来自手机  | 显示全部楼层  来自 广西
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表