写在前面的话 罗列下本次逆向要使用的几个工具

  • MonkeyDev 或者IPAPatch
  • HookZz

事情起源

  • 最近我的朋友圈充满了世界杯!几乎每个伪球迷都在刷直播世界杯!还有热心的朋友发出了世界杯直播的App(央视影音 iOS)链接!点进去看了一下,但是看直播之前需要先看长达60秒的广告。作为iOS逆向爱好者,决定为广大球迷做点儿力所能及的事情----那就是去掉广告

  • 带60广告的证据图

下面简单说下逆向过程和思路

思路

  • 因为只是给央视影音App去广告!所以思路很简单(把广告相关的对象置为空即可)

逆向过程

第一步 动态分析

  • 使用HookZZ的objc_msgSend模块 打印函数调用
  • 只关注Ad开头的类
  • 下面是相关代码
void objc_msgSend_pre_call(RegState *rs, ThreadStackPublic *ts, CallStackPublic *cs, const HookEntryInfo *info) {char *selector = (char *)rs->ZREG(1);id tmpObject = (id)rs->ZREG(0);Class tmpClass  = object_getClass(tmpObject);if (!tmpClass)return;const char *className               = class_getName(tmpClass);if (!strstr(className, "Ad") && !strstr(className, "Home")) {return;}memset(decollators, '-', 512);if (ts->size * 3 >= 512)return;decollators[ts->size * 3] = '\0';printf("[OCMethodMonitor|%ld] %s [%s %s]\n", ts->thread_id, decollators, className, selector);
}
复制代码
  • 简单展示下这个HookZz的objc_msgSend模块打印出来的内容

    • CNAdPlayerView
[OCMethodMonitor|7341845312] --- [CNAdPlayerView beatHandleForTime:]
[OCMethodMonitor|7341845312] ------ [CNAdPlayerView adTime]
[OCMethodMonitor|7341845312] ------ [CNAdPlayerView setSurplusSec:]
[OCMethodMonitor|7341845312] --------- [CNAdPlayerView adPlayerUIKit]
[OCMethodMonitor|7341845312] ------ [CNAdPlayerView queuePlayer]
[OCMethodMonitor|7341845312] ------ [CNAdPlayerView indexForPlayerItem:]
[OCMethodMonitor|7341845312] --------- [CNAdPlayerView playItems]
[OCMethodMonitor|7341845312] --------- [CNAdPlayerView playItems]
[OCMethodMonitor|7341845312] ------ [CNAdPlayerView playerEventType:value:]
[OCMethodMonitor|7341845312] --------- [CNAdPlayerView delegate]
[OCMethodMonitor|7341845312] --------- [CNAdPlayerView delegate]
[OCMethodMonitor|7341845312] --------- [CNAdPlayerView delegate]
[OCMethodMonitor|7341845312] ------ [CNAdPlayerView playDelayTime]
[OCMethodMonitor|7341845312] --------- [CNAdPlayerView adPlaying]
[OCMethodMonitor|7341845312] --------- [CNAdPlayerView adTimeout]
复制代码
  • AdsameBannerView

[OCMethodMonitor|7341845312] ------------ [AdsameBannerView alloc]
[OCMethodMonitor|7341845312] ------------ [AdsameBannerView initWithFrame:]
[OCMethodMonitor|7341845312] --------------- [AdsameBannerView setClipsToBounds:]
[OCMethodMonitor|7341845312] --------------- [AdsameBannerView setSlotStr:]
[OCMethodMonitor|7341845312] --------------- [AdsameCubeMaxSDK sharedSDK]
[OCMethodMonitor|7341845312] --------------- [AdsameCubeMaxSDK def_volume]
[OCMethodMonitor|7341845312] --------------- [AdsameCubeMaxSDK sharedSDK]
[OCMethodMonitor|7341845312] --------------- [AdsameCubeMaxSDK m_isMute]
[OCMethodMonitor|7341845312] --------------- [AdsameBannerView setIsOrderedBannerPaused:]
[OCMethodMonitor|7341845312] ------------ [AdsameBannerView setIsUsingCache:]
[OCMethodMonitor|7341845312] ------------ [AdsameBannerView setCId:]
[OCMethodMonitor|7341845312] ------------ [AdsameBannerView setSlotStr:]
[OCMethodMonitor|7341845312] ------------ [AdsameBannerView setIsUserExposure:]
[OCMethodMonitor|7341845312] ------------ [AdsameBannerView setParentSDK:]
[OCMethodMonitor|7341845312] ------------ [AdsameBannerView setDelegateBanner:]
[OCMethodMonitor|7341845312] ------------ [AdsameBannerView setIsRetina:]复制代码
  • 还有其它一些带Ad的类就不一一列举了

第二步 编写hook代码

  • 按照之前的思路把Ad相关的类的初始化代码返回nil
// See http://iphonedevwiki.net/index.php/Logos#import <UIKit/UIKit.h>//AdsameBannerView%hook AdsameBannerView
- (AdsameBannerView*)initWithFrame:(id)arg1{return nil;
}
%end%hook CNAdPlayerView-(CNAdPlayerView*)initWithFrame:(id)arg1{return nil;
}
%end%hook CNADPlayerUIKit
-(CNADPlayerUIKit *)initWithFrame:(id)arg1{return nil;
}
%end%hook AdMasterMobileTracking
+(id)sharedInstance{return nil;
}
-(AdMasterMobileTracking*)init
{%log;return nil;
}
%end复制代码

第三步 打包重签

  • MonkeyDev 或者 IPAPatch 用的第一个,第二个也是可以的

最后再附上去掉广告的IPA链接()

yuzhouheike.0a6j.cn/YSYY.ipa

git源码 https://github.com/yuzhouheike/HookZz-Learn

最后的最后

  • 感谢您在百忙之中看我的文章

最后送你一个支付宝红包

  • 打开支付宝首页搜索“8074157”,即可领红包

逆向世界杯直播App 央视影音-iOS客户端相关推荐

  1. [简单逆向]某直播APP 收费直播链接获取-AES解密

    故事的由来 图片看到有人在推广所谓的"不花钱"APP(但是实际上并不是免费) 下载了试了试,如果都一个样的APP 不过这个APP稍微简单点..几秒就定位到了 [健康生活,远离黄赌毒 ...

  2. 婚恋交友约会app源码一对一一对多直播APP源码+android客户端+java服务端源码

    一对一直播"它是移动直播时代的产物,随着5G移动互联网时代的到来,和智能手机普及化,以前被压抑的全民直播需求,尚需一个引爆点引爆,一对多的直播模式已不能满足大众的需求,他们渴望更多的互动性与 ...

  3. 直播APP源码iOS 调用系统铃声震动

    首先必须引入 AVFoundation #import <AVFoundation/AVFoundation.h> //震动反馈 if (@available(iOS 10.0, *)) ...

  4. 直播软件开发IOS直播客户端SDK,视频直播APP源码【开源】

    当前视频直播非常火爆,手机端的视频直播也非常火爆,PGC.UGC的视频直播门槛都降低了很多. 本文介绍一个:IOS 客户端直播的SDK,代码完全开源. 直播时代:让IOS普通开发者一天内做出一个RTM ...

  5. 央视影音 服务器暂时无法连接服务器,央视影音APP播放不了怎样办 打开不知道决办法...

    软件安装:手机应用宝 随着科技的发展,手机在我们的生活中扮演了很重要的角色,手机在便利我们生活的同时,也会对我们造成很重要的影响.手机已经成为了我们的必需品,不仅是通讯工具,而且很大程度上都是娱乐功能 ...

  6. 华为鸿蒙版央视影音,再见安卓!鸿蒙版京东App上架华为商城:正式版最快6月见...

    新酷产品第一时间免费试玩,还有众多优质达人分享独到生活经验,快来新浪众测,体验各领域最前沿.最有趣.最好玩的产品吧~!下载客户端还能获得专享福利哦! 5月14日消息,今日,根据网友反馈,鸿蒙版京东Ap ...

  7. 逆向某某单车-iOS客户端

    写在前面的话 事情起源 朋友圈看到一则消息.大概意思就是某某土豪,为了表白萌妹"赵千萌".所以使当地的哈罗单车iOS客户端上面用户附近的车辆图标显示为他自己的图片.图片上面写着 赵 ...

  8. 完整的iOS直播app

    今年移动直播行业的兴起,诞生了一大批网红,甚至明星也开始直播了,因此不得不跟上时代的步伐,由于第一次接触的原因,因此花了很多时间了解直播,整理了直播的原理,希望能帮助到更多的人更快的了解直播. 一.个 ...

  9. iOS直播app原理

    一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通 ...

最新文章

  1. Java连接Oracle数据库常用方法
  2. 二位数组的子数组最大值
  3. 发布一个定制的webpart:R***eader
  4. 指定结构体字节对齐方式
  5. 清华大学保研笔试题目及解答
  6. 幼儿园带括号算式口诀_这么全的小学数学速算技巧、口诀不多见,教给孩子挺不错!...
  7. 电脑小常识:电脑键盘失灵怎么办?
  8. ​易生信-宏基因组2020 积微学术论坛:基于大数据整合准确预测土壤的枯萎病发生...
  9. c语言常用算法分析 微盘,C语言常用算法归纳.pdf
  10. mybatis mysql schema_学习Mybatis与mysql数据库的示例笔记
  11. 图解Raft:应该是最容易理解的分布式一致性算法
  12. python单例模式数据库连接池_《java设计模式》一文带你了解单例模式
  13. Mysql客户端的安装
  14. ORACLE ORA-01000: 超出打开游标的最大数(解决及原因)
  15. 深入了解FileNet
  16. ACM竞赛题目6:身高排序
  17. 为什么有的锂电保护板需要激活之锂电池保护板怎么激活
  18. ​有哪些比较好的录制游戏视频软件​,游戏录屏软件哪个好用
  19. 什么是微信公众平台、微信开放平台?它们之间又有什么区别?
  20. NetBeans IDE使用方法

热门文章

  1. ubuntu查看cudnn是否安装成功_查看cudnn是否安装
  2. codechef November Challenge 2017解题报告
  3. Linux、Windows常见端口号大全
  4. 占书明:outlook发邮件时提示“出现意外错误”的原因及解决办法!
  5. 在线数值计算 wolframalpha
  6. 迭代器模式--更高、更快、更强(行为模式09)
  7. 负重阳光城之悬崖边的股价|一点财经
  8. Open Live Writer的配置
  9. 目标检测之R-CNN
  10. 折腾 NeoVim 和 SpaceVim