当前位置: 首页 > news >正文

安卓逆向系列教程 4.6 去广告

4.6 去广告

作者:飞龙

软件在这里下载:http://www.yxdown.com/shouji/376800.html

我们要去掉的是主界面上的广告:

把它拖进 Android Killer,这个项目的包是com.cnnzzse.kxxye,通过查询配置文件可得知,主界面是hellot

我们在这个类中搜索ad

.field private adView:Lcom/baidu/mobads/AdView;

# ...

.field private interAd:Lcom/baidu/mobads/InterstitialAd;

.field private isInitAd:Z

# ...

.field private showAd:Z

# ...

.method public showAdView()V

# ...

.method public showInterView()V

# ...

可以看到一共有两个广告,adViewinterAd,我们再来看showAdViewshowInterView的方法:

# showAdView
.line 283
iget-boolean v1, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z

if-nez v1, :cond_1

.line 300
:cond_0
:goto_0
return-void

# showInterView
.line 302
iget-boolean v0, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z

if-nez v0, :cond_0

.line 346
:goto_0
return-void

它们都通过showAd这个字段来判断是否要显示广告。

我们可以想办法把这个字段给赋成false。搜索Lcom/cnnzzse/kxxye/hellot;->showAd:Z

发现对其写入的一共两处。第一处是构造器<init>中。

.prologue
const/4 v1, 0x1

# ...

.line 74
const/4 v0, 0x0

# ...

.line 75
iput-boolean v1, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z

这里我们把v1改成v0

第二处是静态方法access$0,这个方法专门用于设置showAd

.method static synthetic access$0(Lcom/cnnzzse/kxxye/hellot;Z)V
    .locals 0

    .prologue
    .line 75
    iput-boolean p1, p0, Lcom/cnnzzse/kxxye/hellot;->showAd:Z

    return-void
.end method

我们加上一句const/4 p1, 0x0

完事。

相关文章:

  • Myeclipse安装SVN插件
  • 王国维读书三大境界
  • dubbo异常: Failed to invoke the method getFormulaZtree in the service 异常解决方案
  • 多行文本溢出显示省略号(…)全攻略
  • MySQL 最基本的SQL语法/语句
  • 微软职位内部推荐-Senior Software Engineer_Azure
  • 使用 layoutopt 进行布局优化
  • 神经
  • REST,http,服务器开发
  • [WebKit] JavaScriptCore解析--基础篇 (一)JSC与WebCore
  • testbench的文件读写
  • JavaScript获取table中某一列的值的方法
  • 设计模式C++实现(14)——职责链模式
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • Ubuntu 14.04.02 安装深度音乐影音
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • Android 架构优化~MVP 架构改造
  • canvas绘制圆角头像
  • CEF与代理
  • HTTP中GET与POST的区别 99%的错误认识
  • java概述
  • node 版本过低
  • PHP CLI应用的调试原理
  • Spring Cloud Feign的两种使用姿势
  • Webpack 4x 之路 ( 四 )
  • 汉诺塔算法
  • 好的网址,关于.net 4.0 ,vs 2010
  • 基于HAProxy的高性能缓存服务器nuster
  • 你真的知道 == 和 equals 的区别吗?
  • 携程小程序初体验
  • k8s使用glusterfs实现动态持久化存储
  • ​configparser --- 配置文件解析器​
  • ​VRRP 虚拟路由冗余协议(华为)
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (70min)字节暑假实习二面(已挂)
  • (八)Spring源码解析:Spring MVC
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (六)软件测试分工
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)Scala的“=”符号简介
  • (转)shell中括号的特殊用法 linux if多条件判断
  • .NET Core中Emit的使用
  • .net framework profiles /.net framework 配置
  • .net FrameWork简介,数组,枚举
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @vue/cli 3.x+引入jQuery
  • [c#基础]DataTable的Select方法
  • [CISCN 2019华东南]Web11