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

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

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

首先我们的思路是:

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

55fd2b2273b5a8b4531f72773c469d6e.gif

001.png (798.38 KB, 下载次数: 0)

2019-7-6 18:13 上传

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

55fd2b2273b5a8b4531f72773c469d6e.gif

002.png (70.51 KB, 下载次数: 1)

2019-7-6 18:16 上传

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

55fd2b2273b5a8b4531f72773c469d6e.gif

003.png (167.63 KB, 下载次数: 0)

2019-7-6 18:17 上传

55fd2b2273b5a8b4531f72773c469d6e.gif

004.png (192.84 KB, 下载次数: 0)

2019-7-6 18:18 上传

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

55fd2b2273b5a8b4531f72773c469d6e.gif

005.png (203.8 KB, 下载次数: 0)

2019-7-6 18:22 上传

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

55fd2b2273b5a8b4531f72773c469d6e.gif

006.png (729.6 KB, 下载次数: 0)

2019-7-6 18:24 上传

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

55fd2b2273b5a8b4531f72773c469d6e.gif

007.png (36.33 KB, 下载次数: 0)

2019-7-6 18:25 上传

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

我简单的分析了一下(因为难的不会

981582566ebae9759bf62c223440d568.gif)

其中rticket为精准到毫秒的时间戳,ts比rticket少三位,我猜测是精准到分还是小时??

user_id是用户ID

还有一个sec_user_id 好像是根据用户ID某种算法加密生成的

其他的都是固定的  URL中包含设备的相关信息

除了该主机头以外,还有其他的几个主机头,重新打开抖音就可以抓到不同主机头的包 但是数据都是相同的

JSON中的has_more是判断是否下一页,因为json只返回了部分视频 当你向上拖动屏幕时,就会再次请求,如果为0则没有下一页

55fd2b2273b5a8b4531f72773c469d6e.gif

008.png (11.68 KB, 下载次数: 0)

2019-7-6 18:40 上传

分析到这里 我认为就可以用java实现批量下载无水印了,但是!!!!事情没有那么简单!!!

7c518b1e11a04a0788c5a45174bfb34f.gif

当我写好URL链接上去 配置好UA和相关参数的时候!!返回的json居然!!!没有数据!!

{"status_code": 0, "has_more": 0, "max_cursor": 0, "min_cursor": 0, "aweme_list": []}无论我怎么写UA还有相关参数的时候,都获取不到!!

7c518b1e11a04a0788c5a45174bfb34f.gif

55fd2b2273b5a8b4531f72773c469d6e.gif

010.png (169.92 KB, 下载次数: 0)

2019-7-6 18:44 上传

本人全靠自学,没有相关信息,完全分析不出来原因。。。。万般无奈只能来找各位大佬能不能帮我分析一下原因

4e873bc45f7823b75e060594b5012087.gif如果发错地方了 麻烦大佬点点小手帮我挪个位置,感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现网络数据包的捕获与分析需要使用到Java的网络编程库和数据包处理库,以下是一个简单的示例程序: ```java import java.net.InetAddress; import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Arrays; import org.jnetpcap.Pcap; import org.jnetpcap.PcapIf; import org.jnetpcap.packet.PcapPacket; import org.jnetpcap.protocol.network.Ip4; import org.jnetpcap.protocol.tcpip.Tcp; public class PacketCapture { public static void main(String[] args) { StringBuilder errbuf = new StringBuilder(); Pcap pcap = Pcap.openLive("eth0", 65536, Pcap.MODE_PROMISCUOUS, 1000, errbuf); if (pcap == null) { System.err.println("Failed to open device: " + errbuf); return; } Ip4 ip = new Ip4(); Tcp tcp = new Tcp(); PcapPacket packet = new PcapPacket(ByteBuffer.allocate(65536).order(ByteOrder.BIG_ENDIAN)); while (pcap.nextEx(packet) == Pcap.NEXT_EX_OK) { if (packet.hasHeader(ip) && packet.hasHeader(tcp)) { try { InetAddress srcAddr = InetAddress.getByAddress(ip.source()); InetAddress dstAddr = InetAddress.getByAddress(ip.destination()); int srcPort = tcp.source(); int dstPort = tcp.destination(); System.out.println("Source IP address: " + srcAddr.getHostAddress()); System.out.println("Destination IP address: " + dstAddr.getHostAddress()); System.out.println("Source port: " + srcPort); System.out.println("Destination port: " + dstPort); } catch (UnknownHostException e) { e.printStackTrace(); } } } pcap.close(); } } ``` 这个程序使用了jNetPcap库来捕获网络数据包,并使用了Ip4和Tcp协议类来解析IP和TCP头部。在while循环中,我们可以通过IP和TCP头部的字段来获取源IP地址、目的IP地址、源端口和目的端口等信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值