声明

本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!由于本人水平有限,如有理解或者描述不准确的地方,还望各位大佬指教!!


前言

今天我们要分析的app是某视频。分析这个app单纯就是为了学术交流,没有看真的没有看。话不多说直接开始分析。


过root和证书检测

第一步当然是进行抓包分析参数。但打开app发现它检测了root,无法打开app。

我们可以使用 frida脚本过root检测,还有可以使用objection提供的过root检测(只需要一行命令,很方便)。怎么简单怎么来吧,这里我直接用objection过root检测。

objection -g appname explore --startup-command "android root disable"

记住一定要在app启动前输入这条命令,不然是过不了检测的。

过了root检测后发现有证书效验,直接上objection 执行命令

android sslpinning disable

使用jadx打开apk发现是加壳的。直接使用frida-dexdump进行一键脱壳。在使用jadx打开脱下来的dex文件。


抓包分析

过了root和证书检测就能够正常进入app页面。我们需要抓到绑定邀请码的包。

可以看到有两个参数x-codesign和x-auth-token还有响应的报文是加密的。x-auth-token是服务器返回的。x-device-id是设备参数信息。我们只需要构造x-device-id去登录就能获取x-auth-token。刷邀请的原理就是通过构造新用户的参数携带我们的邀请码去发包给服务器。


参数分析

现在我们的目标就很明确就是分析x-codesign和解密报文。在jadx里直接搜索x-codesign

两个都是一样的随便点进去,可以看到x-codesign就是 B.f896a.a(linkedHashMap, a5)的结果。顺着引用找下去,发现是so层的,我们hook一下它的入参和结果。

它的参数组成是data和时间戳组成的。

function main(){Java.perform(function(){var TreUtil = Java.use('com.apple.video.common.utils.java.JniUtil');TreUtil.getSignature.implementation = function(str){console.log('str-->', Java.use('java.lang.String').$new(str));var result = this.getSignature(str);console.log('result-->', Java.use('java.lang.String').$new(result));return result;}})
}
setImmediate(main)

用ida打开lib文件下libsignature.so找到导出的函数getSignature函数。

很明显可以看到是hmac_sha1加密。我们去验证一下结果。可以看到是正确的。

接下来分析一下报文的解密。我们先跑一下自吐脚本看看有没有收获。

算法采用AES 接下来 jadx分析调用栈,顺着引用找下去

有了key和iv我们可以调用加密库直接直接生成。至此sign和密文解密就搞定了。我们还需要搞明白x-auth-token是怎么来的,需要抓登录的包

可以看到是需要x-codesign和x-device-id这两个参数。而打开app会自动读取安卓id,生成x-device-id。而x-device-id是经过时间戳经过MD5加密的。然后加密请求服务器返回token,解析下返回报文。

这个就是服务器返回的token,接下来我们伪造X-Device-ID然后发送这2个请求,就能成功邀请。

自吐脚本和邀请代码:aHR0cHM6Ly93d3cuY2tjb29raWVzLmNuL2luZGV4LnBocC9hcmNoaXZlcy8zLw==

各位大佬觉得本文写的不错的话,可以一键四连哦。

app逆向--某视频刷邀请相关推荐

  1. 逆向某视频app(一)

    本文为纯技术分享,文章内容不涉黄,适合对xposed有兴趣的读者 逆向某视频app(一) 逆向某视频app(二) 目录 前言 xposed破解 1.反编译apk 2.分析代码 前言 有一段时间没写博客 ...

  2. 逆向爬虫32 某视频刷播放

    逆向爬虫32 某视频刷播放 目标:利用爬虫刷某视频播放量 思路:和某站一样,先抓包验证哪个数据包可以使播放量增加,这个过程就省略了,经过测试发现是下图这个数据包 观察请求参数 ctime: 动态时间 ...

  3. 逆向某视频app(二)

    本文为纯技术分享,适合对xposed有兴趣的读者 逆向某视频app(一) 逆向某视频app(二) 目录 前言 步骤 工具 1.反编译apk 2.获取smali源码 3.修改smali文件 4.修复An ...

  4. 爬虫进阶教程:抖音APP无水印视频批量下载

    一.前言 本文为两类人准备:技术控和工具控. 如果你是工具控,想简单方便地下载无水印的视频,那么可以使用第三方去水印平台: 抖音短视频解析下载平台 如果你是技术控,想要使用自己写的代码下载视频,那么可 ...

  5. 优酷视频APP的缓存视频在哪里

    针对喜爱刷剧的网民,要是有空余就爱播放视频,但是视频会应用很多的总流量,这应该怎么办呢?我们可以在有Wifi的地区把视频缓存到手机里,随后在沒有wifi的地区看缓存文件的含有就可以了.下边就一起来看一 ...

  6. 某App逆向分析,破解提交参数

    最近在学app逆向,记录一下破解过程. 环境: 模拟器,eclipse,httpcanary,jeb 一.先配置好模拟器环境,打开抓包软件分析参数 软件有模拟器检测,我们先用jeb分析一下 搜索&qu ...

  7. Web逆向、软件逆向、安卓逆向、APP逆向,关于网络安全这些你必须懂

    逆向工程是网络安全行业里面一项很重要的技术. 先解释下逆向工程是什么. 逆向是一个相对正向而言的解释,相对正向来说,对一个程序来讲,正向就是开发的过程,从0到1. 就是在一个软件诞生的整个生命周期中的 ...

  8. 精品连载丨安卓 App 逆向课程之二逆向神器 frida 的介绍

    " 阅读本文大概需要 8 分钟. " 前面我们介绍了精品连载丨安卓 App 逆向课程一之环境配置,下面我们来接着介绍一个安卓 App 逆向大杀器-- frida. 前阵子受< ...

  9. Android中静态方式破解某App实现所有视频app去除广告功能

    转:  Android中静态方式破解某App实现所有视频app去除广告功能 作为一个屌丝程序猿也有追剧的时候,但是当打开视频app的时候,那些超长的广告已经让我这个屌丝无法忍受了,作为一个程序猿看视频 ...

最新文章

  1. CSS中绝对定位依据谁进行定位?
  2. Spring boot 梳理 - WebMvcConfigurer接口 使用案例
  3. Flask-sqlalchemy外键关系映射
  4. 10.17 linux 文件权限
  5. js构造函数的浅薄理解
  6. html5 ios cookie,ios – WKWebView,获取所有cookie
  7. Linux 设备驱动开发思想 —— 驱动分层与驱动分离
  8. echarts中toolbox位置_echarts toolbox 扩展
  9. 自动化测试元素查找利器firepath介绍
  10. 古谚、评论与论断、名篇与名言
  11. SpringBoot源码篇:Spring5内置tomcat实现code-based的web.xml实现
  12. 扒小程序 小程序反编译 获取小程序源码 完美反编译任何小程序完整代码
  13. win7 uefi 无法对计算机,U盘UEFI模式无法启动WIN7安装解决教程
  14. Matlab里fprintf个人理解(fprintf、display、%f、%f\n)
  15. Word怎么添加页码
  16. windows server2012R2 apache+mod_wsgi+django
  17. 阿里巴巴食堂:看菜名我跪了~程序员:给我来个“油炸产品经理”
  18. 第五届蓝桥杯 软件类省赛真题 第八题:兰顿蚂蚁
  19. 外呼系统——外呼中心
  20. HDU 5594(ZYB's Prime-网络流)

热门文章

  1. 计算机专业用移动硬盘,评测 篇四十三:国产之光,看这款可做移动硬盘又可系统盘的Orico SSD...
  2. Go语言基础(一篇上手go语言基本语法)
  3. 【日语】日语商务情景口语
  4. MFC 利用opencv实现视频播放
  5. html+显示平方米,平方米符号怎么打【四种方法】
  6. 深度学习(四):卷积神经网络(CNN)模型结构,前向传播算法和反向传播算法介绍。
  7. 那些我们对2019技术世界趋势的预测都说准了吗?
  8. word两端对齐字的间距太大,怎么办?
  9. C语言对称矩阵的判定
  10. Ubuntu指令失效解决问题之一——错误配置环境变量