ios 逆向去除视频广告
作者:admin发布时间:2021-09-12分类:插屏广告浏览:评论:25
我们的大概方向是找到一些有关ad(广告)的方法,根据方法名猜测方法的作用,hook方法进行验证,在里面找了一些可疑方法进行hook,没生效。在的基类中进行同样的尝试,下面方法引起了我的注意,很有可能突破点就在这里
-(id)()()(_Bool)arg3isVip:(_Bool)arg4displayStyle:(int)arg5;//IMP=0x****d1e7e8
尝试了几下,目前还不清楚arg2、arg5的参数应该如何传递,以及返回值该如何构造,略显麻烦,暂时放弃这个方法。小黄书上说编写tweak通过hook相关方法查看日志是可以知道arg2、arg5、以及返回参数的,有兴趣的可以自己尝试。
再换个方向,可否直接修改全局的信息管理类、会员管理类?
查找userinfo、vip等关键词,在文件QLAdsBusiness,QLVideoDetailLinkageAdsHelper中hook了一些可疑方法,均以失败告终。
继续寻找,QLVipManager里面的几个方法让我有了一点兴奋,方法的作用是判断是否vip,T讯视频vip是自动跳广告的呀,说干就干,再试一把
cy#QLVipManager.prototype['isVipOrVipVisitor']=function(){returnYES};function(){returnYES}cy#QLVipManager.prototype['isValid']=function(){returnYES};function(){returnYES}cy#QLVipManager.prototype['isAnnualVipWithCache']=function(){returnYES};function(){returnYES}cy#QLVipManager.prototype['isVipOrVipVisitorWithCache']=function(){returnYES};function(){returnYES}cy#QLVipManager.prototype['isVipVisitorWithCache']=function(){returnYES};function(){returnYES}cy#QLVipManager.prototype['isVipWithCache']=function(){returnYES};function(){returnYES}
再尝试一下,广告已经去掉!
逆向方案
编写tweak
首先创建工程
➜theosProjectnic.plNIC2.0-NewInstanceCreator------------------------------[1.]iphone/activator_event[2.]iphone/application_modern[3.]iphone/application_swift[4.]iphone/flipswitch_switch[5.]iphone/framework[6.]iphone/library[7.]iphone/preference_bundle_modern[8.]iphone/tool[9.]iphone/tool_swift[10.]iphone/tweak[11.]iphone/xpc_serviceChooseaTemplate(required):10ProjectName(required):removeAdPackageName[com.yourcompany.removead]:com.pengyin.removeadAuthor/MaintainerName[whw]:whw[iphone/tweak]MobileSubstrateBundlefilter[com.apple.springboard]:com.tencent.live4iphone[iphone/tweak]Listofapplicationstoterminateuponinstallation(space-separated,'-'fornone)[SpringBoard]:live4iphoneInstantiatingiphone/tweakinremovead/...Done.
然后编辑tweak.x文件
%hookQLVipManager-(BOOL)isVipOrVipVisitor{returnYES;}-(BOOL)isValid{returnYES;}-(BOOL)isAnnualVipWithCache{returnYES;}-(BOOL)isVipOrVipVisitorWithCache{returnYES;}-(BOOL)isVipVisitorWithCache{returnYES;}-(BOOL)isVipWithCache{returnYES;}%end
最后
➜removeadmakepackageinstall
可能大家注意到我这里并没有指定targetip,targetport,是因为我将这些东西放到了环境变量里面,具体可参考:里面关于theos的模块儿
这样动态库就注入到app里面啦,畅享无广告的爽快,虽然我们hook的方法强制指定为会员,事实上vip视频还是看不了的(服务端做了认证)
第一次实践,还是感叹cycript的强大,感觉跟个狗杂一样的东西,包含OC、也有js,就是这样一个狗杂,就是这样强大,安利一波cycript官网
©著作权归作者所有,转载或内容合作请联系作者
相关推荐
你 发表评论:
欢迎- 插屏广告排行
- 最近发表
已有25位网友发表了看法: