当前位置:网站首页 > 插屏广告 > 正文

ios 逆向去除视频广告

作者:admin发布时间:2021-09-12分类:插屏广告浏览:评论:25


导读:我们的大概方向是找到一些有关ad(广告)的方法,根据方法名猜测方法的作用,hook方法进行验证,在里面找了一些可疑方法进行hook,没生效。在的基类中进行同样的尝试,下面方法引...

ios 逆向去除视频广告

我们的大概方向是找到一些有关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位网友发表了看法:

欢迎 发表评论:

插屏广告排行
最近发表
标签列表