Shocker 发表于 2021-11-2 19:31

分享一个某音模拟器看直播的方法

本帖最后由 Shocker 于 2021-11-2 19:33 编辑

## 前言
分析下某音模拟器看直播的方法.
图片部分关键信息已打码.
某音极速版(11.0.0)
## 实验环境
1.Android真机(Android5.1)
2.雷电模拟器3(3.120)
3.win10
## 过程
模拟器打开app,点击直播,发现只能进入一次直播后就再也无法进入,提示房间无法进入.

打开ddms
搜索toast

一直找它的父方法,直到
com.bytedance.android.livesdk.chatroom.detail.e.handleMsg
基本上可以断定是这个方法结束了直播

模拟器启动frida
执行脚本打印message的值
```
Java.perform(function(){
    var hook_class = Java.use('com.bytedance.android.livesdk.chatroom.detail.e');
    hook_class.handleMsg.implementation = function(map){
      console.log(map.toString());
      var result = this.handleMsg(map);
      return result;
    }
});
```
发现当成功进入直播间时obj的值为com.bytedance.android.livesdk.chatroom.model.i
而进入直播间失败时obj的值为java.lang.IllegalStateException: body must not be null
由此可以断定com.bytedance.android.livesdk.chatroom.model.i是关键点


打开jadx
搜索com.bytedance.android.livesdk.chatroom.model.i

大致可以确定其包含sendMessage的方法在com.bytedance.android.livesdk.chatroom.bl.ag.accept里
查找该类引用,定位到上层方法为


**((RoomRetrofitApi) com.bytedance.android.livesdk.ab.i.k().b().a(RoomRetrofitApi.class)).enterRoom(j3, 1, j2, hashMap).compose(o.a()).subscribe(new af(a2, weakHandler, j3), new ag(a2, weakHandler, j3));
**

查找enterRoom,发现它是一个HTTP的接口


模拟器连接fiddler
抓/webcast/room/enter/的包发现
当进入直播失败时,该post请求的返回包里body无内容

当进入直播成功时,该post请求的返回包里body是有内容的

那么是什么决定了该请求的返回内容呢?

拿出真机,设置fiddler代{过}{滤}理.打开app,进入直播间

将真机QueryString的参数值逐一替换到模拟器的QueryString里,重新发送

最后发现当模拟器的iid,device_id与真机相同时,该包body有内容

那么iid,device_id是怎么来的呢?

这里就不展开了,直接百度一下
根据前人大佬们的经验,可知
/service/2/device_register/
接口负责设备的注册,
那么只需要获取手机上的device_register包,并将response转发到模拟器上就行了
## 实现过程
打开fiddler,手机设置fiddler代{过}{滤}理,打开app,在fiddler中找到
```
/service/2/device_register/
```
的包.然后把响应保存起来

**设置AutoResponder(拦截模拟器的device_register请求并返回手机对应的响应)**
如图

之后模拟器设置代{过}{滤}理,打开app.进入直播间,切换直播间没有任何问题.
## 写在最后
```
/service/2/device_register/
```
这个接口其实已经对真机和模拟器进行了区分,感兴趣的大佬可以仔细的研究.

okij12589 发表于 2021-11-3 00:38

傻傻的,啥也看不懂{:1_896:}
只会用网页打开douyin.com刷视频和直播。
{:301_1008:}

zhujf 发表于 2021-11-5 16:50

看不懂,要是有个软件直接能实现就好了 !

weiqwe1 发表于 2021-11-2 19:42

谢谢分享

woshidazhang 发表于 2021-11-2 19:54

我很赞同

fhgn528 发表于 2021-11-2 19:56

谢谢奉献试试看

剑来…… 发表于 2021-11-2 19:57

牛皮,太强了

Seempa 发表于 2021-11-2 19:57

靠,可以,感谢楼主

墨墨吴冥 发表于 2021-11-2 19:58

感谢分享

唛哩唛哩红 发表于 2021-11-2 20:05

厉害了,谢谢楼主

年轻的旅途 发表于 2021-11-2 20:21

来学习下

ynboyinkm 发表于 2021-11-2 20:25

高手,顶你
页: [1] 2 3 4 5 6 7 8
查看完整版本: 分享一个某音模拟器看直播的方法