【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对

爱必应

本教程只适合新手,专业逆向请直接删类
【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对-图1

趁着周末还有点时间,发个去广告的教程吧,好像本论坛并没有专门的帖子讲这个方面的内容。我接触安卓逆向时间不长,最多5个月的时间,所以我自己只能写新手教程,不太适合老手/专业工程师看。接触安卓之前倒是玩过upx脱壳什么的,winrar去广告解除锁定什么的我还会,难一点的就不懂了。

穿山甲广告和腾讯广告的去除方法都是个人的经验之谈,因为有些是根据DDMS或者app运行、崩溃记录得出来的结论,你问我为什么要这么搜,我只能说是手机告诉我的这么搜的。当然方法不一定好,如果你有更好的方法欢迎交流。

【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对-图2

【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对-图3

首先是企鹅广告。

一、腾讯广告修改之去权限:AndroidManifest.xml

方法一针对多数情况下的开屏广告、内置横幅广告。
现在以某款热门软件为例,首先打开apk压缩包,把assets\gdt_plugin下的gdtadv2.jar文件删掉,少数app删掉这个文件以后就没有广告了,但是大多数还是有的。

接着打开AndroidManifest文件,搜索【qq.e】,把相关的权限删掉即可,此时80%的app将无法显示广告。

【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对-图4

如图,com.qq.e.comm.DownloadService和com.qq.e.ads开头的都要删掉。
当然你也可以查看app启动顺序,改一下启动界面,看看app是否正常进入。相关教程:https://www.52pojie.cn/thread-1210314-1-1.htmlhttps://www.52pojie.cn/thread-1156372-1-1.html

二、修改dex去腾讯广告

当方法一不适用时,可以使用本方法。比如有权限检查,删掉腾讯广告权限以后出现卡屏白屏、闪退的情况。
方法二针对开屏广告和内置横幅广告。

首先根据权限路径去找LandscapeADActivity文件和PortraitADActivity文件,删掉图中红框代码。

【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对-图5

让他直接return-void即可。除了这两个文件,ADActivity等都是可以删掉的,即使不禁用、删除权限也是可以达到去广告的目的。

三、修改方法名去腾讯广告

当以上2种方法都无法干掉腾讯广告时,可以尝试第三种方法。比如牛皮癣类型广告,多数置于浏览页内,比如漫画浏览、小说浏览,下滑列表等。
方法三针对顽固横幅广告。

反编译后搜索代码【.method public loadAD】,MT管理器上搜索方法名loadAD,凡是方法代码中包含return-void的,都把它放到第一行,不让他继续往下走。有多少个就改多少个,也不多。

【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对-图6

如上图,改成:

  1. .method public loadAD()V
  2.     .locals 1
  3.     return-void
  4. .end method

这种app我是见过的,非常顽固的广告,但是也非常少见。去掉后还有广告空白位置,这时候还需要修改布局文件,现在不讨论这个,用uiautomatorviewer抓一下即可获得布局ID。

接着是穿山甲广告。

穿山甲广告在权限里面是com.bytedance开头的,但是删掉没用任何作用,广告也去不掉,好像都没有任何影响……姑且先删掉好了

穿山甲广告还是比较简单的,首先搜索字符串【穿山甲管理员】,转换为Uniode是【\u7a7f\u5c71\u7532\u7ba1\u7406\u5458】,MT管理器可以直接搜字符串。如果有字符串加密了需要解密才能搜索。

【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对-图7

如图,选择只有1个结果的那个文件。打开看看会有什么内容。
定位到【a(Lcom/bytedance/sdk/openadsdk/a/b;)Z】这个方法。

【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对-图8

完整的字符串是【广告请求开关已关闭,请联系穿山甲管理员】,关键代码如下:

  1. .method private a(Lcom/bytedance/sdk/openadsdk/a/b;)Z
  2.     .locals 2
  3.     .line 265
  4.     invoke-static {}, Lcom/bytedance/sdk/openadsdk/core/h/j;->a()Z
  5.     move-result v0【取值】
  6.     if-nez v0, :cond_1【进行判断】
  7.     if-eqz p1, :cond_0
  8.     const/16 v0, 0x3e8【10进制为1000,不知道这个是干嘛的】
  9.     const-string v1, "\u5e7f\u544a\u8bf7\u6c42\u5f00\u5173\u5df2\u5173\u95ed,\u8bf7\u8054\u7cfb\u7a7f\u5c71\u7532\u7ba1\u7406\u5458"
  10.     .line 267
  11.     invoke-interface {p1, v0, v1}, Lcom/bytedance/sdk/openadsdk/a/b;->onError(ILjava/lang/String;)V
  12.     :cond_0
  13.     const/4 p1, 0x1【赋值为1时,广告请求开关已关闭】
  14.     return p1
  15.     :cond_1
  16.     const/4 p1, 0x0【赋值为0时,广告请求开关已打开】
  17.     return p1
  18. .end method

如下图,可以查看一下调用,有一堆的结果。if-eqz vA, :cond_*的意思是:如果vA等于0则跳转到:cond_*。所以一旦p1返回的值是0,那么那一堆广告就开始运行了。

【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对-图9

回到穿山甲管理员的开关,改法如图,删掉红框部分即可。

【新手教程】安卓 穿山甲广告(字节跳动)和腾讯广告 通用去除教程 非针对-图10

改成:

  1. .method private a(Lcom/bytedance/sdk/openadsdk/a/b;)Z
  2.     .locals 2
  3.     const/16 v0, 0x3e8
  4.     const-string v1, "\u5e7f\u544a\u8bf7\u6c42\u5f00\u5173\u5df2\u5173\u95ed,\u8bf7\u8054\u7cfb\u7a7f\u5c71\u7532\u7ba1\u7406\u5458"
  5.     invoke-interface {p1, v0, v1}, Lcom/bytedance/sdk/openadsdk/a/b;->onError(ILjava/lang/String;)V
  6.     const/4 p1, 0x1
  7.     return p1
  8. .end method

此时99%的app已经无法显示穿山甲广告了。

声明:本站所有资源均由网友分享,如有侵权内容,请在文章下方留言,本站会立即处理。

原文链接:,转发请注明来源!

发表评论