status
Published
type
Post
category
date
Feb 13, 2024
slug
summary
tags
password
icon
这里写文章的前言:
一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。
1 目标和版本
目标: B站视频播放量
版本: v6.24.0
adb install bilibili.apk
2 抓包
- B站没有反代理---》直接手机配置代理抓包即可
- 打开B站app,随便点击一个视频,抓包查看
- 定位到某个可以提高播放量的接口
- 多次重复发请求尝试,查看播放量是否增加
- 抓包分析地址
请求地址:https://api.bilibili.com/x/report/click/android2
-请求方式:POST
-请求体:(二进制形式)加密的
一堆二进制
-请求头:(都可以去掉--》但是咱么要破)
buvid
device-id
fp_local
fp_remote
session_id

3 请求体加密破解
搜索定位分析代码
1 反编译后---》搜索请求地址: click/android2
2 一个位置,双击进入
3 查找用例:reportClick,就只有一个位置
4 代码如下--》变量都是"魔鬼变量" a b c 单个字母变量--》代码混淆了--》难读
jadx可以简单反混淆--》读起来稍微好读一些,但是,当我们去hook的时候,还是用hook混淆的方法名,a,b

- 咱们之前写的代码
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 源码分析

查找用例找到这里

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



.png?table=block&id=8cbd9ef4-8c1c-4581-80f1-a15297380674&t=8cbd9ef4-8c1c-4581-80f1-a15297380674&width=1080&cache=v2)

