前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >重学安卓逆向:获得广告&弹窗静默卡

重学安卓逆向:获得广告&弹窗静默卡

作者头像
用户1423082
发布2024-12-31 20:22:13
发布2024-12-31 20:22:13
10800
代码可运行
举报
文章被收录于专栏:giantbranch's bloggiantbranch's blog
运行总次数:0
代码可运行

安卓四大组件

安卓应用程序的基本组成部分由四大组件构成,它们分别是Activity(活动)、Service(服务)、BroadcastReceiver(广播接收器)和ContentProvider(内容提供器)。这些组件共同协作,实现了安卓应用的各种功能。以下是对这四大组件的详细解释:

  1. Activity(活动):
    • 定义: Activity是安卓应用中用户与应用进行交互的界面单元。每个Activity都代表了应用中的一个屏幕界面,用户可以在不同的Activity之间进行切换。
    • 生命周期: Activity具有生命周期,包括创建(onCreate)、启动(onStart)、恢复(onResume)、暂停(onPause)、停止(onStop)、销毁(onDestroy)等阶段。这些生命周期方法允许开发者管理Activity的状态和响应用户交互。
  2. Service(服务):
    • 定义: Service是在后台执行操作而没有用户界面的组件。Service通常用于执行长时间运行的任务,如下载文件、播放音乐等,而不受Activity的影响。
    • 生命周期: Service同样具有生命周期,包括创建(onCreate)、启动(onStartCommand)、停止(onStop)等。Service通常通过startService()或bindService()方法启动,并在完成任务后调用stopService()或unbindService()停止。
  3. BroadcastReceiver(广播接收器):
    • 定义: BroadcastReceiver是一种用于接收系统或其他应用发送的广播消息的组件。广播可以是系统事件、应用间通信或应用内部事件的通知。
    • 注册方式: BroadcastReceiver可以在清单文件中声明,也可以通过代码动态注册。当广播事件匹配注册的条件时,系统会调用BroadcastReceiver的onReceive()方法。
    • 用途: 广播接收器可以用于响应一些系统级别的事件,例如设备启动、网络状态变化、电池低电量等,也可以用于应用之间的通信。
  4. ContentProvider(内容提供器):
    • 定义: ContentProvider用于管理应用程序的数据,提供数据的访问接口。它允许应用程序共享数据给其他应用,也可以访问其他应用程序的数据。
    • URI: ContentProvider通过URI(Uniform Resource Identifier)标识数据,客户端通过ContentResolver访问ContentProvider提供的数据。ContentProvider的常见实现是在数据库上提供数据访问接口。
    • 用途: ContentProvider常用于存储和共享数据,例如联系人信息、媒体文件、数据库等。

这四大组件共同构建了安卓应用的架构,使得应用能够灵活、高效地处理用户交互、后台任务、数据管理以及与其他应用的通信。理解和熟练使用这些组件是安卓应用开发的基础。

Activity生命周期

函数名称

描述

onCreate()

一个Activity启动后第一个被调用的函数,常用来在此方法中进行Activity的一些初始化操作。例如创建View,绑定数据,注册监听,加载参数等。

onStart()

当Activity显示在屏幕上时,此方法被调用但此时还无法进行与用户的交互操作。

onResume()

这个方法在onStart()之后调用,也就是在Activity准备好与用户进行交互的时候调用,此时的Activity一定位于Activity栈顶,处于运行状态。

onPause()

这个方法是在系统准备去启动或者恢复另外一个Activity的时候调用,通常在这个方法中执行一些释放资源的方法,以及保存一些关键数据。

onStop()

这个方法是在Activity完全不可见的时候调用的。

onDestroy()

这个方法在Activity销毁之前调用,之后Activity的状态为销毁状态。

onRestart()

当Activity从停止stop状态恢进入start状态时调用状态。

# 去广告

广告类型:

  1. 启动广告
  2. 弹窗&更新广告
  3. 横幅广告

启动广告流程: 启动Activity->广告Activity->主页Activity

修改方法: 1.修改加载时间(修改为0) 2.Acitivity切换定位,修改Intent的Activity类名(直接跳到主页Activity)

定位Activity修改加载时间步骤,:

  1. 打开MT管理器的Activity记录
  2. 之后打开目标APP
  3. 即可记录到可疑的广告Activity,回到MT管理器的Activity记录即可复制Activity的类名
  4. 之后通过MT管理器打开apk的dex,搜索Activity的类名
  5. 点进去,可以查看代码逻辑,看到广告的时间
  6. 将广告的时间修改为0x0

修改Acitivity的跳转

  1. 再上面搜的基础上,在搜索Activity的类名的结果,长按赋值 com/XX/那一串,因为这个再smail中是这样表示的
  2. 将这个作为关键字搜索代码(当然要排除AD Activity)
  3. 看看逻辑,一般将AD Activity的替换为目标即可 例子:将Lcom/zj/wuaipojie/ui/AdActivity替换为Lcom/zj/wuaipojie/ui/ChallengeThird

去弹窗

修改方法: 1.修改AndroidManifest.xml中的android:versionCode,去掉更新广告 2.Hook弹窗(推荐算法助手开启弹窗定位) 3.修改dex弹窗代码(通过算法助手的log找到调用栈,之后MT管理器搜索方法名,将show方法注释) 4.抓包修改响应体(也可以路由器拦截)

算法助手

  1. 通过弹窗定位
  2. 屏蔽关键字弹窗

去横幅广告

开发助手(不是开发者助手)

1.开发者助手抓布局(点击放大镜按钮,选择横幅,复制资源id0xXXXXXXXX) 2.MT管理器xml搜索,选择资源id,反编译,文件内搜索资源id 3.修改xml代码(宽度和高度改为 0)

代码语言:javascript
代码运行次数:0
运行
复制
android:visibility="gone"

替换图片

  1. 开发者助手抓布局(点击放大镜按钮,选择横幅,复制资源id0xXXXXXXXX
  2. MT管理器xml搜索,选择资源id,反编译,文件内搜索资源id
  3. 复制图片的src id
  4. MT管理器打开resource.arsc,普通的Arsc编辑器,ID定位资源,
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安卓四大组件
  • Activity生命周期
  • 去弹窗
  • 去横幅广告
  • 替换图片
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档