ios逆向相关iOS 逆向iOS逆向工程

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

2019-07-10  本文已影响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逆向实战四:去优酷广告

上一篇下一篇

猜你喜欢

热点阅读