RE管理器去广告分析
我们先把软件安装进模拟器去,安装完成之后,打开,然后退出,发现会弹广告,
我们用adb命令看看,当前的activity是什么
可以看到当前所在的activity为com.speedsoftware.rootexplorer/com.AddDouDouWall2.WebPageDownLoadMainActivity
我们拖入android killer,反编译下,去Androidmanifest看看这个activity是否是动态activity,因为想要使用动态activity必须在activity里注册,
可以看到确实是注册了
然后我们找到这个activity所在位置,然后定位到如下位置
我们用浏览器打开一下这个链接,http://www.doudoubird.com:8080/ddn_app/selectAppList?aidx=2
,,发现如下图跟退出时弹出的广告一样
可以知道,软件退出时确实执行了上面的代码
但是我们得要先找到是哪个方法开启了这个activity
用软件分析下,然后发现以下方法启动了这个activity
碰巧的是这个方法正好是onDestroy()方法,这个方法在软件结束的时候会调用
我们分析下这个方法
我们只看如下代码
@Override// android.support.v7.app.AppCompatActivity
protected void onDestroy() {
int v0_1;
if(this.isNetworkAvailable(this)) {
this.startActivity(new Intent(this, WebPageDownLoadMainActivity.class));
}
从这句代码可以知道,只要有网络就会启动广告activity
我们看一下smali代码
.method protected onDestroy()V
.registers 6
00000000invoke-virtual RootExplorer->isNetworkAvailable(Context)Z, p0, p0
00000006move-result v0
00000008if-eqz v0, :20
:C
0000000Cnew-instance v0, Intent
00000010const-class v1, WebPageDownLoadMainActivity
00000014invoke-direct Intent-><init>(Context, Class)V, v0, p0, v1
0000001Ainvoke-virtual RootExplorer->startActivity(Intent)V, p0, v0
这个代码执行了isNetworkAvailable方法,并且将结果赋值给v0
然后判断v0是否等于0,等于则执行下面的代码,不等于则跳过广告代码,继续执行
我们可以把if-eqz v0,改为if-nez v0,
然后编译,安装进模拟器看看效果
可以看到,广告已经没有了
感谢分享,内容很实用。 多谢大佬分享 详细 谢谢分享 谢谢分享 支持~谢谢大神的分享~ 十分感谢大佬 来看看感谢分享 来看看感谢分享 谢谢分享