吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

领取今日签到奖励
查看: 10819|回复: 198
上一主题 下一主题

[iOS 原创] iOS逆向-如何让抖音自动播放下一个视频(懒人癌)

    [复制链接]
跳转到指定楼层
楼主
发表于 2019-2-13 16:34 回帖奖励

痛点是什么?

  • 在做饭、锻炼等无法腾出双手的场景中,想刷刷抖音

  • 刷抖音的时候有太多的广告

如何解决痛点

  • 抖音自动播放下一个视频
  • 纯净模式
  • 通过设置页面进行开关控制

知识点:如何在逆向中快速获取block的参数信息

工具

过程

1. 在PP助手下载一个砸壳后的抖音ipa


2. 用MonkeyDev进行class-dump,获取到头文件


3. 在手机上运行起来

3.1 第一个问题来了,抖音做了逆向检测,强制弹框,跳转至App Store,如下图所示:

3.2 先去掉这个弹框

  • 思路1: 既然跳转到App Store,先hook - (BOOL)openURL:(NSURL*)url; 方法
  • 思路2: 在 UIAlertView 上动手脚
  • 思路3: 实在不行就算了,我不玩了还不行😅😅😅

3.3 上面的思路1和思路2都试过了,结果不行,最后还是用Reveal看看吧,看完之后,发现思路2猜对了80%,抖音只是用了UIAlertController,哭晕。。。😭😭😭

3.4 找对了目标,实现起来就很简单了,直接去掉这个弹框


4. 实现自动播放下一个视频

4.1 在手机上用FLEXible对抖音的播放界面进行分析,发现播放页面控制器为 AWEFeedTableViewController

4.2 查看对应头文件

4.3 首先映入眼帘的一个属性  @property(nonatomic) _Bool pureMode; ,这个就不用过多解释了,程序猿的命名套路,一试便知,果然正确,纯净模式搞定。

4.4 观察头文件,与播放下一个相关的方法有以下几个:

- (void)didReceiveAutoPlayNotification:(id)arg1;

- (void)playerItemDidReachEnd:(id)arg1;

- (void)transition_performCustomActionForSlideDirection:(unsigned long long)arg1 gestureRecognizer:(id)arg2;

- (long long)currentIndex;

4.5 尝试了上面提到的所有方法,均无果。最后的最后,灵机一动,发现视频播放器为 AWEAwemePlayVideoViewController ,那完全可以在这里发送通知,每个视频播放完的时候通知 AWEFeedTableViewController 播放下一个就可以了。Nice!这个过程很漫长,但在成功的一瞬间确实很有成就感。

4.6 验证上面的猜想,结果正确,这里用到了上面提到的:- (long long)currentIndex; ,获取当前index,然后播放下一个。

4.7 感想:方向若是错误,停止就是进步


5. 在设置界面,增加开关按钮,控制是否需要自动播放下一个,因为有时候需要看看评论,重复观看一个视频。

5.1 用FLEXible观察设置界面界面布局及其属性,发现设置界面的逻辑关系为:

  • AWESettingsTableViewController
  • AWEGeneralSettingViewModel
  • AWESettingSectionModel
  • AWESettingItemModel

5.2 AWESettingsTableViewController的父类 AWESettingBaseViewController 有一个方法名为: - (void)refreshView; 这个方法用来增加设置项最好不过。

5.3 这里涉及到一个很重要的知识点,就是快速获取block的参数信息。网上好多资料都是使用 debugserver + lldb 的方法,参考文章, 这种方法的缺点很明显:计算麻烦,需要配置,容易出错。我在逛论坛是无意间发现了一个更快捷的方法就是通过 CTObjectiveCRuntimeAdditions 快速获取block的参数信息。它的原理就是根据LLVM文档,把block重新实现了一遍,然后获取内部参数。

5.4 通过这种方法,发现AWESettingItemModel里的
@property(copy, nonatomic) CDUnknownBlockType switchChangedBlock; 参数信息:参数个数为 1, 类型为 BOOL, 参考文档,备注:第0个参数为系统自用,不予考虑。



5.5 综上所述,功能实现,效果展示:

6. GitHub地址

总结,引用《暗时间》里的一段话:

问题在想通了之后总是简单的,问题的困难程度不在于想通了之后还觉得有多难,而在于从你觉得它难到你觉得它简单需要耗费多少思维体力,你耗费的时间越长,说明有越多的人最终还是没有想明白(路越长走到底的人越少)。

点评

没玩过抖音这玩意  发表于 2019-3-11 15:51

免费评分

参与人数 40吾爱币 +41 热心值 +33 收起 理由
yinyuanchu + 2 感觉很厉害,虽然看不懂- -
xjluckyboy + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xsddl + 1 + 1 我很赞同!
Simon3748 + 1 + 1 用心讨论,共获提升!
qyhengda + 1 + 1 热心回复!
YES_HJS + 1 我很赞同!
采花门门主 + 1 用心讨论,共获提升!
绝世小熊猫 + 1 + 1 热心回复!
zgydsy + 1 + 1 用心讨论,共获提升!
指间流沙 + 1 我很赞同!
写在西元前 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
VipYang + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
确定性丧失 + 1 + 1 思路1和思路2都试过以后居然没有直接用思路3!
铁汉柔情 + 1 + 1 科技本就是为懒人准备的,给你赞!
挑灯看花 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
沉迷学习 + 1 + 1 我竟然看懂了思路
John_LIU + 1 + 1 谢谢@Thanks!
一筐萝卜 + 1 + 1 我很赞同!
cxliuping + 1 + 1 我很赞同!
cqe5210 + 1 + 1 用心讨论,共获提升!
牛仔走天下 + 1 + 1 谢谢@Thanks!
涛之雨 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
RoB1n_Ho0d + 1 谢谢@Thanks!
追梦de鹏 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
逮猪七段 + 1 我很赞同!
mimimimimimi + 1 我很赞同!
chic-vin + 1 + 1 虽然自己不用IOS,但是思路还是很有用的
yznhysf + 1 + 1 我很赞同!
samkong + 1 + 1 我很赞同!
kentish + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
cheng941112 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
gunxsword + 1 + 1 谢谢@Thanks!
执着№ + 1 + 1 我很赞同!
Viii + 1 + 1 谢谢 @Thanks!
玩世不攻 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wmsuper + 3 + 1 谢谢@Thanks!
独行风云 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
青烟绕指柔丶 + 1 + 1 谢谢@Thanks!
caijunqill + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
王小劣 + 1 + 1 我很赞同!

查看全部评分

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

推荐
 楼主| 发表于 2019-2-13 16:35 |楼主
本帖最后由 nododo1027 于 2019-2-14 16:22 编辑

说点题外话,本人是靠混水区升级过的,后来积分规则调整又降级了,于是过年期间憋了这篇文章,大家多多交流,顺便评个分就更好不过了~

点评

很有用,第一次学习苹果反编译  发表于 2019-2-14 22:42

免费评分

参与人数 2热心值 +2 收起 理由
统列 + 1 我很赞同!
wwh1004 + 1 好像你差1分升级

查看全部评分

推荐
发表于 2019-2-14 00:24
问题在想通了之后总是简单的,问题的困难程度不在于想通了之后还觉得有多难,而在于从你觉得它难到你觉得它简单需要耗费多少思维体力,你耗费的时间越长,说明有越多的人最终还是没有想明白(路越长走到底的人越少)。
4#
发表于 2019-2-13 16:59
5#
发表于 2019-2-13 16:59
看到懒人癌的我自动滚了进来~
6#
发表于 2019-2-13 17:07
本帖最后由 王小劣 于 2019-2-13 17:31 编辑

很不错,支持楼主.

另外学习到了获取Block 的参数的简便方法 感谢.
7#
发表于 2019-2-13 17:19
虽然看不懂还是要赞一个
8#
发表于 2019-2-13 17:25
。。。。懒到家了
9#
发表于 2019-2-13 17:30
感谢分享
10#
发表于 2019-2-13 17:55
虽然看不懂还是要赞一个
11#
发表于 2019-2-13 18:18
很赞同楼主说的最后一句话,同时也学习了心得思路,感谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则


免责声明:
吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Service@52PoJie.Cn

快速回复 收藏帖子 返回列表 搜索

RSS订阅|手机版|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2019-3-20 15:45

Powered by Discuz!

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表