app攻防-实战修改资源&去广告与弹窗

admin 2024年11月21日13:35:20评论12 views字数 2865阅读9分33秒阅读模式

者:yueji0j1anke

首发于公号:剑客古月的安全屋

字数:2004

阅读时间:    15min

声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。合法渗透,本文章内容纯属虚构,如遇巧合,纯属意外

目录

  • 前言

  • 前置技术

  • 实战

    1.demo1

    2.demo2

    3.demo3

  • 总结

0x01 前言

一直在做安卓逆向,却没有系统性的学习过,于是在app攻防开辟这个专题,用于提高自己的基础能力

0x02 前置知识

1.安卓四大组件

activity(活动)->在应用中的activity可以用来表示一个界面。一个安卓应用必须由activity来运行和启动,生命周期交由系统管理

Activity(活动)

  • 负责管理应用的用户界面,通常一个activity表示一个界面

  • 一个应用由多个activity组成,并在不同activity间跳转

  • 每个activity可以与用户交互响应操作

Service(服务)

  • 用于长时间后台运行任务的组件

  • 没有用户界面,可以在后台运行,比如播放音乐,处理请求

  • 分为前台服务和后台服务

BroadcastReceiver(广播接收器)

  • 接受并响应其他应用发送广播信息的组件

  • 令多个应用间通信

  • 比如电量低 时区改变

ContentProvider(内容提供者)

  • 通过数据共享接口,使应用共享数据和访问其他应用数据(访问媒体、通讯录)

  • 通过ContentResolver机制查询、插入、更新、删除数据

  • 访问数据库、文件等数据存储

2.activity的生命周期

  1. onCreate()

    • 触发时机:在 Activity 被创建时调用(如首次打开或屏幕旋转后)。

    • 作用:初始化界面元素和基本组件,如加载布局文件、初始化变量、设置监听器等。

  2. onStart()

    • 触发时机Activity 即将显示给用户时调用。

    • 作用:通常用于界面的更新,如刷新数据,或对用户可见的内容进行设置。

  3. onResume()

    • 触发时机Activity 即将与用户开始交互时调用。

    • 作用:是 Activity 完全可见并位于前台的状态,此时可以进行动画、音频等与用户交互相关的操作。

  4. onPause()

    • 触发时机Activity 部分不可见(例如有对话框弹出)或即将被另一个 Activity 覆盖时调用。

    • 作用:用于保存未持久化的数据,停止动画和音乐,释放资源等,以确保节省系统资源。

  5. onStop()

    • 触发时机Activity 完全不可见时调用。

    • 作用:用于释放不必要的资源(如广播接收器),暂停耗时操作(如数据库、网络请求等)。

  6. onRestart()

    • 触发时机Activity 在停止后再次启动时调用(例如用户返回此界面)。

    • 作用:用于恢复因 onStop() 暂停的状态或资源,但不涉及布局重新加载。

  7. onDestroy()

    • 触发时机Activity 被销毁时调用。

    • 作用:释放所有资源、停止线程等。在手动调用 finish()、内存不足、或系统销毁 Activity 时触发。

典型生命周期的三种模式

  1. 正常启动模式onCreate()onStart()onResume()

  2. 切换后台模式onPause()onStop()

  3. 返回前台模式onRestart()onStart()onResume()

  4. 销毁模式onPause()onStop()onDestroy()

0x03 实战

1.去广告

首先我们打开我们的testdemo

app攻防-实战修改资源&去广告与弹窗

发现存在广告

广告页面有很多种剔除方法,这里讲解两种常用方法

1.修改时间

用mt管理器抓取一下类名

发现是从AdActivity跳转到该页面

app攻防-实战修改资源&去广告与弹窗

打开dex编辑器进行搜索

app攻防-实战修改资源&去广告与弹窗

点入转为java

app攻防-实战修改资源&去广告与弹窗

逻辑代码意思是一旦进入页面执行loadAd广告,等待一定时间后跳转到ChallengeThird页面,那显然我们不想等待这个三秒,就把3000给他改了就行

app攻防-实战修改资源&去广告与弹窗

把这个16进制数字直接改成0,就不用等待,即可完成广告跳转

反编译安装后直接跳转无广告

app攻防-实战修改资源&去广告与弹窗

2.切换Activity

这里我们就要重新来审视一下AndroidManifest.xml

app攻防-实战修改资源&去广告与弹窗

这里阐述了app组成的Activity页面,以及进入app的主页Activity,如果够大胆,可以直接替换主页面的Activity为跳过广告页面之后的Activity,不过不推荐使用,有可能会错过一些组件的加载

那我们不妨去看看是哪些代码调用跳转了广告页面,直接进行修改跳转即可

重新搜索类的smali路径代码

app攻防-实战修改资源&去广告与弹窗

本类直接跳过不看

app攻防-实战修改资源&去广告与弹窗

app攻防-实战修改资源&去广告与弹窗

看这里,如果点击位置为3的话,会直接跳转到广告Activity而非ChallengeThird页面

app攻防-实战修改资源&去广告与弹窗

直接修改

app攻防-实战修改资源&去广告与弹窗

反编译安装后便可以直接跳转

2.去弹窗

接下来去掉版本更新的弹窗,大概这里会讲三种最常见方法

1.修改versioncode

app攻防-实战修改资源&去广告与弹窗

修改到最新版本即可完成不更新去除弹窗操作

2.Hook

这边有算法助手帮助我们弹窗定位进行自动化hook

app攻防-实战修改资源&去广告与弹窗

即可完成返回拒绝弹窗进行我们正常的app体验

当然我们也可以通过我们自己的frida代码去完成该项工作

首先打出弹窗堆栈信息

Java.perform(function () {
   var ad = Java.use('com.zj.wuaipojie.ui.ChallengeThird');

   // hook 普通方法
   ad.onCreate.implementation = function(obj){
       console.log("Hook start....");
       showStacks();
       return ; // 为hook的代码返回值,可以是当前方法,也可以是其他
  }

   function showStacks(){
       console.log(
           Java.use("android.util.Log")    //首先找到log类
          .getStackTraceString(              //调用log类的该方法
               Java.use("java.lang.Throwable").$new()      //new一个对象
          )
      )
  }
});

app攻防-实战修改资源&去广告与弹窗

试试看直接将第二个方法置空

app攻防-实战修改资源&去广告与弹窗

成功触发点入无弹窗

app攻防-实战修改资源&去广告与弹窗

3.修改dex代码

这里查看弹窗日志

app攻防-实战修改资源&去广告与弹窗

找到调用的堆栈

app攻防-实战修改资源&去广告与弹窗

复制方法名进行搜索方法名

app攻防-实战修改资源&去广告与弹窗

app攻防-实战修改资源&去广告与弹窗

最后调用show方法进行显示弹窗

那我们最简单的就是把show方法给他注释掉,有两个弹窗,把两个弹窗的show都给他注释掉

app攻防-实战修改资源&去广告与弹窗

app攻防-实战修改资源&去广告与弹窗

最后直接无弹窗

接下来还有个横幅广告需要我们进行处理

3.修改横幅广告

非弹窗类广告一般在xml文件中存在对应元素。因为其是被布置在ui中的,也就是说一般会被放在res资源目录下

打开开发助手,布局查看

app攻防-实战修改资源&去广告与弹窗

找到其hex值

app攻防-实战修改资源&去广告与弹窗

最终搜索到这里,那最简单的方式直接就是把这张图片设置为不可见

android:visibility="gone"

app攻防-实战修改资源&去广告与弹窗

打开第三关,成功去除

app攻防-实战修改资源&去广告与弹窗

0x04 总结

本期教学还是学到了不少,比如Activity的生命周期,弹窗广告标志性的show(),以及对应横幅广告在资源文件中该如何修改。

参考链接: 看雪论坛

原文始发于微信公众号(剑客古月的安全屋):app攻防-实战修改资源&去广告与弹窗

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月21日13:35:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   app攻防-实战修改资源&去广告与弹窗http://cn-sec.com/archives/3399902.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息