本篇承接上一篇某K字头运动软件逆向分析-登录时非法的请求

在跟随视频训练时,很可能有些细节自己注意不到,以至于一些动作不规范,练习新动作时看一下讲解还是有必要的。

许多课程都是前面一两节可以免费观看讲解,后面的就需要开通会员才能查看了,比如我搜了个训练腹肌的课程,在课程内容中选择一节查看讲解

此时会弹出一个弹窗,在非会员的情况下只能看到大图模式下的重复动作,点击左上角的“查看精讲”按钮会跳转到一个h5页面,精讲内容列表中只有前两节是可以免费试看的,后边内容都是加锁的。

adb命令查看下页面activity,是一个WebViewActivity

adb shell dumpsys activity top

从反编译代码中可以看出使用的自定义WebView进行的页面加载,对其相关方法尽心hook,发现请求的是远程url

浏览器打开该url确认和app中看到的是同一个页面,但是控制动态下发的页面显然比较困难,如果能和java层有些联系或许还有办法,能产生联系的点能有什么呢?想到了两个:

1、桥调用

2、网络请求

分别看下能不能找出什么端倪。

桥调用

在其自定义WebView(K***WebView)中,包含了许多桥方法,是通过a方法进行调用的,其中包括播放视频桥,不过需要在h5上调用后才能走到,好像并不能满足我们的需求

网络请求

首先在接口中发现是否可以播放仅仅是通过一个preview字段进行控制的,使用mock数据改成preview: true就可以进行播放了,虽然能播放了,但是这太不方便了,显然不能每次看精讲时都用代理改数据,我们尝试在jeb中搜索,看看java层会不会有相关字段的解析逻辑,全局搜preview字符串,但是太多了,尝试搜一下上一级字段videoInfos,jeb中只搜到了三个,并且都和VideoInfosBean有关,那我们就看下这个类

里面只有上面接口返回的播放参数,没有我要找到preview,看起来这个Bean可能不是上面接口使用的bean,有点失望。。。,不过可以确定的是这个Bean一定和某处的视频播放有关。

上下翻找时看到了同文件中的另一个类PermissionBean

这个很明显是用来判断是否是会员的啊,用hook的方式将a()、b()方法返回值全部修改为true,看看有什么效果。

“查看精讲”按钮没有了,在弹层页面直接播放了精讲内容,踏破铁鞋无觅处啊。。。

修改源码,将WorkoutCourseIntroData$PermissionBean.smali文件中的方法部分替换成

# virtual methods
.method public final a()Z.registers 2
​.prologue.line 9const/4 v0, 0x1
​return v0
.end method
​
.method public final b()Z.registers 2
​.prologue.line 13const/4 v0, 0x1
​return v0
.end method

重新打包测试,可以正常播放,效果和hook一致。

不以学习为目的逆向就是耍流氓

某K字头运动软件逆向分析-课程精讲相关推荐

  1. 某K字头运动软件逆向分析-登录时非法的请求

    ​最近重新燃起了运动的热情,经常使用到一款软件,里面有些内容需要付费观看,所以决定给它一些特殊的关爱. 重新打包是避不开的,现在大多app都会做防护,所以决定什么都不做只是反编译重打包试下,果然重打包 ...

  2. 关于学习软件逆向分析意义的阐述

    1对本课程教学地位的理解和想法(学习软件逆向分析的意义) 1.1逆向工程的起源 世界上最早的逆向工程其实来源于战争时期.在军事战争时期,各国之间常常存在水上作战,而船舶就成了运输和作战的重要工具.如下 ...

  3. 视频教程-x86/x64软件逆向分析入门-C/C++

    x86/x64软件逆向分析入门 成都理工大学优秀讲师,教授,二十年开发经验,和十六年一线教学工作经验,发表学术论文十余篇.参与包括863项目等多个国家级科研项目,参与包括微信机器人(WeChaty)等 ...

  4. Zabbix 3.2 课程精讲-庄博-专题视频课程

    Zabbix 3.2 课程精讲-78人已学习 课程介绍         zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能 ...

  5. 华为HCNA数通方向课程精讲-郭小冬-专题视频课程

    华为HCNA数通方向课程精讲-72人已学习 课程介绍         课程定位于中小型网络的配置和维护,内容包括但不限于:网络基础知识,流行网络的基本连接方法,基本的网络建造,基本的网络故障排除,华为 ...

  6. 视频教程-php进阶课程之swoole系列课程精讲(第一季)-PHP

    php进阶课程之swoole系列课程精讲(第一季) 多年一线互联网开发实战以及培训经验,对php开发,linux运维架构有丰富的经验,善于分析问题,解决问题. lampol ¥199.00 立即订阅 ...

  7. 软件设计师考c语言,软件设计师教程考点精讲之C语言三大定律

    2016下半年软考软件设计师报名即将开始,同学们是否在学习过程中遇到了一些困难,下面由希赛软考学院为打算参加下半年考试的你们准备了一些软件设计师教程考点精讲之Java编程性能措施,希望对大家有所帮助. ...

  8. X64驱动开发和保护+X86X64游戏逆向分析课程

    老师教学范围和方式:木塔负责PC电脑端C语言基础和端游逆向分析部分内容,采用录制+部分直播课程教学,晚上还有专业老师讲解和指导.我要的是质量不是数量.老师备课,设计课件需要时间的. 学习周期:PC端3 ...

  9. 软件逆向分析系列教程

    笔者倾心打造的一款软件破解入门课程,为避免纠纷,本人编写了与本次内容相关的课程课件共各位逆向小白学习. 文章链接 文章标题 https://www.cnblogs.com/LyShark/p/1114 ...

最新文章

  1. 构建自主操作系统,阿里为何失败了?
  2. Python -bs4反爬虫解决方法
  3. Linux的权限管理
  4. 【数据结构与算法】之深入解析“把二叉搜索树转换为累加树”和“从二叉搜索树到更大和树”的求解思路与算法示例
  5. 2019年这50个Kafka面试题,你知道答案么
  6. 《SEO字典》解读meta robots标签
  7. 【C012】Python - 基础教程学习(三)
  8. 3Dcnn 降假阳性模型调试(八)
  9. http://www.zhihu.com/question/24896283
  10. oracle 12c权限设置,如何设置 Oracle 数据库权限
  11. 优秀的.NET Winform UI控件(标价$399):DotNetMagic Version 3.0 Released
  12. RocketMQ 消息队列单机部署及使用
  13. 自定义动画(仿Win10加载动画)
  14. 设计模式的学习方法 | 摘自《图解设计模式》译者序
  15. 基于python的学生管理系统的设计开题报告_学生信息管理系统设计开题报告
  16. iText PDF设置字体样式
  17. android小米便签源代码分析,小米开源便签Notes-源码研究(1)-导出功能整体思路
  18. PDF如何裁剪页面,PDF裁剪页面的小技巧
  19. 程序员做外包,真的没地位没出路吗
  20. 剑指offer-字符串总结

热门文章

  1. Stateflow中事件结构体
  2. 老猿学5G扫盲贴:中国移动网络侧CHF的功能分解说明
  3. OJ每日一练——药房管理
  4. 基于Linux的视频监控系统构建方法
  5. ASP编程入门进阶(九):Application
  6. linux查看开了哪些端口号_Linux 查看服务器开放的端口号
  7. T3登陆,提示Automation错误 解决办法
  8. 一则uiautomation错误处理
  9. 详解邦邦掌柜网络电话的直拨和回拨区别
  10. 树形递归算法解决一笔画问题(Java)