安卓逆向-KG音乐2021最新版下载API分析

  • 安卓逆向-KG音乐最新版API
  • Java代码实现
  • 后记

安卓逆向-KG音乐最新版API

吐槽一下,相对于其他几个大型音乐平台讲,KG音乐的API设计非常糟糕。。。。

网上已经有很多KG音乐下载接口的分析,但KG音乐近来对原有的方式做了更改,增加了一个请求参数signature,导致之前的获取方式失效了。经过逆向分析后发现,signature也是使用了MD5加密,是将除了signature外所有的请求参数与APPKEY拼接后的MD5值。

除了KG概念版可以免费听的VIP资源外(比如周董的歌),KG音乐的所有VIP资源已不存在不需要VIP用户账户信息的接口。只能获取免费资源。如果想要获取,请配置VIP用户的token和userid,这两个参数可以通过抓包找到。

Java代码实现

下面是无名音乐里面的一段实现代码,为了隐私,隐去了token和userid,大家可自行配置。

 //KG通过hash值定位资源public static String downloadRequest(String hash){String dfid="-";String pid="2";String mid="0";String cmd="26";String clienttime=Long.valueOf(System.currentTimeMillis() / 1000)+"";String uuid="0";String area_code="1";//1代表中国地区,如果IP为海外或者港澳台,需要加上这个参数String behavior="play";//需要配置为play,不消耗下载次数。如果配置为download,则会消耗下载次数。String appid="1005";String module="";String vipType="6";String ptype="0";String userid="";//请自行抓包获取String token="";//自行抓包获取String mtype="2";String album_id="2900867";String pidversion="3001";//用jadx反编译apk后,可以在res目录下找到一个配置文件,里面存储了这个值String pidVersionSecret="57ae12eb6890223e355ccfcb74edf70d";//用jadx反编译apk后,可以在res目录下找到一个配置文件,里面存储了这个值String clientver="10479";String version="10479";String album_audio_id="album_audio_id";Map<String,Object> map=new HashMap<>();map.put("dfid", dfid);map.put("hash",hash);map.put("mtype",mtype);map.put("album_id",album_id);map.put("album_audio_id",album_audio_id);map.put("module",module);map.put("behavior",behavior);map.put("cmd",cmd);map.put("uuid", uuid);map.put("clientver", clientver);map.put("clienttime", clienttime);map.put("pid",pid);map.put("appid", appid);map.put("mid", mid);map.put("version",version);map.put("token",token);map.put("vipType",vipType);map.put("userid",userid);map.put("area_code",area_code);map.put("dfid",dfid);map.put("ptype",ptype);map.put("pidversion",pidversion);map.put("key",Md5Encrypt.convertToMd5(hash+pidVersionSecret+appid+mid+userid));String appkey="OIlwieks28dk2k092lksi2UIkp";//用jadx反编译apk后,可以在res目录下找到一个配置文件,里面存储了这个值map.put("signature",getSignature(appkey,map));String reqLink="https://gateway.kugou.com/v3/url"+getGetRequestParams(map);//新版的API接口Map<String,String> headerMap=new HashMap<>();headerMap.put("x-router","tracker.kugou.com");//必须要有这个请求头String response=HttpRequestHelper.downloadWebSiteUseGet(reqLink,headerMap);if(response.contains("http:")&&response.contains("\"")){//为了方便起见,直接截取字符串,不解析json了。response=response.substring(response.indexOf("\"url\":[\"")+"\"url\":[\"".length());response=response.substring(0,response.indexOf("\"")).replaceAll("\\\\","");}else {response="";}return response;}private static String getGetRequestParams(Map<String,Object> map) {if (map == null || map.size() < 0) {return "";}StringBuilder sb = new StringBuilder();sb.append("?");Set<String> keySet = map.keySet();for (String str : keySet) {sb.append(str);sb.append("=");sb.append(map.get(str));sb.append("&");}sb.deleteCharAt(sb.length() - 1);return sb.toString();}private static String getSignature(String str, Map<String, Object> map) {if (map == null || map.size() < 0) {return "";}StringBuilder sb = new StringBuilder();Set<String> keySet = map.keySet();String[] strArr = keySet.toArray(new String[keySet.size()]);Arrays.sort(strArr, String::compareTo);for (String str3 : strArr) {sb.append(str3);sb.append("=");sb.append(map.get(str3));}return Md5Encrypt.convertToMd5(str + sb.toString() + str);}

后记

本文给出的代码基于2021年最新版的 KG音乐安卓版,版本号:10.4.8_10485。

欢迎关注微信公众号:从来不想

安卓逆向-KG音乐2021最新版下载接口分析相关推荐

  1. 安卓逆向-某音乐软件

    初学安卓逆向,如有错误请指教 某我音乐9.3.4.4版本,需要资源的请流言(也可以自行去下载) 直接将apk拖入到AndroidKiller里面(该工具自行下载) 首先去除广告 直接全局搜索KEY_E ...

  2. Android 自定义锁屏_三星Key Cafe 2021最新版下载-三星Key Cafe自定义键盘输入app v1.0.00.26...

    这次小编要为大家带来一款由三星官方正式推出的自定义键盘输入工具"Key Cafe",帮助大家能够自由定制手机输入法的主题和键位,允许用户能够自由定制键盘布局,增删案件等,设计一套最 ...

  3. CorelDRAW 2021最新版下载安装包更新 矢量图形设计软件

    CorelDRAW2021是加拿大Corel公司制作的一款功能强大的图形设计软件,这个图形工具给设计师提供了矢量动画.页面设计.网站制作.位图编辑和网页动画等多种功能.为专业设计师 及绘图爱好者提供简 ...

  4. c语言程序设计安卓,C语言编程宝典最新版下载-C语言编程宝典appv1.7.1 安卓版-腾牛安卓网...

    C语言编程宝典app是一款用来学习变成的软件,里面大量的教学视频,用户可以在线学习,还提供超多相关资料和习题,让用户轻松掌握知识点.小伙伴们快快下载吧! 软件简介: 这是一款学习C语言的神器 根据知名 ...

  5. 移动音乐播放平台-酷狗音乐2021提供下载

    酷狗音乐2021安卓版是一款非常受欢迎的移动音乐播放平台.酷狗音乐2021app最新版采用先进的构架设计研发,设计了高传输效果的文件下载功能,实现数据分享传输.酷狗音乐2021app拥有新歌速递.权威 ...

  6. android最新版下载安装,安卓市场APP2020最新版下载

    安卓市场APP2020最新版下载介绍 安卓市场APP2020最新版是一款很棒的软件,有最丰富的应用和游戏,两亿用户第一选择,最智能的下载和升级,节省流量高达90%,最高效的审核和把控,手机安全远离病毒 ...

  7. 尚硅谷_springcloud(2020新版) 下载_异界删除浓缩怎么得|原创下载异界仙战游戏一次搞定 异界仙战安卓下载地址最新版整理...

    这些天异界仙战游戏进行了一些晋级,不少粉丝都在座等妙手游田小妹发布最新的异界仙战下载地点,究竟结果正在线更新容易卡顿,而网上提供的所谓的"异界仙战民间最新版下载地点"也常常碰着不 ...

  8. 烹饪冒险最新版下载android,烹饪冒险最新版下载安卓

    烹饪冒险最新版下载安卓是一款超级有趣的模拟经营类手机游戏.玩家可以在游戏里面经营自己的店铺,可以在游戏里面给客人送上很多的菜肴哦.游戏里面还有很多的游戏关卡等着大家来进行游戏的哦. 烹饪冒险最新版下载 ...

  9. 尚硅谷_springcloud(2020新版) 下载_下载排行榜|原创遇见逆水寒下载新版本来袭 2020最新遇见逆水寒游戏安卓下载地址发布...

    碰见顺水寒安卓版下载分享.要想快人一步参加各类年夜型福利流动,下载并装置民间最新版碰见顺水寒客户端是要害,究竟结果一些APP上提供的各类所谓的"返利版"且不管平安性,章节更新都后 ...

最新文章

  1. node mongoose_如何使用Express,Mongoose和Socket.io在Node.js中构建实时聊天应用程序
  2. 51nod 1270 数组的最大代价
  3. Java 配置C3P0数据连接池存入数据存入数据库出现中文乱码问题
  4. Pandas简明教程:二、Pandas基本数据结构-DataFrame与Series
  5. POJ 2029 Get Many Persimmon Trees
  6. 在Xshell 6开NumLock时按小键盘上的数字键并不能输入数字
  7. 【C++】满二叉树问题
  8. ZZULIOJ 1108: 打印数字图形(函数专题)
  9. 模拟赛 sutoringu
  10. frc机器人比赛主题_RCC机器人比赛
  11. MySql 不香了?我们公司为什么放弃MySql选择NewSql?
  12. Vue阿里云物流API
  13. 拉格朗日方程的三种推导方法之基于欧拉-拉格朗日方程推导
  14. (3)Pairing Functions Element Functions
  15. java学习总结(16.06.07)类的静态成员和非静态成员
  16. F1 Score详解 查准率较高 召回率较低怎末处理?
  17. STM32F103ZE+SHT30检测环境温度与湿度(IIC模拟时序)
  18. 端到端的框架DeepInf
  19. SQLServer 2008中事务日志已满问题处理
  20. 利用form表单上传图片,图片保存到本地,得到图片名字(后期可以将图片名字存进数据库)

热门文章

  1. 经典的机器学习columnTransformer 示例,用于预处理在线文章 SOV 预测的数据
  2. HTML学习1:Dreamweaver8的安装
  3. 终于就“带宽不足”下了文,并做了强制性国家标准
  4. 浏览器安全隐患有哪些
  5. 360急救箱删除mongodb服务后的修复过程(重建mongodb服务)
  6. 美国 SOPA 法案简介
  7. 技术竞争是 AI 时代的全部吗?李开复新书读后感一则
  8. 抖音如何引流自己的精准粉丝?
  9. S7300和FX5U三菱PLC数据交换,西门子数据采集
  10. stitcher源码阅读