
由于這是第四篇文章:細節(jié)偏少了。主講過程,思路截然相同。
視頻的app偏復(fù)雜,有點運氣成分,也像是必然的事情。
1.查找對應(yīng)的View和ViewController.
1.1打開reveal->找到相關(guān)view

1.2通過nextResponder找到viewController

1.3在頭文件中搜索相關(guān)文件

在YTEngineControllerView時有個YTEngineController.h
打開看看,發(fā)現(xiàn)skipAd和skipCurrentAd

2.分析YTEngineController中的skip方法
skipAd參數(shù)是個int類型,沒什么說的。skipCurrentAd通過lldb來查找arg1類型



斷點打上,發(fā)現(xiàn)怎么都不走,換上會員賬號,應(yīng)該能跑到斷點吧,發(fā)現(xiàn)依然沒有走。思路好像有點問題,也有點迷茫。
3.再次分析view結(jié)構(gòu)

這次找到XAdEngineVideoAdView,打開頭文件

這次對上了一些苗頭,可以用cript測試下。發(fā)現(xiàn)好容易崩潰,動不動就閃退。有點迷,難道優(yōu)酷有防止反編譯手段嗎?
然后就直接tweak測試了,發(fā)現(xiàn)怎么修改都沒什么用。只是UI上做了些修改。無濟于事
我又觀察到了這個類XAdEnginePreAdModule,發(fā)現(xiàn)它是繼承自XAdEngineVideoAd
當(dāng)你搜索XAdEngineVideoAd時

這個意思看的很明顯了,前中后廣告嗎?哈哈,打開看看

這個方法很是亮眼不是嗎?lldb調(diào)起來,看看arg1是什么?


你看到了什么,廣告,XAdEnginePlayerAdItem.
我試過修改XAdEnginePlayerAdItem各種參數(shù),依然沒有效果。
我最后想想如果直接[arg1 removeAllObjects];是怎么樣?最后是成功的,哈哈。結(jié)局就是這么意外,抱歉啊,優(yōu)酷。
3.編寫Tweak
加申明不過10行代碼,是不是簡單不過。
@interface XAdEnginePreAdModule:UIView
@end
%hook XAdEnginePreAdModule
- (void)getADInfo:(NSMutableArray *)arg1{
[arg1 removeAllObjects];
%orig;
}
%end
總結(jié):優(yōu)酷的層級還是很復(fù)雜的,逆向重在分析,只要分析正確,編寫tweak是很簡單的。喜歡的朋友可以點個贊,有任何問題歡迎留言評論,志同道合的朋友可以一起學(xué)習(xí)。
iOS逆向?qū)崙?zhàn)一:實現(xiàn)按下home鍵截屏,如何使用hook的對象屬性
iOS逆向?qū)崙?zhàn)二:微信聊天界面實現(xiàn)飄氣球效果
iOS逆向?qū)崙?zhàn)三:修改微信錢包零錢
iOS逆向?qū)崙?zhàn)四:去優(yōu)酷廣告