以歌曲搜索协议为例,查看charles中歌曲搜索协议详情

拷贝出搜索协议的Curl形式

curl -H 'Host: interface3.music.xxx.com' -H 'Cookie: EVNSM=1.0.0; NMCID=oufhty.1667355455436.01.4; versioncode=8008050; buildver=221010200836; resolution=2392x1440; deviceIdYD=wXaFrap7x7ZBWAURUBfBNAopTRcMc1%2Fy%0A; ntes_kaola_ad=1; mobilename=Nexus6P; __csrf=bc87126a6e2c5bc1dc13f7a4fa7fb778; osver=8.1.0; deviceIdZX=%7B%22aids%22%3A%22%7B%5C%22appAid%5C%22%3A%5C%22A01-6S9ZfZ7LMPtbOkDBD%2BFfTamoXzwyjGEJ%5C%22%2C%5C%22venderAid%5C%22%3A%5C%22A01-PqsfZ2rfR6KV8rvlwLGkZBEsuquepT9g%5C%22%7D%22%2C%22value%22%3A%22Z01-1669950551-USe4BwCrTIsqYCHf-1391%22%7D; os=android; channel=huawei1; MUSIC_A=a23f763a90a6919afc6057778b9afcdc569fd258186e6fd1bf855317ba0d9adda5b6bfc7288fa31698f2ac0d17d8913ec8dd202061f1d462b072135bf1e89dbcf0bd7354569c6e0509f224412056dc1625c09b866a57b69ffc49e31475acc5340edf70a74334194ee3f818419820dd2c5956e2d30fe4acf2993166e004087dd3d62e78f0fc05b8fb1b6ca03ab633f3e8bba9d8290cc8af8f478d6e9baa1bff7d06248ec4b32bc0d7a9ace7cd2bcac6d9; deviceId=ODY3OTc5MDIxNjY1OTg2CWRjOmVlOjA2OmZlOjhlOjkzCTlkMjQzYzU0M2E1MmZlOWMJMDFhMjg5MzUwNDg1MWNjMA%3D%3D; appver=8.8.50; NMDI=Q1NKTQkBDABJS5RM3paF7woBVGJrAAAAvWyTiVt%2FAcOpNRzxMTtj0J5oprczJrhgeBAUaNVRv9S0D78sABS4HgbI8oLFnYZtfIYQVuh5d5dlbiKE2nz%2FB8ByJinncNLCkfE%2BIueQioG1t3eqcD0Pbdyl%2FYt%2B1GPwbmRYBGMbOVmktvI%3D; NMTID=00O9ZJM3lTmq-FilktnmIzFLNbbgNgAAAGENiEz0g; packageType=release' -H 'user-agent: NeteaseMusic/8.8.50.221010200836(8008050);Dalvik/2.1.0 (Linux; U; Android 8.1.0; Nexus 6P Build/OPM7.181205.001)' -H 'cmpageid: SearchActivity' -H 'mconfig-info: {"IuRPVVmc3WWul9fT":{"version":"2893824","appver":"8.8.50"},"tPJJnts2H31BZXmp":{"version":"1153024","appver":"3.25.00"},"c0Ve6C0uNl2Am0Rl":{"version":"266240","appver":"1.4.30"},"zr4bw6pKFDIZScpo":{"version":"217088","appver":"1.4.0"}}' -H 'x-mam-custommark: cronet' -H 'content-type: application/x-www-form-urlencoded' --data-binary "params=74A595527B7A1647174ADDB4F261E92FF2AFA5F42E4694960F9C5A3746841C9BA4DFA4F09AC5266109659469E031F06AE91ECFE7DB48EB4E9EFC1ECCD7562F7836FF6A0218FA861FA3B69A37A27D61C2D60AB011FF10E2DFD68262EE9744A31640FB1FC650D5679D5B2350FB9EC4B73249F33DAD34FA177056C73768AF0885D281D29C1A7519F3F5FA30E932136FD659CF6C47F01040B9BA4A618B78F47A196998F46DEC37FD735ED312A237A9E9AE6FDD6C48905EEB6CAC4690856B227F3F6D32CCCE962363AFD520809E0202581A878AD53FFE77994AAA5B043C443BDA8A8859275765D439349776109D0BA76F0A4BDEF80553627B556F57AD602BD9483FD84CB00F0495A2BE73564891F12AB7C087F7EF25FFE170B5C832E020AEB68C0E97778A6DBDDF0771DB716644226BFAC2D842A987E3464540E1DE6E4B3B414165F2F5BFB6CF486C2D85D1D1B115DB0ECF7E228483C122E70CAA64587D68B73CCFA258115A0008A19D0A7521A57FB4A803BC" --compressed 'https://interface3.music.163.com/eapi/search/song/page'

可以看到歌曲搜索协议的链接是: 

https://interface3.music.xxx.com/eapi/search/song/page

请求方法为post,提交的表单数据是(只有一个加密参数params需要破解):

params=74A595527B7A1647174ADDB4F261E92FF2AFA5F42E4694960F9C5A3746841C9BA4DFA4F09AC5266109659469E031F06AE91ECFE7DB48EB4E9EFC1ECCD7562F7836FF6A0218FA861FA3B69A37A27D61C2D60AB011FF10E2DFD68262EE9744A31640FB1FC650D5679D5B2350FB9EC4B73249F33DAD34FA177056C73768AF0885D281D29C1A7519F3F5FA30E932136FD659CF6C47F01040B9BA4A618B78F47A196998F46DEC37FD735ED312A237A9E9AE6FDD6C48905EEB6CAC4690856B227F3F6D32CCCE962363AFD520809E0202581A878AD53FFE77994AAA5B043C443BDA8A8859275765D439349776109D0BA76F0A4BDEF80553627B556F57AD602BD9483FD84CB00F0495A2BE73564891F12AB7C087F7EF25FFE170B5C832E020AEB68C0E97778A6DBDDF0771DB716644226BFAC2D842A987E3464540E1DE6E4B3B414165F2F5BFB6CF486C2D85D1D1B115DB0ECF7E228483C122E70CAA64587D68B73CCFA258115A0008A19D0A7521A57FB4A803BC

请求头中内容较多,主要的参数在Cookie中:

Cookie: EVNSM=1.0.0; NMCID=oufhty.1667355455436.01.4; versioncode=8008050; buildver=221010200836; resolution=2392x1440; deviceIdYD=wXaFrap7x7ZBWAURUBfBNAopTRcMc1%2Fy%0A; ntes_kaola_ad=1; mobilename=Nexus6P; __csrf=bc87126a6e2c5bc1dc13f7a4fa7fb778; osver=8.1.0; deviceIdZX=%7B%22aids%22%3A%22%7B%5C%22appAid%5C%22%3A%5C%22A01-6S9ZfZ7LMPtbOkDBD%2BFfTamoXzwyjGEJ%5C%22%2C%5C%22venderAid%5C%22%3A%5C%22A01-PqsfZ2rfR6KV8rvlwLGkZBEsuquepT9g%5C%22%7D%22%2C%22value%22%3A%22Z01-1669950551-USe4BwCrTIsqYCHf-1391%22%7D; os=android; channel=huawei1; MUSIC_A=a23f763a90a6919afc6057778b9afcdc569fd258186e6fd1bf855317ba0d9adda5b6bfc7288fa31698f2ac0d17d8913ec8dd202061f1d462b072135bf1e89dbcf0bd7354569c6e0509f224412056dc1625c09b866a57b69ffc49e31475acc5340edf70a74334194ee3f818419820dd2c5956e2d30fe4acf2993166e004087dd3d62e78f0fc05b8fb1b6ca03ab633f3e8bba9d8290cc8af8f478d6e9baa1bff7d06248ec4b32bc0d7a9ace7cd2bcac6d9; deviceId=ODY3OTc5MDIxNjY1OTg2CWRjOmVlOjA2OmZlOjhlOjkzCTlkMjQzYzU0M2E1MmZlOWMJMDFhMjg5MzUwNDg1MWNjMA%3D%3D; appver=8.8.50; NMDI=Q1NKTQkBDABJS5RM3paF7woBVGJrAAAAvWyTiVt%2FAcOpNRzxMTtj0J5oprczJrhgeBAUaNVRv9S0D78sABS4HgbI8oLFnYZtfIYQVuh5d5dlbiKE2nz%2FB8ByJinncNLCkfE%2BIueQioG1t3eqcD0Pbdyl%2FYt%2B1GPwbmRYBGMbOVmktvI%3D; NMTID=00O9ZJM3lTmq-FilktnmIzFLNbbgNgAAAGENiEz0g; packageType=release

拆解下Cookie中的参数:

  • EVNSM=1.0.0固定参数
  • NMCID=oufhty.1667355455436.01.4猜测oufhty是随机产生的6位字符串,1667355455436是13位的时间戳,最后的01.4是固定的
  • versioncode=8008050客户端版本信息,固定参数
  • buildver=221010200836客户端构建版本信息,固定参数
  • resolution=2392x1440,终端设备的分辨率
  • deviceIdYD=wXaFrap7x7ZBWAURUBfBNAopTRcMc1%2Fy%0A,某个设备ID信息,采用base64编码,暂时不知道是如何生成的
  • ntes_kaola_ad=1固定参数
  • mobilename=Nexus6P终端的设备型号
  • __csrf=bc87126a6e2c5bc1dc13f7a4fa7fb778猜测是某个认证信息,暂时不知道是如何生成的
  • osver=8.1.0终端的安卓系统版本
  • os=android操作系统,固定参数
  • channel=huawei1一般channel是客户端应用的下载渠道,这里暂不确定含义,可以作为固定参数传入
  • MUSIC_A=a23f763a90a6919afc6057778b9afcdc569fd258186e6fd1bf855317ba0d9adda5b6bfc7288fa31698f2ac0d17d8913ec8dd202061f1d462b072135bf1e89dbcf0bd7354569c6e0509f224412056dc1625c09b866a57b69ffc49e31475acc5340edf70a74334194ee3f818419820dd2c5956e2d30fe4acf2993166e004087dd3d62e78f0fc05b8fb1b6ca03ab633f3e8bba9d8290cc8af8f478d6e9baa1bff7d06248ec4b32bc0d7a9ace7cd2bcac6d9猜测是某个认证信息,暂时不知道是如何生成的
  • deviceId=ODY3OTc5MDIxNjY1OTg2CWRjOmVlOjA2OmZlOjhlOjkzCTlkMjQzYzU0M2E1MmZlOWMJMDFhMjg5MzUwNDg1MWNjMA%3D%3D设备ID信息,采用base64编码,解码明文是867979021665986 dc:ee:06:fe:8e:93 9d243c543a52fe9c 01a2893504851cc0,其中867979021665986是终端设备的imei串号,dc:ee:06:fe:8e:93是设备的mac地址,9d243c543a52fe9c是设备的android_id,01a2893504851cc0是云音乐生产的一个id,生成位置在这个native函数中com.netease.is.deviceid.factory.JNIFactory.w1c2724538080aa1b,跟踪反编译代码该id也可置为空字符串或null,后面需要可再深入分析
  • appver=8.8.50客户端版本信息,固定参数
  • NMDI=Q1NKTQkBDABJS5RM3paF7woBVGJrAAAAvWyTiVt%2FAcOpNRzxMTtj0J5oprczJrhgeBAUaNVRv9S0D78sABS4HgbI8oLFnYZtfIYQVuh5d5dlbiKE2nz%2FB8ByJinncNLCkfE%2BIueQioG1t3eqcD0Pbdyl%2FYt%2B1GPwbmRYBGMbOVmktvI%3D暂时不知道如何生成的
  • NMTID=00O9ZJM3lTmq-FilktnmIzFLNbbgNgAAAGENiEz0g暂时不知道如何生成的

最后,响应的数据也是加密的。所以本次逆向的工作还是很多的,总结一下接下来要做的事情:

  1. 请求参数params加密破解,params由什么内容组成,是怎么加密的
  2. 请求Cookie中的加密参数破解及生产,其中包含deviceIdYD、__csrf、deviceIdZX、MUSIC_A、deviceId、NMDI、NMTID
  3. 响应数据解密破解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/86812.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86812.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/86812.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

七天学会SpringCloud分布式微服务——03——Nacos远程调用

1、微服务项目配置类放在地方 配置类型应放位置说明通用配置类(如:跨服务通用的拦截器、全局异常处理、统一响应体封装等)可放在一个**公共模块(common/config)**中,被各服务引入实现代码复用,…

基于Java+Spring Boot的校园闲置物品交易系统

源码编号:S561 源码名称:基于Spring Boot的校园闲置物品交易系统 用户类型:多角色,用户、商家、管理员 数据库表数量:12 张表 主要技术:Java、Vue、ElementUl 、SpringBoot、Maven 运行环境&#xff1…

SpringBoot 的 jar 包为什么可以直接运行?

一、普通jar包和SpringBoot jar包有什么区别?什么是jar包?? (1)什么是Jar包? 定义: JAR 包(Java Archive) 是 Java 平台标准的归档文件格式,用于将多个 Jav…

算法-基础算法-递归算法(Python)

文章目录 前言递归和数学归纳法递归三步走递归的注意点避免栈溢出避免重复运算 题目斐波那契数反转链表 前言 递归(Recursion):指的是一种通过重复将原问题分解为同类的子问题而解决的方法。在绝大数编程语言中,可以通过在函数中再…

TVFEMD-CPO-TCN-BiLSTM多输入单输出模型

47-TVFEMD-CPO-TCN-BiLSTM多输入单输出模型 适合单变量,多变量时间序列预测模型(可改进,加入各种优化算法) 时变滤波的经验模态分解TVFEMD时域卷积TCN双向长短期记忆网络BiLSTM时间序列预测模型 另外以及有 TCN-BILSTM …

深入浅出Node.js中间件机制

我们用一个实际的例子来看看中间件是如何运作的。假设我们有一个非常简单的Express应用,它只有两个中间件函数: const express require(express); const app express();app.use((req, res, next) > {console.log(第一个中间件);next(); });app.use…

Vue-15-前端框架Vue之应用基础编程式路由导航

文章目录 1 RouterLink的replace属性1.1 App.vue1.2 应用效果2 编程式路由导航2.1 场景一Home.vue2.2 场景二News.vue3 路由重定向3.1 index.ts3.2 Detail.vue3.3 About.vue1 RouterLink的replace属性 路由每次跳转都有记录,默认是push,可以改为replace。 RouterLink支持两…

android14 设置下连续点击5次Settings标题跳转到拨号界面

部分项目隐藏了拨号器,但开发者需要间距跳转到拨号界面 设置一级界面: packages/apps/Settings/src/com/android/settings/homepage/SettingsHomepageActivity.java 通过dispatchTouchEvent方法先获取Settings标题的区域X,Y数据。 import java.util.Set…

MP分页和连表常用写法

1. 分页查询 方案一&#xff1a;MyBatis XML MyBatis 内置的使用方式&#xff0c;步骤如下&#xff1a; ① 创建 AdminUserMapper.xml 文件&#xff0c;编写两个 SQL 查询语句&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE m…

使用 Spring AI Alibaba构建 AI Code Review 应用

很早的时候就想着用AI来做Code Review&#xff0c;最近也看到了一些不错的实现&#xff0c;但是没有一个使用Java来构建的&#xff0c;看的比较费劲&#xff0c;虽然说语言只是一种工具&#xff0c;但是还是想用Java重新写一遍&#xff0c;正好最近Spring AI Alibaba出了正式版…

力扣1590. 使数组和能被 P 整除

这一题的难点在于模运算&#xff0c;对模运算足够了解&#xff0c;对式子进行变换就很容易得到结果&#xff0c;本质上还是一道前缀和哈希表的题 这里重点讲一下模运算。 常见的模运算的用法 (a-b)%k0等价于 a%kb%k 而在这一题中由于多了一个len&#xff0c;&#xff08;数组的…

FPGA内部资源介绍

FPGA内部资源介绍 目录 逻辑资源块LUT&#xff08;查找表&#xff09;加法器寄存器MUX&#xff08;复用器&#xff09;时钟网络资源 全局时钟网络资源区域时钟网络资源IO时钟网络资源 时钟处理单元BLOCK RAMDSP布线资源接口资源 用户IO资源专用高速接口资源 总结 1. 逻辑资源…

CSS 列表

CSS 列表 引言 CSS 列表是网页设计中常用的一种布局方式&#xff0c;它能够帮助我们以更灵活、更美观的方式展示数据。本文将详细介绍 CSS 列表的创建、样式设置以及常用技巧&#xff0c;帮助您更好地掌握这一重要技能。 CSS 列表概述 CSS 列表主要包括两种类型&#xff1a…

spring中的@Cacheable缓存

1. 使用方法 在方法上面加上注解Cacheable&#xff0c; OverrideCacheable(cacheNames "userCache", key "#id")public User getUserById(Long id) {System.out.println("查询数据库了");return getById(id);}如果你的项目中引入了&#xff…

Node.js特训专栏-实战进阶:9.MySQL连接池配置与优化

🔥 欢迎来到 Node.js 实战专栏!在这里,每一行代码都是解锁高性能应用的钥匙,让我们一起开启 Node.js 的奇妙开发之旅! Node.js 特训专栏主页 专栏内容规划详情 MySQL连接池配置与优化:提升数据库交互性能的关键 一、MySQL连接池基础概念 1.1 什么是连接池? 连接池是…

【innovus基础】- 如何手动画线?

后端实现的过程就是将逻辑连线变为物理的金属连线的过程。 1、打开Pin shape的Visible 和 Selected开关&#xff0c;使其可见并可选 2、选中想要画线的IOCell 3、鼠标选中对应的pin 4、使用dbGet 获取此pin脚逻辑连线net的名字&#xff1b; dbGet selected.net.name 5、使用画…

element-plus限制日期可选范围(这里以7天为例)

element-plus日期范围限制功能实现逻辑 1. 需求&#xff1a;通过限制时间的可选范围减少请求的数据量 2. 实现效果&#xff1a; 日期选择器做限制 3. 代码逻辑&#xff1a; 思路&#xff1a;通过calendar-change获取开始日期&#xff0c;然后通过disabled-date禁用不满足条件…

机器学习2-梯度下降与反向传播

损失函数 与 平均方差函数 傻傻分不清 损失函数是概念&#xff1b;平均方差函数是具体的实现 损失函数&#xff08;如均方误差 MSE&#xff09;用于衡量模型预测值与真实值之间的差距。损失越小&#xff0c;说明模型对当前数据的拟合越好。 但模型并非拟合度越高越好&#xf…

安全生产风险管控平台:企业安全管理的智能化解决方案

在工业生产、建筑施工、能源化工等领域&#xff0c;安全生产是企业可持续发展的基石。然而&#xff0c;传统安全管理模式依赖人工巡检、纸质记录和事后处理&#xff0c;难以满足现代化企业的高效风险管控需求。安全生产风险管控平台应运而生&#xff0c;它利用物联网、大数据、…

如何保证数据库与 Redis 缓存的一致性?

在现代互联网应用中&#xff0c;Redis 缓存几乎是性能优化的标配。但在使用过程中&#xff0c;一个绕不过去的问题就是&#xff1a; 如何保证 Redis 缓存与数据库之间的数据一致性&#xff1f; 特别是在高并发场景下&#xff0c;读写操作错位可能导致缓存中出现脏数据&#xff…