当前位置:网站首页 > 横幅广告 > 正文

ios越狱 iOS 9 2

作者:admin发布时间:2021-07-10分类:横幅广告浏览:评论:2


导读:查看控制器头文件相关信息#""#""@,;@{_Bool_adsStartPlay;UIView*_adTimeCountView;}@property(nonatomic)_...

ios越狱 iOS 9 2

查看控制器头文件相关信息

#""#""@,;@{_Bool_adsStartPlay;UIView*_adTimeCountView;}@property(nonatomic)_BooladsStartPlay;//@synthesizeadsStartPlay=_adsStartPlay;@property(retain,nonatomic)UIView*adTimeCountView;//@synthesizeadTimeCountView=_adTimeCountView;-(void).cxx_destruct;-(_Bool)didReceivePageLoadQNBVideoInfo:(id)arg1;-(_Bool)didReceiveStop:(id)arg1;-(_Bool)didReceiveRequestShowADCountView:(id)arg1;-(_Bool)didReceiveADStateChange:(id)arg1;-(_Bool)didReceiveUITipsBarStateChange:(id)arg1;-(_Bool)didReceivePluginNetworkReachabilityChange:(id)arg1;-(_Bool)didReceivePlayerStateChange:(id)arg1;-(_Bool)didReceiveUIScreenModeChange:(id)arg1;-(_Bool)didReceiveAdsPlayStateChange:(id)arg1;-(void)hideADTimeCountView;-(void)showADTimeCountView;-(double)playerSafeAreaHorizonPadding;-(void)backBtnClicked:(id)arg1;-(void)showAdsView;-(void)updateBackButton;-(id)videoAdsSuperView;-(void)viewDidLoad;-(id)rootView;-(void)viewWillAppear:(_Bool)arg1;-(void)viewWillLayoutSubviews;-(void)loadView;//Remainingproperties@property(readonly,copy)NSString*debugDescription;@property(readonly,copy)NSString*description;@property(readonly)unsignedlonglonghash;@property(readonly)Classsuperclass;@end

6.分析这个控制器,发现这个控制器名称是带有ads的控制器,猜测播放广告的控制器和播放视频的控制器是分开的,尝试在init方法返回nil;发现此类没有init初始化方法,查看父类QNBBasePlayerViewController

#import"UIViewController.h"#import"QNBBasePlayerViewControllerEventDelegate.h"#import"QNBEventDelegate.h"@classNSMutableArray,NSObjectQNBEventProxy,NSString,QNBPlayerInfo;@interfaceQNBBasePlayerViewController:UIViewControllerQNBEventDelegate,QNBBasePlayerViewControllerEventDelegate{_Bool_alreadyAddToParent;QNBPlayerInfo*_playerInfo;QNBBasePlayerViewController*_parentEventController;UIViewController*_parentUIController;UIViewController*_pageViewController;NSMutableArray*_childEventControllers;SEL_interceptReceiveSEL;NSObjectQNBEventProxy*_proxy;}@property(nonatomic)_BoolalreadyAddToParent;//@synthesizealreadyAddToParent=_alreadyAddToParent;@property(nonatomic)__weakNSObjectQNBEventProxy*proxy;//@synthesizeproxy=_proxy;@property(nonatomic)SELinterceptReceiveSEL;//@synthesizeinterceptReceiveSEL=_interceptReceiveSEL;@property(retain,nonatomic)NSMutableArray*childEventControllers;//@synthesizechildEventControllers=_childEventControllers;@property(nonatomic)__weakUIViewController*pageViewController;//@synthesizepageViewController=_pageViewController;@property(nonatomic)__weakUIViewController*parentUIController;//@synthesizeparentUIController=_parentUIController;@property(nonatomic)__weakQNBBasePlayerViewController*parentEventController;//@synthesizeparentEventController=_parentEventController;@property(nonatomic)__weakQNBPlayerInfo*playerInfo;//@synthesizeplayerInfo=_playerInfo;-(void).cxx_destruct;-(void)excuteEvent:(id)arg1forEventNode:(id)arg2;-(id)didReceivePlayerEventInUI:(id)arg1;-(void)shouldSetConstraintsForViews;-(void)shouldSetupViews;-(void)addChildEventController:(id)arg1;-(void)addToParentViewController;-(void)viewDidLayoutSubviews;-(id)eventProxy;-(id)initWithEventProxy:(id)arg1withPlayerInfo:(id)arg2withParentViewController:(id)arg3withPageViewController:(id)arg4withAddToParenViewControllerNow:(_Bool)arg5;-(id)initWithEventProxy:(id)arg1withPlayerInfo:(id)arg2withParentViewController:(id)arg3withParentEventViewController:(id)arg4withAddToParenViewControllerNow:(_Bool)arg5;-(id)initWithEventProxy:(id)arg1withPlayerInfo:(id)arg2withParentViewController:(id)arg3withAddToParenViewControllerNow:(_Bool)arg4;-(id)initWithEventProxy:(id)arg1withPlayerInfo:(id)arg2withParentViewController:(id)arg3withParentEventViewController:(id)arg4;-(id)initWithEventProxy:(id)arg1withPlayerInfo:(id)arg2withParentViewController:(id)arg3;//Remainingproperties@property(readonly,copy)NSString*debugDescription;@property(readonly,copy)NSString*description;@property(readonly)unsignedlonglonghash;@property(readonly)Classsuperclass;![ads.jpeg](https://upload-images.jianshu.io/upload_images/987457-05a76618e9d0b86c.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)@end

7.发现有5个init开头方法,编写去除QNBPlayerVideoAdsViewController控制器的代码

%hookQNBPlayerVideoAdsViewController-(id)initWithEventProxy:(id)arg1withPlayerInfo:(id)arg2withParentViewController:(id)arg3withPageViewController:(id)arg4withAddToParenViewControllerNow:(_Bool)arg5{returnnil;}-(id)initWithEventProxy:(id)arg1withPlayerInfo:(id)arg2withParentViewController:(id)arg3withParentEventViewController:(id)arg4withAddToParenViewControllerNow:(_Bool)arg5{returnnil;}-(id)initWithEventProxy:(id)arg1withPlayerInfo:(id)arg2withParentViewController:(id)arg3withAddToParenViewControllerNow:(_Bool)arg4{returnnil;}-(id)initWithEventProxy:(id)arg1withPlayerInfo:(id)arg2withParentViewController:(id)arg3withParentEventViewController:(id)arg4{returnnil;}-(id)initWithEventProxy:(id)arg1withPlayerInfo:(id)arg2withParentViewController:(id)arg3{returnnil;}%end

结果发现广告页面是没有显示出来,但是还是广告的声音却仍然在播放;播放按钮无法点击,进度条也无法快进,播放下一集的按钮全屏以及其他按钮都可以用,广告控制器都置为nil了,谁在播放广告声音呢?

8.再次查看Reveal,QNBPlayerImageAdsViewController

QLVideoDetailViewController

猜测应该是真正视屏内容播放器

经过多次尝试,终于找到播放广告声音的控制器TADVideoAdController

%hookTADVideoAdController-(id)init{returnnil;}%end

这样就完美实现了去除广告

标签:苹果越狱手机视频去广告插件


已有2位网友发表了看法:

欢迎 发表评论: