zoukankan      html  css  js  c++  java
  • APP去广告简单分析:

     

    工具:

    Android killer 1.3

    DDMS  (版本未知)

          夜神模拟器

       

    在游戏登录和注册页面,我们可以看到登录界面中被别人插播了广告,本文的目的就是将其去掉。

     

     

    思路分析:

    1.如果该广告是读取资源中的图片加载到对话框(或者其他控件)的话,我们只需要替换一张新的图片进去,重新打包签名即可。

    2.如果不是加载的本地资源,那么就是从网络传输过来的一个图片,然后加载

     

    过程:

    拖到android killer进行反编译:

     

    在资源文件中一番查找过后,在res/drawable-hdpi-v4 文件夹中查看到跟log一样的图片

      

    尝试第一种方法,新建一个空白的图片在资源管理器里进行替换:

     

    使用android killer重打包:

     

    apk拖到模拟器进行安装,接着运行:(注意:安装apk前需要卸载原有的apk,如不卸载原有的apk,该包名已存在,不能覆盖安装)

     

    Log还存在,说明这个log应该是通过网络传输进行动态替换的,既然是动态替换,那么首先要确定的是该图片是加载在什么控件上面的,这样才能够准确的找到加载的图片的函数;

     

    这个时候,我们就可以借助DDMS中的 Dump View Hierarchy for UI Automator(以下简称Dump UI) 功能去得到布局的属性,如下图: 在虚拟机打开改程序的登录界面,使用ddms点击dumpUI 获取到布局属性(如下图),得到图片是设置在imageView上面的,并且资源idiv_logo ,

     

    接着到android killer 进行搜索,搜索到两处引用了该id的地方:

      

    双击到关键代码处,使用jd-jui查看源码:

     

    查看源码关键代码分析出handleMessage函数大概功能为:

        由外部传消息进来,进行判断并执行:

            消息1:设置本地资源文件中的图片为背景(drawable/ct

            消息0:获取一个网络的图片

            消息(其他):设置paramAnonymousMessage.obj为背景

     

    大概加载的过程就是,先获取网络图片,然后getInternetPicture函数再发送(其他)消息(case没有定义2,所以2为其他消息)到handleMessage函数设置背景

     

    getInternetPicture函数:

    发送网络请求,获取图片资源;

    通过发送消息的方法设置控件背景(广告图片)

     

    查看另一点关键点,其中代码跟与上面基本一致,可判断为注册页面的加载代码,这里不再做重复性的解释。

     

    getInternetPicture函数:

     

     

    分析至此,我们已经大概明白了广告图片的一个加载流程了,接下来把广告去掉

    思路:修改smali代码将getInternetPicture和函数直接RET,获取不到网络图片,这样加载的就是我们本地的“ct”图片为背景了

     

    LoginView处添加smali代码:

          

    RegisterView处添加RET代码

      

    使用android killer重打包:

     

    拖到模拟器中运行确认结果:

    登录界面:

     

    注册界面:

     

    Ok,测试成功,广告成功被干掉了!!

    笔者还有点想说的是:在中间使用Dumu UI工具查看到布局信息的时候,其实我们还可以在布局XML文件中修改该控件的大小,以达到隐藏的作用,不过那样子后面的控件位置就会发生问题,如果没有这个方面的要求,修改XML文件更加神速

     


     

     

     

     

     

  • 相关阅读:
    安装浏览器的vue插件
    webpack学习笔记-2-file-loader 和 url-loader
    webpack4.x最详细入门讲解
    简单地使用webpack进行打包
    vue动态监听浏览器窗口高度
    Vue 中 export及export default的区别
    vue 路由懒加载 resolve vue-router配置
    javascript深入理解js闭包
    JS截取字符串常用方法详细整理
    糗事之 -- 用ssh公钥实现免密码登录
  • 原文地址:https://www.cnblogs.com/ddms/p/9034720.html
Copyright © 2011-2022 走看看