iOS逆向实战四:去优酷广告

作者: 某非著名程序员 | 来源:发表于2019-07-10 23:26 被阅读15次
    实现效果

    由于这是第四篇文章:细节偏少了。主讲过程,思路截然相同。
    视频的app偏复杂,有点运气成分,也像是必然的事情。

    1.查找对应的View和ViewController.

    1.1打开reveal->找到相关view

    视频广告页

    1.2通过nextResponder找到viewController

    nextResponder查找

    1.3在头文件中搜索相关文件

    在.h文件中搜索

    在YTEngineControllerView时有个YTEngineController.h
    打开看看,发现skipAd和skipCurrentAd


    YTEngineController.h

    2.分析YTEngineController中的skip方法

    skipAd参数是个int类型,没什么说的。skipCurrentAd通过lldb来查找arg1类型


    image list 查找偏移地址 查找skipCurrentAd偏移地址
    skipCurrentAd偏移地址

    断点打上,发现怎么都不走,换上会员账号,应该能跑到断点吧,发现依然没有走。思路好像有点问题,也有点迷茫。

    3.再次分析view结构

    view结构

    这次找到XAdEngineVideoAdView,打开头文件


    XAdEngineVideoAdView.png

    这次对上了一些苗头,可以用cript测试下。发现好容易崩溃,动不动就闪退。有点迷,难道优酷有防止反编译手段吗?
    然后就直接tweak测试了,发现怎么修改都没什么用。只是UI上做了些修改。无济于事

    我又观察到了这个类XAdEnginePreAdModule,发现它是继承自XAdEngineVideoAd

    当你搜索XAdEngineVideoAd时

    在.h搜索XAdEngineVideoAd
    这个意思看的很明显了,前中后广告吗?哈哈,打开看看 getADInfo
    这个方法很是亮眼不是吗?lldb调起来,看看arg1是什么? IDA查找getADInfo
    arg1参数

    你看到了什么,广告,XAdEnginePlayerAdItem.
    我试过修改XAdEnginePlayerAdItem各种参数,依然没有效果。

    我最后想想如果直接[arg1 removeAllObjects];是怎么样?最后是成功的,哈哈。结局就是这么意外,抱歉啊,优酷。

    3.编写Tweak

    加申明不过10行代码,是不是简单不过。

    @interface XAdEnginePreAdModule:UIView
    @end
    
    %hook XAdEnginePreAdModule
    - (void)getADInfo:(NSMutableArray *)arg1{
        [arg1 removeAllObjects];
        %orig;
    }
    %end
    

    总结:优酷的层级还是很复杂的,逆向重在分析,只要分析正确,编写tweak是很简单的。喜欢的朋友可以点个赞,有任何问题欢迎留言评论,志同道合的朋友可以一起学习。

    iOS逆向实战一:实现按下home键截屏,如何使用hook的对象属性
    iOS逆向实战二:微信聊天界面实现飘气球效果
    iOS逆向实战三:修改微信钱包零钱
    iOS逆向实战四:去优酷广告

    相关文章

      网友评论

        本文标题:iOS逆向实战四:去优酷广告

        本文链接:https://www.haomeiwen.com/subject/idsqkctx.html