🗒️App逆向-Bilibili

App逆向-Bilibili
status
Published
type
Post
category
date
Feb 13, 2024
slug
summary
tags
password
icon
😀
这里写文章的前言: 一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。
 

1 目标和版本

💡
目标: B站视频播放量 版本: v6.24.0 adb install bilibili.apk
 

2 抓包

  1. B站没有反代理---》直接手机配置代理抓包即可
  1. 打开B站app,随便点击一个视频,抓包查看
  • 定位到某个可以提高播放量的接口
  • 多次重复发请求尝试,查看播放量是否增加
  1. 抓包分析地址
💡
请求地址:https://api.bilibili.com/x/report/click/android2 -请求方式:POST -请求体:(二进制形式)加密的 一堆二进制 -请求头:(都可以去掉--》但是咱么要破) buvid device-id fp_local fp_remote session_id
notion image
 

3 请求体加密破解

搜索定位分析代码

💡
1 反编译后---》搜索请求地址: click/android2
2 一个位置,双击进入
3 查找用例:reportClick,就只有一个位置
4 代码如下--》变量都是"魔鬼变量" a b c 单个字母变量--》代码混淆了--》难读
jadx可以简单反混淆--》读起来稍微好读一些,但是,当我们去hook的时候,还是用hook混淆的方法名,a,b
notion image
  • 咱们之前写的代码 String responseString = retrofit.create(HttpReq.class).Login(username, password, sign).execute().body().string();
  • 反编译回来的 l<String> execute = retrofit.create(a.class)).reportClick(create).execute();
5 核心是查看 create 传了什么东西---》因为它就是请求体
c0 create = c0.create('编码方式', d.this.H7(this.b.a(), this.b.b(), this.b.h(), i, j2, this.b.n(), this.b.m(), this.b.k(), this.b.c(), this.b.e(), this.b.l(), this.b.f()));
6 真正的内容:d.this.H7 执行完返回的结果
H7方法,有很多很多参数
7 d.this.H7 源码分析
notion image
查找用例找到这里
notion image
d.this.H7源码
hook—-H7查看参数

对于字节数组的编码的hook查看参数方式(新)—字节数组转换十六进制以及字符串查阅对比

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
上一篇
App逆向-D物app
下一篇
常见frida hook 方案
Loading...