吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13851|回复: 51
收起左侧

[Android 原创] 去除Wifi分析仪底部广告

  [复制链接]
jackyvan 发表于 2017-7-2 10:12
本帖最后由 jackyvan 于 2017-7-2 10:14 编辑

首先用 AndroidCrackTool 把apk文件反编译,然后提前其中的dex文件,反编译成jar文件。然后JD打开jar文件,根据反编译的AndroidMainfest.xml找到入口 com.farproc.wifi.analyzer.MyApplication 和 com.farproc.wifi.analyzer.MainScreen 。

用JD查看对应文件代码,发现 MyApplication.class 里没有什么特殊代码,那有很大可能就存在于文件MainScreen里。
用JD查看 MainScreen.class ,首先在最上面的 import 里 发现
[Java] 纯文本查看 复制代码
 import com.google.android.gms.ads.d;
import com.google.android.gms.ads.h;

这两个导入,看来用的是google的广告服务,然后接着往下看,在类的开始的位置 定义了一个 私有变量
[Java] 纯文本查看 复制代码
private com.google.android.gms.ads.e G;


这个是广告的关键点的可能性非常大,根据这个变量在文件里查找相应的使用过此变量的地方,发现了好几处。
[Java] 纯文本查看 复制代码
private void M()
  {
    if (this.O == null)
    {
      this.O = new com.farproc.wifi.analyzer.a.a(this, this.J, "<script type=\"text/javascript\" src=\"http://ad.leadboltads.net/show_app_ad.js?section_id=977050972\"></script>");
      this.O.a(new a.a()
      {
        public void a(com.farproc.wifi.analyzer.a.a paramAnonymousa)
        {
          MainScreen.g(MainScreen.this).a(MainScreen.this, "Click");
          Settings.a(MainScreen.f(MainScreen.this).c);
          paramAnonymousa.c();
          MainScreen.a(MainScreen.this, null);
        }
      });
    }
    //此处根据判断G是否被实例化来设置起Visibility为显示
    if (this.G != null) {
      this.G.setVisibility(8);
    }
    this.O.a();
  }


  private void O()
  {
    //此处判断G是否实例化,如果为null则实例化此变量
    if (this.G == null)
    {
      this.G = new com.google.android.gms.ads.e(this);
      this.G.setVisibility(8);
      this.G.setAdSize(d.g);
      this.G.setAdUnitId("ca-app-pub-7095649012086171/4602092489");
      this.G.setAdListener(this.Q);
      this.J.addView(this.G, new LinearLayout.LayoutParams(-1, -2));
      if (this.j.c.getBoolean("test_ad", false)) {
        this.G.setBackgroundColor(Settings.a());
      }
    }
    if (!this.R) {
      this.M.a(this, "Request");
    }
    try
    {
      this.G.a(Settings.a(this, P()));
      if (this.O != null) {
        this.O.b();
      }
      return;
    }
    catch (Throwable localThrowable)
    {
      for (;;)
      {
        Log.e("MainScreen", "showGoogleBannerAdView", localThrowable);
      }
    }
  }
剩下的还有几处代码,不过都是以判断G是否实例化为前提,所以判断G实例化之后才会显示广告,那如果我们不让其实例化则广告可能就不会显示,所以我们只要在 O() 最开始位置return 让其不实例化G就可以
[Java] 纯文本查看 复制代码
private void O() 
{
    return;
    ....
}
我们在反编译apk后得到的smali文件夹中找到对应的MainScreen.smali文件 找到 .method private O()V ,修改如下
[Scala] 纯文本查看 复制代码
.method private O()V
    .locals 5

    iget-object v0, p0, Lcom/farproc/wifi/analyzer/MainScreen;->G:Lcom/google/android/gms/ads/e;

    #此处新增一行返回
    return-void

    if-nez v0, :cond_0

    new-instance v0, Lcom/google/android/gms/ads/e;
然后用AndroidCrackTool重新打包(把上面反编译apk后得到的目录路径填入源文件处即可),重新打包完再把生成的apk重新签名,安装运行,就发现广告不再显示了。

点评

楼主看看能显示几个WIFI的信息,是不是完全破解了  发表于 2017-8-13 22:56

免费评分

参与人数 10吾爱币 +14 热心值 +10 收起 理由
zjjxyz + 1 + 1 谢谢@Thanks!
Jxdm + 1 + 1 我很赞同!
白帽子 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
吾2破解 + 1 + 1 我很赞同!
jiaxingseo + 1 何必这么麻烦 设置里面就有
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
独行风云 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xuanle6 + 1 + 1 谢谢@Thanks!
suifengdang666 + 1 + 1 用心讨论,共获提升!
lialu2009 + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| jackyvan 发表于 2017-7-2 11:03
lialu2009 发表于 2017-7-2 10:48
楼主厉害。工具是群里下载的么?

多谢支持 是mac版的,下载地址 https://github.com/Jermic/Android-Crack-Tool
头像被屏蔽
lialu2009 发表于 2017-7-2 10:48
haojie261 发表于 2017-7-2 11:35
ningzhonghui 发表于 2017-7-2 11:37
不错学习下去广告
colacat315 发表于 2017-7-2 11:51
谢谢楼主分享,分析的很好!
海鷫 发表于 2017-7-2 11:51
这个不错,很有用处
swfz2008 发表于 2017-7-2 11:55
辛苦了。感谢分享
realzoc 发表于 2017-7-2 12:00
感谢分享
aijanice 发表于 2017-7-2 14:00
把去广告后的软件分享下咯
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 01:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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