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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 3725|回复: 198
上一主题 下一主题

[Android 原创] 某短视频逆向分析

    [复制链接]
跳转到指定楼层
楼主
幼儿园小班 发表于 2020-11-22 02:49 回帖奖励

某1短视频逆向分析

目标

  1. 服务器域名和ip是什么?是否有多个服务器?分别是什么?服务器域名注册于哪里?服务器ip归属地是哪里?
  2. 数据通讯的加密方式是什么?
  3. 如何动态破解限制?
    <!-- 4. 如何静态破解限制? -->

使用到的工具

  • burp suite (http https websocket 抓包分析工具)
  • jadx (java系列 反编译工具)
  • mumu模拟器 (android 模拟器)
  • frIDA (hook神器,支持ios android windows linux)
  • objection (frida针对android方向的辅助分析工具)
  • mt管理器 (在android端针对apk持久化修改神器)

正题开始

  • 运行apk,了解大概的功能,方便分析

  • 开始运行

    • 发现该程序是一个类似某音的短视频app
    • app需要联网拉取播放列表和视频地址
  • 模拟器挂上代{过}{滤}理后上抓包工具

  • 发现http数据包里有一个很可疑的地址

  • http://interface.91apiapi.com:8080/api.php

  • 开始运行

  • 该接口返回数据包特别大,从地址和返回包大小,猜测这就是视频数据的接口,先看看提交参数和返回内容

  • 请求

  • 返回

  • 发现几个特征

    1. 请求提交的数据和返回的数据都是json格式
    2. 都拥有 data(数据), timestamp(时间戳), sign(签名) 字段
    3. data数据都是加密的
  • 尝试分析加密和解密方式

    1. 将apk放入jadx分析源码
    2. 搜索 .put("data"
      • 搜索
      • 为什么搜索 .put("data" 而不是其他的什么?因为根据java开发经验,提交数据是json,所以一般会使用JSONObject对象,当然不止这一种写法,还有很多就不一一列举了
    3. 发现很多代码块都使用了 .put("data"
    4. 但是最后两个的包名上有 encrypt 太过可疑
    5. 咱们先双击查看第一个可疑点
      • 查看1
      • 发现该函数最终生成的json对象结构不对.多了route, via, token 等字段
      • 所以排除
    6. 接下来我们看第二个可疑点
      • 查看2
      • 发现该json结构非常符合,首先只有三个put,并且有一个data的put
      • 所以结果应该是 {"X1":, "data": h2, "X2":}
      • 结构符合了.然后经过进一步跟进发现
      • X1 是 timestamp
      • X2 是 sign
      • 所以最终结果就变为 {"timestamp":, "data": h2, "sign":}
      • 完全符合
      • 我们知道data被加密了.我们看到data中到底put的value是h2
      • 而h2的最近一个赋值是 String h2 = h(str);
      • str是该函数的参数,由调用者传入,类型是字符串
      • 所以我们猜测str就是data的内容,至于是加密前还是加密后,我们还需要先看看h这个函数干了什么
      • 分析
      • 分析
      • 分析
      • 到这里我们已经可以确定以下几点
        1. h函数首先接收一个字符串
        2. 然后调用b并传入接收到的字符串和另外一个字符串
        3. b接收到两个字符串后,调用b.b,并传入调换位置的两个字符串
        4. 然后b.b出现了加密
        5. 加密算法是AES (对称加密)
          • 对称加密和非对称加密的区别是:
            1. 对称加密,解密和加密的密钥是一样的
            2. 非对称加密,密钥是有公钥和私钥的
        6. 模式是CFB (AES拥有 ECB,CBC,CTR,CFB,OFB 5种模式) 如果感兴趣的朋友可以下来深入了解它们的区别和适用场景,这里我们不做深入
        7. 通过确定加密方式 我们可以尝试分析加密和解密所密钥了
        8. 我们逆推发现在h调用b时多了一个this.f13464c
        9. 分析
        10. 猜测这个就是我们的密钥了.看看它的内容是什么?
        11. 分析
        12. 分析
        13. 分析
        14. 发现有两个地方为它赋值了,分别是
        15. e79465cfbb39cjdusimcuekd3b066a6e
        16. ljhlksslgkjfhlksuo4lkdrju6p2od03
        17. 其中第二个跟进去一看就是个测试代码,所以直接无视
        18. 所以我们可以暂定我们需要的通讯密钥就是 e79465cfbb39cjdusimcuekd3b066a6e
        19. 接下来编写代码解密data
        20. 分析
        21. 解密成功!

以下内容可能引起不适,下面将进行破解收费视频和无限试看


  • 因为在分析app的时候发现该app有限制

    • 试看一定次数后就出现推荐后才能继续
    • 分析
      <!-- + 有一些视频需要直接支付金币才能观看
    • 分析 -->
  • 接下来咱们先搞定 无限试看

  • 咱们先在jadx查下关键字 看看能否定位到关键代码

  • 在jadx中搜索 成功推广,发现只有一个地方,进入看到如下代码:

  • 分析

  • 查看 i 函数 的交叉引用,发现有两个地方使用到

  • 分析

  • 按照惯例,先分析第一个(实际上这里就已经感觉就是第一个了.因为他的包名太可疑了!)

  • 分析

  • 当我们查看 o 函数的交叉引用时 发现没有任何函数调用过它,我们可以断定是因为反编译jadx的原因,没有分析出它的调用联,或者它的调用本身就是运行时生成的

  • 所以我们就需要上神器 Frida 和 辅助工具 objection 了(Frida的搭建和objection的环境搭建我就不多说了,网上有很多)

  • 废话不多说 开工

  • 分析

  • 分析

  • 函数hook成功,进入app让函数触发一下.

  • 分析

  • 发现已经hook到了.从返回的信息中我们可以看出来

  • 这个函数是被在某一个线程中通过反射被动调用的.也就是说在这个线程流程中有某个值事先被设置好了,然后在特定的条件下触发.因此该段代码只能让我们知道,有某个东西决定了我们是否可以试看,而无法从该处就行反推.

  • 接下来我们从新整理下思路

    1. app在出现试看限制的时候有个弹窗
    2. 弹窗由某个值决定,这个值应该是由服务器返回的
    3. 弹窗出现时 app会暂停播放视频
    4. 弹窗出现时有一个按钮叫 去充值VIP
    5. 猜想,会不会伪造一个vip身份就能绕过试看限制呢?
    6. 会不会vip的身份证只是一个变量,由服务器返回的呢?
  • 废话不多说,先看api.php返回的超长data里面有些什么?

  • 经过对data的解密,我们发现了如下内容:

  • 分析

  • isVip,会不会就是这个值决定的呢?

  • jadx搜一波.

  • 分析

  • 发现结果中第三条和最后一条最为可疑

  • 因为我们经过上面的分析知道了,有某个值决定了试看限制的弹窗,而jadx搜出来的代码中,只有第三条和最后一条像赋值,但是我们还是一条一条看.先进入第三条

  • 分析

  • 尝试修改让isVip永远是true 是不是就能绕过限制呢?

  • 上代码.

  • 分析

  • 分析

  • OK,试看限制已经解除!

  • frida 只是运行时hook,也就是说并不是修改一次永久有效的.要实现修改持久化,方法较多,这里大概介绍一下两个比较常用的方法

    • Frida-gadget (容易)
    • 直接对apk进行smail字节修改(难)(推荐,理由是能学到很多扩展知识,比如smail汇编器指令,apk签名等)

目标实现结论

  1. 服务器域名和ip是什么?是否有多个服务器?分别是什么?
    • 域名1: interface.91apiapi.com
      • ipv6: 2606:4700:e0::ac40:6a0c
      • 归属地: 美国
      • 域名服务器: godaddy.com
  2. 数据通讯的加密方式是什么?
    • 加密算法: AES
    • 模式: CFB
    • 密钥: e79465cfbb39cjdusimcuekd3b066a6e
  3. 如何动态破解限制?
    • 使用 objection 进行动态分析
    • 使用 frida 进行hook,修改原代码功能,实现破解
      <!-- 4. 如何静态破解限制? -->

免费评分

参与人数 76吾爱币 +73 热心值 +70 收起 理由
HYY1139 + 1 + 1 我很赞同!
Spectre + 1 + 1 写的太好了吧,非常感谢!
wujunda555 + 1 + 1 热心回复!
564564 + 1 + 1 谢谢@Thanks!
xianyucoder + 1 谢谢@Thanks!
AlwDnal + 1 + 1 求成品呀大佬
发抖的小喵喵 + 1 + 1 热心回复!
我就不信 + 1 我很赞同!
楚baby + 1 + 1 用心讨论,共获提升!
℃偷心九月天丶 + 1 + 1 用心讨论,共获提升!
zli9988 + 1 谢谢@Thanks!
yueyueawyl + 1 + 1 我很赞同!
kxykxy157 + 2 + 1 求成品:115093245@qq.com
eetoo + 1 + 1 我很赞同!
Jeraxx + 1 + 1 用心讨论,共获提升!
今晚不做梦 + 1 + 1 厉害啊
shu11068 + 1 + 1 我很赞同!
北鼻北鼻玩莫泰 + 1 这个某1不简单,仔细一看居然是9
gaosld + 1 + 1 热心回复!
fengbolee + 1 + 1 用心讨论,共获提升!
lisz + 1 + 1 成品能分享么 lisz0322@qq点com
catfish888 + 1 我很赞同!
逆向post + 1 + 1 我很赞同!
wunai006 + 1 + 1 谢谢@Thanks!
兔兔香辣才好吃 + 1 + 1 太强了
且行且思 + 1 + 1 热心回复!
五月何欢 + 1 + 1 大佬牛鸥 。java功底这么深厚。
zwei360 + 1 + 1 我很赞同!
fishu + 1 我很赞同!
前女友竟是岳母 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wangyanlin1983 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
刘剑 + 1 我很赞同!
clinsbull + 1 + 1 用心讨论,共获提升!
SuenDanny + 1 + 1 用心讨论,共获提升!
王者归来1 + 1 + 1 谢谢@Thanks!
vv96 + 1 + 1 我很赞同!
时光如初见 + 1 + 1 感谢作者大大
cznb666 + 1 + 1 谢谢@Thanks!
神秘东方 + 1 + 1 谢谢@Thanks!
Lwk520pj + 1 + 1 成品视频早就存在手机里了,第一次看到大佬破解的过程
我的梦想也会飞 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
港赟 + 1 + 1 我很赞同!
豆腐小僧 + 1 + 1 谢谢@Thanks!
吾爱阳仔 + 2 + 1 用心讨论,共获提升!
microfear + 1 谢谢@Thanks!
sunmuggle + 1 + 1 用心讨论,共获提升!
天涯明 + 1 + 1 学习到了
foolboy + 1 + 1 跪求成品
醉酒的喵 + 1 + 1 我很赞同!
gd2020 + 1 谢谢@Thanks!
zxc123Qwe789 + 1 + 1 用心讨论,共获提升!
離子氣水 + 1 + 1 用心讨论,共获提升!
侯学涛 + 1 666
银狐狸 + 1 我很赞同!
nws0507 + 1 我很赞同!
weiantang + 1 + 1 评分以上,求私信成品啊大佬
status_0 + 1 + 1 我很赞同!
astgo9988 + 1 + 1 谢谢@Thanks!
zhuzhuxia111 + 1 + 1 我很赞同!
吾爱当归 + 1 + 1 我很赞同!
WuainiPJ + 1 + 1 我很赞同!
aisinill + 1 + 1 我很赞同!
agi学习者 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
IDK灬飘渺 + 1 + 1 谢谢@Thanks!
Caraciold_Jr + 1 + 1 可以的学习了
ls990928 + 1 + 1 热心回复!
闷骚小贱男 + 1 我感觉域名已违法,请重新编辑。。。
jakyou + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
快走吧 + 1 + 1 谢谢@Thanks!
夜尘 + 1 + 1 http://interface.91apiapi.com/
麦迪就是帅 + 1 + 1 大佬,牛!!
奋斗者4 + 1 + 1 我很赞同!
ruohuan232 + 1 + 1 啊这
meenter + 1 + 1 谢谢@Thanks!
先有我后有天 + 3 + 1 我很赞同!
15874714729 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

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

推荐
不苦小和尚 发表于 2020-11-22 22:37
幼儿园小班 发表于 2020-11-22 20:32
方便提供一下apk的下载链接吗?私信给我一下.我没找到这两个apk

多点app
http://acj6.0098118.com/pc6_sour ... KjXMdpUUEzVwAR5.apk,
另一个APP,https://android.myapp.com/myapp/ ... rs&ADTAG=mobile
你看看能不能抓到包
推荐
 楼主| 幼儿园小班 发表于 2020-11-22 22:42 |楼主
不苦小和尚 发表于 2020-11-22 22:37
多点app
http://acj6.0098118.com/pc6_soure/2020-10-28/303a6b2073035dcKjXMdpUUEzVwAR5.apk,
另一个A ...

两个我都看了.都可以正常抓包啊,你是不是忽视了https的证书了?
沙发
先有我后有天 发表于 2020-11-22 02:52
3#
芽衣 发表于 2020-11-22 03:07
这排版

我的视角怎么感觉缩进略多啊
4#
 楼主| 幼儿园小班 发表于 2020-11-22 03:12 |楼主
芽衣 发表于 2020-11-22 03:07
这排版

我的视角怎么感觉缩进略多啊

很少发帖,不熟练
5#
a5570622 发表于 2020-11-22 03:26
学习了~~~
6#
shixian1060 发表于 2020-11-22 04:02
我来学习学习
7#
tsecond 发表于 2020-11-22 04:56
谢谢分享!
8#
meenter 发表于 2020-11-22 05:23
太精彩了,感谢感谢
学习学习
9#
lx771602764 发表于 2020-11-22 06:14
学习学习经验
10#
一筐猪 发表于 2020-11-22 06:17
学习到了,正在学怎么查app网络加密
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

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

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

GMT+8, 2020-11-24 18:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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