吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7364|回复: 36
收起左侧

[iOS 原创] iOS每日瑜伽逆向分析

  [复制链接]
Bruce_HD 发表于 2020-8-14 21:32
起因:飘大大的《iOS应用逆向与安全之道》购买地址:https://u.jd.com/kIhzMK
在多年前看了狗神的小黄书1和2,接着后面庆总的小猴子书。到现在飘大大的绿苹果书,让我又激起了心中欲望。心里非常之痒痒的,找个小目标练练手。在这里非常的感谢他们分享了很多安全知识和iOS迷幻之处。多的话就不说了。接下来开始我们的分享。

1. 基本步骤和准备工具就不细说了。比如在电脑、手机、App Store下载App、脱壳、class-dump、恢复符号表、xxx工具静态分析、xxx动态调试等等,都按自己习惯来,如果小白什么都不懂建议根据上面购买地址买本书学习一下。

2. 因为App不是VIP很多瑜伽视频不能观看。那么我们就看看能否通过对App的分析到达非VIP也可以观看呢?

3. 我们开始入手。先class-dump导出头文件。通过猜想大胆的分析一下,是不是应该和isVip字段有关。把头文件放在Xcode方便搜索。

4. 通过搜索得到比较多的类有此属性和方法,找一个可能性比较大的类做hook分析一下,发现YGUser和用户有关可能性极大,万一所有需要VIP地方都是判断此YGUser  isVip呢?那不就简单一下搞定。(结果查看各种VIP视频不行😂,但在个人页生效)。

5. 那我们就换个思路不盲目的挨个类分析isVip了。我们从界面入手。如下图:

1

1


6. 通过上图我们分析底部有个按钮为(成为会员解锁),猜想一下如果我们是VIP那应该不会有这个按钮了吧。不然还显示成为会员这不是有问题嘛。那么我们按照这个猜想找到对应的视图,通过视图找到控制器(通过Xcode或FLEXible)。找到对应的YGButton和YGPlanDetailViewController。继续按照猜想走,肯定有步骤是会员的情况就不会创建这个YGButton会员按钮。这下我们看看这个控制器viewDidLoad里面做了什么事(不一定在此方法里面控制会员按钮是否创建)。通过静态分析得知:看了我们运气挺好的就在viewDidLoad方法里面就找到关键信息congfigVipInfo,如下图伪代码(伪代码不一定都正确,多多结合汇编代码分析):

2

2


7. 然后我们再来分析congfigVipInfo里面做了什么,得知:[YGCacheHandler getUserConfigInfo]获取用户配置信息来创建会员按钮信息,顺便看看YGCacheHandler没有特别信息,发现也没有重要信息,那我们就 hook getUserConfigInfo 返回空信息(看自己使用方式hook),这时没getUserConfigInfo信息就不会有会员按钮而是出现加入计划按钮,如下图伪代码:

3

3

4

4


8. 然后我们点击加入计划按钮会出现弹窗,(其实点击上面cell第1节...第n节也会出现),定位点击事件didClickedStartButton(节约时间具体咋定位就不细说了都是简单的操作),那我们继续分析点击加入计划按钮的逻辑,如下图:

5

5

6

6


9. 如第8步骤得知(顺便通过对YGSingleton分析看能不能就此完成非VIP查看视频,但是不能,所以过掉滤此处细节)从YGSingleton获取user信息,在通过sid查看是否登录的用户,如果都有值不就弹登录窗。如果sid有值就走 YGPlanDetailViewController startPlanIsResume:fromVideoPlayer: 我们继续分析startPlanIsResume:fromVideoPlayer: 如下图:

7

7


10. 如9步骤也是校验了一遍sid,是否走-[YGBaseViewController skipToLogin:](登录弹窗)。接下来就是要准备播放视图。关键点就在-[YGPlanDetailViewController plan]。分析得到YGPlan计划的等等信息,重要信息有isVip,是否加入计划joinEnable。自己在举一反三通过第4步搜索全部isVip 按照刚刚分析思路YGCourse课程也是如此。

8

8


11. 总结:hook getUserConfigInfo返回nil,YGCourse和YGPlan的isVip和joinEnable返回YES。就此非VIP查看就没有各种限制。再给个彩蛋就是视频URL可以手机、电脑下载或者电脑浏览器播放方便观看。通过YGCourse获取此字段cnVideoURL = "https://bsycdn.dailyyoga.com.cn/face21554797515237"(具体自己可以分析一下哦)。

12. 反思:代码安全意识要有,至少简单的代码混淆、重要信息的保护、比如这么重要的视频URL链接服务器应该加上权限验证等等一系列校验操作。太多的安全机制需要研究来保护自己的应用,提高防范意识。加强代码安全。

免费评分

参与人数 9吾爱币 +14 热心值 +7 收起 理由
qtfreet00 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
dreamlivemeng + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
nonamer + 1 + 1 谢谢@Thanks!
浮夸缘夸浮 + 1 我很赞同!
我是张佳佳 + 1 + 1 我很赞同!
xie2006 + 1 + 1 我很赞同!
kiwiswA + 1 热心回复!
读过书 + 1 + 1 我很赞同!
cybertariat + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

浮夸缘夸浮 发表于 2020-8-17 14:08
Bruce_HD 发表于 2020-8-17 10:45
购买地址链接,点击进入详情下面有选择电子版。

好的 谢谢
 楼主| Bruce_HD 发表于 2020-8-17 10:46
lyghost 发表于 2020-8-17 07:48
如果验证放在服务器那就不好弄喽

是的,放在服务器加大难度,重要的东西肯定最好放在服务器验证。安全机制得看公司或者个人自己看着运用了。
Tangarc001 发表于 2020-8-15 22:31
Tangarc001 发表于 2020-8-15 22:32
可以可以可以可以可以
Tangarc001 发表于 2020-8-15 22:40
厉害厉害厉害厉害
707优亿 发表于 2020-8-15 22:42
厉害👍🏻厉害👍🏻
helloYF 发表于 2020-8-15 22:57
厉害厉害厉害++
kiwiswA 发表于 2020-8-15 23:00
可以的啊这个
yangjunyuio 发表于 2020-8-16 10:13
好东西值得分享
jiayaozhuce 发表于 2020-8-16 10:48
牛叉克拉斯
qqtanhaohua 发表于 2020-8-16 11:12
有成品么。。感谢感谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 13:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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