夜袭和尚庙 发表于 2019-7-6 18:47

【未完成】X音数据包分析,以及java代码实现批量下载无水印

本帖最后由 wushaominkk 于 2019-7-6 19:32 编辑

之前我根据某个网站的接口,练手写了一款抖音批量下载无水印视频, 但是!!我们怎么能够只满足于调用人家接口!!!于是我花了一上午配置了FD的HTTPS证书,总算是给我的模拟器装上了证书,开始抖音的抓包之旅~以下结果仅仅只是简单的分析了一下json还有一些因技术不够 不知道怎么整,希望大佬们能够教教萌新


首先我们的思路是:
既然要批量下载,哪里最容易获取到用户的所有视频呢?当然是个人主页啦!!我们通过进入某个用户的主页抓到以下几个数据包

其中有两个数据包最为可疑!!

两个都是json我们分别截图看一下

一个json有很多个花括号!我们暂时不去管它 ,另一个json很小,详细查看了一下发现里面包含的是作者的一些图片 还有详细说明什么的。那么我们就定位第一个JSON。 打开花括号 看看里面有点啥!一顿骚操作后就发现 这个json包含了近20个作品左右的数据

无水印视频路径为:花括号下的Video下的play_addr_lowbr下的url_list里打开看一下

没毛病!!!小姐姐很漂亮!!咳咳 现在我们来看一下请求头 还有网址信息等

URL比较长 我贴出来 不知道方不方便看。。https://api-hl.amemv.com/aweme/v1/aweme/post/?max_cursor=0&user_id=101166401417&count=20&retry_type=no_retry&iid=77895323871&device_id=68600307762&ac=wifi&channel=tengxun_new&aid=1128&app_name=aweme&version_code=700&version_name=7.0.0&device_platform=android&ssmix=a&device_type=MI+6+&device_brand=Xiaomi&language=zh&os_api=22&os_version=5.1.1&uuid=863254010212610&openudid=d43d7e9c97495920&manifest_version_code=700&resolution=900*1600&dpi=320&update_version_code=7002&_rticket=1562407941830&ts=1562407942&app_type=normal&js_sdk_version=1.18.1.0&mcc_mnc=46007&sec_user_id=MS4wLjABAAAAollsLWH4REQgH-TMlNe4E__qcAogQwkaPpuv8PjbESM
我简单的分析了一下(因为难的不会{:301_988:})
其中rticket为精准到毫秒的时间戳,ts比rticket少三位,我猜测是精准到分还是小时??
user_id是用户ID
还有一个sec_user_id 好像是根据用户ID某种算法加密生成的
其他的都是固定的URL中包含设备的相关信息
除了该主机头以外,还有其他的几个主机头,重新打开抖音就可以抓到不同主机头的包 但是数据都是相同的
JSON中的has_more是判断是否下一页,因为json只返回了部分视频 当你向上拖动屏幕时,就会再次请求,如果为0则没有下一页


分析到这里 我认为就可以用java实现批量下载无水印了,但是!!!!事情没有那么简单!!!{:301_972:}
当我写好URL链接上去 配置好UA和相关参数的时候!!返回的json居然!!!没有数据!!
{"status_code": 0, "has_more": 0, "max_cursor": 0, "min_cursor": 0, "aweme_list": []}无论我怎么写UA还有相关参数的时候,都获取不到!!{:301_972:}本人全靠自学,没有相关信息,完全分析不出来原因。。。。万般无奈只能来找各位大佬能不能帮我分析一下原因{:301_999:}如果发错地方了 麻烦大佬点点小手帮我挪个位置,感谢!

夜袭和尚庙 发表于 2019-7-6 18:54

补充:事后我抓了很多次包 发现除了时间戳 还有 sec_user_id 和用户ID改变以外,其他的均未改变   包括我用java代码实现的时候,所有的请求头信息都写上去了。。。。但是还是不行。。拿不到json   时间戳用Date对象拿到的至于ts这个少了三位的时间戳。。。。我也不知道怎么办请各位大佬帮帮忙万分感谢事后必将软件写出来 发上来 造福广大人民{:301_999:}

逍遥一仙 发表于 2019-7-6 20:06

把fd抓到的保存成saz,发上来看看呗?

1941368542 发表于 2019-7-6 20:27

我记得之前我也抓包分析过,url里面包含三个加密的参数 cp,as,mas,
这三个参数的算法是需要逆向分析so文件的。逆向so这个不是一般人能搞定的。

夜袭和尚庙 发表于 2019-7-6 20:32

[url=forum.php?mod=redirect

应该是改了因为我抓了好几个包对比了一下 就只有我上面说的几个参数变动了 其他的没有变动听说抖音总是换

暗夜星辰sky 发表于 2019-7-8 10:26

获取主页用:https://www.douyin.com/aweme/v1/aweme/post/?user_id=105957124650&count=80&max_cursor=0&aid=1128&_signature=Ly75.xAYchMmYoPqhtVjgC8u-e&dytk=35c38662ca6abf16d993e26873a6fc56
获取参数只需要上面的即可,主要是签名的生成,签名是有时间限制的,超时就不能用了
ps:自己搭建的一个简单解析主页,只解析第一页 douyin.pos0371.cn

夜袭和尚庙 发表于 2019-7-8 16:17

暗夜星辰sky 发表于 2019-7-8 10:26
获取主页用:https://www.douyin.com/aweme/v1/aweme/post/?user_id=105957124650&count=80&max_cursor=0&a ...

请问 签名是如何获取的呢? 还是用什么生成的{:301_982:}

ermao 发表于 2019-7-8 20:36

APP加密挺难搞的,也就是4楼说的那几个参数,市面上这个技术也很贵。只是简单采集可以去研究一下网页的,只有一个参数加密,搞出来比较简单

夜袭和尚庙 发表于 2019-7-9 10:36

ermao 发表于 2019-7-8 20:36
APP加密挺难搞的,也就是4楼说的那几个参数,市面上这个技术也很贵。只是简单采集可以去研究一下网页的,只 ...

{:301_1005:}好的 谢谢

niebaohua 发表于 2019-7-11 07:46

参数signature 你可以用python运行js文件获取, 可以自行百度一下 网上有很多
页: [1]
查看完整版本: 【未完成】X音数据包分析,以及java代码实现批量下载无水印