实战去除广告

    去除OplayerLite广告提示-越狱机

    最近在学习逆向相关的实践+踩坑, 庆哥的视频中一个课程是对于OPlayerLite进行进行广告处理了, 因为是去年的课程App也更新了逻辑, 我沿着先辈的道路把坑撸了一把, mark这场一天一夜的战斗.

    分析层级结构

    定位目标对象

    连接到越狱机(切换到无网络模式, 因为Oplayer lite有网络的时候加载的广告是不同的,不利于分析), 同时点击任意视频,进入到视频播放页面, 我们会看到广告的view,上面有一行文本”Buy the full version to remove ads?”
    这时候我们连接到cycript打印下层级:

    UIApp.keyWindow.recursiveDescription().toString()
    


    由于我已去除了过了,又从App Store重新下载, 发现还是没有广告,图片暂时就没哈
    其中有引起我们注意的层级是:

    |    |    | >
    |    |    |    | >
    |    |    |    |    | >
    |    |    |    | >
    

    其中UILabel: 0x176b1380中的text属性跟我们看到的ads上是一样的,它的同级view是UIButton, 父view是UIView .
    因为咱们要解决的目标是view, 尤为关注是这里的frame.size, 它们都是320 50, label也是height=50. 把这部分截图保存下来,待会查找的时候需要用到

    正向分析设计

    划重点: 从正向的开发的角度, 分析它是如何设计的

    如果是我开发君, 我的伪代码大概如下

    if  (!payBuyFullViersion)  {
        AdsView *adsview =  [[AdsView alloc] init];
        [self.palyerView addSubview:adsview]
    }
    

    可能其他的逻辑未必跟我符合. 但是一定必然的是, 这个adsView 必须是addSubview上去的,addSubview是UIKit中view的方法, 咱们需要静态分析这个地址, 通过断点来查看它对应的调用者/参数, 从而拿到地址,来定位到OplayerLite

    Nov 24, 2017
    reverseEngineering