去除某些APP广告弹窗

学习笔记二:对APP内的弹窗广告以及APP初始化的广告进行去除

一、对需要去除广告的APK进行安装,查看其原始状态

以下为该APP初始化以及加密方式切换后会弹出的广告

二、利用Android kill 对该APK进行反编译

1、通过反编译我们发现其Activity中存在youmi(一个移动广告平台)的工程,因此我们查看其AndroidManifest.xml文件,发现存在多个与youmi有关的信息,我们将其删除后进行重新编译发现广告并未删除。

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="lbchs.mtedit"><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.GET_TASKS"/><uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/><uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/><application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.Holo.Light"><activity android:configChanges="keyboardHidden|orientation" android:label="@string/app_name" android:name=".WelcomeActivity"><intent-filter><action android:name="android.intent.action.MAIN"/><category android:name="android.intent.category.LAUNCHER"/></intent-filter></activity><activity android:name=".MainActivity"/><activity android:name=".TwoActivity"/><service android:name="net.youmi.android.AdService"/><activity android:name="net.youmi.android.AdBrowser" android:theme="@android:style/Theme.NoTitleBar"/><receiver android:name="net.youmi.android.AdReceiver"><intent-filter><action android:name="android.intent.action.PACKAGE_ADDED"/><action android:name="android.intent.action.PACKAGE_INSTALL"/><data android:scheme="package"/></intent-filter></receiver><meta-data android:name="YOUMI_CHANNEL" android:value="0"/></application>
</manifest>

2、继续对反编译后的APK进行分析。我们首先查看其工程信息中的 .MainActivity,通过JD-jui来查看 .MainActivity所对应的Java源码,发现其中存在“youmi、广告、展示”等关键词,他们对应的方法为 showBanner与cc两个私有方法。通过追踪其上级调用方法,发现最终在onCreate方法中找到它们的最初调用—-setSpotAd()与showBanner()。

...省略...private void cc(){SpotManager.getInstance(this.context).showSpotAds(this.context, new SpotDialogListener(){@Overridepublic void onShowFailed(){Log.i("YoumiAdDemo", "展示失败");}@Overridepublic void onShowSuccess(){Log.i("YoumiAdDemo", "展示成功");}@Overridepublic void onSpotClick(){Log.i("YoumiAdDemo", "插屏点击");}@Overridepublic void onSpotClosed(){Log.i("YoumiAdDemo", "展示关闭");}});
private void setSpotAd(){SpotManager.getInstance(this.context).loadSpotAds();SpotManager.getInstance(this.context).setAnimationType(SpotManager.ANIM_ADVANCE);SpotManager.getInstance(this.context).setSpotOrientation(0);cc();}private void showBanner(){FrameLayout.LayoutParams localLayoutParams = new FrameLayout.LayoutParams(-2, -2);localLayoutParams.gravity = 85;AdView localAdView = new AdView(this.context, AdSize.FIT_SCREEN);localAdView.setAdListener(new AdViewListener(){@Overridepublic void onFailedToReceivedAd(AdView paramAnonymousAdView){Log.i("YoumiAdDemo", "请求广告失败");}@Overridepublic void onReceivedAd(AdView paramAnonymousAdView){Log.i("YoumiAdDemo", "请求广告成功");}@Overridepublic void onSwitchedAd(AdView paramAnonymousAdView){Log.i("YoumiAdDemo", "广告条切换");}});((Activity)this.context).addContentView(localAdView, localLayoutParams);}@Overridepublic void onCreate(Bundle paramBundle){ADRTLogCatReader.onContext(this, "com.aide.ui");super.onCreate(paramBundle);super.setContentView(2130903040);this.context = this;setSpotAd();showBanner();this.yuanw = ((EditText)findViewById(2131230721));...省略...

3、将上述两个方法的调用进行注释。保存后进行编译安装运行,发现其初始化时的广告并未去除。其次对 WelcomeActivity.class进行分析,通过jd-jui发现其中也存在广告的关键词(位于oncreate方法的try catch)中。

4、在WelcomeActivity.smali中尝试注释try catch来消除广告,发现缺少返回值,APP无法运行,尝试在try catch中添加return-viod,结果无广告但不进入程序主体中。

:try_start_0const-string v10, "lbchs.mtedit.MainActivity"invoke-static {v10}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;:try_end_0.catch Ljava/lang/ClassNotFoundException; {:try_start_0 .. :try_end_0} :catch_0

5、在WelcomeActivity.class中进入try catch的主体中查看其具体方法调用,发现有用方法两个( this.splashLayout.setVisibility和this.splashLayout.addView)前者为设置显示具体时间,后者为插入的广告图片。

try{Class localClass = Class.forName("lbchs.mtedit.MainActivity");paramBundle = new Intent(paramBundle, localClass);this.splashView.setIntent(paramBundle);this.splashView.setIsJumpTargetWhenFail(true);this.splash = this.splashView.getSplashView();setContentView(2130903043);this.splashLayout = ((RelativeLayout)findViewById(2131230738));this.splashLayout.setVisibility(8);paramBundle = new RelativeLayout.LayoutParams(-1, -1);paramBundle.addRule(2, 2131230739);this.splashLayout.addView(this.splash, paramBundle);SpotManager.getInstance(this.context).showSplashSpotAds(this.context, this.splashView, new SpotDialogListener(){@Overridepublic void onShowFailed()---省略---}}

将上述两个方法对应的invoke进行注释,保存、编译运行后发现广告顺利消除。

三、总结:至此对该APP的广告去除结束,在对一个APK进行分析的过程中会出现许多莫名的错误,需要我们不断的回头去查漏补缺。对修改的结果要不断的进行尝试才会得到正确的效果。

安卓APP去广告弹窗相关推荐

  1. 安卓逆向——修改APP去广告案例

    修改APP去广告案例 首先 没有去 广告打开的样子 ,显示的广告 这里使用 Android killer 工具 反编译 apk ,查看源码,打开 AndroidManifest.xml 文件查看 配置 ...

  2. WinRAR 5.5 简体中文版去广告弹窗方法

    WinRAR 5.5 简体中文版去广告弹窗方法 1.下载WinRAR 5.5WinRAR官网(http://www.rarlab.com) 2.下载 Resource Hacker. 3.用压缩软件打 ...

  3. WinRAR5.50 64位手动反汇编去广告弹窗

    之前有广告一直忍着没有管,最近winrar弹窗广告似乎出了什么问题每次打开都会自动打开十个左右的相同网页,实在无法忍受动手去了一下弹窗 用x64_dbg载入winrar,我先让程序跑起来,在显示win ...

  4. 安卓APK去广告的一种方法

    APK去广告所需资源如下: 1.要去广告的apk文件 2.反编译工具apktool  apktool 3.JDK(用于签名APK) 过程大体分为以下四步:解包.去广告.打包.签名,具体如下: 1.解包 ...

  5. 【百度网盘】V11.10.4安卓精简去广告 百度内部纯净版

    <百度网盘安卓精简版下载>是由百度推出的一款功能强大的云存储服务的应用软件, 给大家带来的是百度网盘内部精简版,去除了自带广告以及无升级提示弹窗 该软件为用户带来了精心打造的云服务产品,拥 ...

  6. 实战去广告弹窗及主页锁定

    首先放网站传送门:https://www.52pojie.cn/portal.php 没有脱壳步骤 例一 首先运行程序,会自动跳转到吾爱破解官方网站.关闭之后发现有个弹窗,点击确定之后进入页面 通过这 ...

  7. Google下重手了!安卓App广告弹窗被打击

    2019独角兽企业重金招聘Python工程师标准>>> 说起安卓用户最烦的东西,安卓App广告绝对算是一个.由于安卓独特的生态特点,很多安卓App都以广告作为主 要盈利途径.但打打一 ...

  8. 百度android 升级,百度浏览器app下载_百度浏览器v6.4.21安卓去广告去升级版-这家软件站...

    百度浏览器在整合自家的一些平台浏览还是不错的,网页的再处理排版看上去柔和多了,最近百度的移动端的产品都在更换新的LOGO,这个LOGO明显比之前那个好看多了. 功能介绍 用百度浏览器,上网更快更安全更 ...

  9. 安卓逆向_3 --- 篡改apk名称和图标、修改包名实现应用分身、修改资源去广告、去除re管理器广告

    From:https://www.bilibili.com/video/BV1UE411A7rW?p=7 Android 中 adb shell dumpsys 相关命令:https://blog.c ...

最新文章

  1. python清空字典保留变量方法_python学习day06--02字典增删差改以及字符串的一些方法...
  2. unity3d 捕获系统日志,来处理一些问题
  3. 依赖反转原理,IoC容器和依赖注入:第5部分
  4. 推荐免费的Windows Mobile截屏软件
  5. java json float_java – Json解析问题(值自动更改为float)
  6. 关于出现Not an editor command: Bundle ‘**/*.vim‘的解决方案【转】
  7. php stomp rabbitmq,php实现通过stomp协议连接ActiveMQ操作示例
  8. ​从 Spark Streaming 到 Apache Flink:bilibili 实时平台的架构与实践
  9. 全面罩防毒面具市场调研
  10. com词根词缀_英语词根字典 - 词根词缀大全 - 优词英语词根表
  11. E45: 'readonly' option is set (add ! to override)报错如何解决
  12. 手绘几何图形识别(下)
  13. 小天鹅全自动洗衣机的PLC控制
  14. 十大靠谱“计算机视觉数据集”榜单
  15. 国潮复兴——从红旗H9看HMI设计中的东方美学
  16. 狄利克雷卷积_狄利克雷卷积学习笔记
  17. 读Mybatis源码
  18. Mysql时间函数的坑
  19. 用串口(TFTP)给设备升级程序
  20. Sentinel 为 RocketMQ 服务保驾护航

热门文章

  1. 信赖域(Trust Region)
  2. 计算机应用责任编辑刘丽,普通高等教育“十二五”规划教材·公共课系列:新编大学计算机应用基础习题与上机指导...
  3. 回归算法以及源码分享
  4. 扶摇安全实验室|研究性学习渗透测试报告
  5. 机器学习在光学和声学的应用【系列】——第一篇 深度光学计算及其Inference综述
  6. 机器 · 搜索 · 未来
  7. 自动驾驶行业观察之2023上海车展-----车企发展趋势(3)
  8. H5+CSS3 实现div垂直水平居中的几种方式
  9. 云计算虚拟化技术总结
  10. 【邢不行|量化小讲堂系列10-Python量化入门】量化投资中如何处理复权、除权问题