论坛首页 安全工具分享区 阅读主题

[原创]某云音乐爬取-反调试绕过,js调用栈回溯,web算法逆向

143 浏览 2 回复
#1 楼主 2026-06-01 21:09:08
本文以某云音乐爬虫案例为基础,详细探讨了从工具准备到目标数据爬取的全过程,包括爬取目标的需求分析、关键数据的识别以及加密参数的解析和破解。在学习其他案例是发现很多爬虫文章都是莫名其妙的获得某些数据,不知道前因和后果,所以这里就讲逆向和调试的细节分享出来!包括利用源代码搜索、静态堆栈调用回溯、动态调试以及动态堆栈调用等技术手段,最终锁定目标加密函数的调用位置。
本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与文章作者无关,本文只做模拟不做任何真实对象的爬取!在正式开始之前,先确认以下工具和环境已准备就绪:新手在接触爬虫时最难也是最痛苦的阶段就是绕过反爬虫和反调试了,目前总结一下爬虫过程种遇到的主要反爬手段和难点技术,这里主要做汇总分析,想了解详细原理的可以移步相关链接!下面是目前主流的反调试和反爬虫手段:
1.无限 Debugger 技术
这些方法的核心思想是通过动态插入 debugger 来中断代码执行,增加调试的复杂度。通常采用这些技术的组合与变形,使反调试手段更加隐蔽且有效。2.阻止开启浏览器开发者工具
通过检测浏览器的行为或使用工具强行禁用开发者工具,这些方法可以有效防止爬虫或调试行为,尤其在页面载入和交互过程中增加了监测和干扰。3.前端代码混淆技术
前端代码混淆技术通过减少代码可读性、隐藏关键数据、以及分发资源的方式,阻碍逆向工程和爬虫的成功率,提高了安全性和防护力度。浏览器反爬虫手段汇总:我们为什么要绕过反调试?因为原生浏览器才是最好的js调试环境和算法逆向工具!不然为什么这么多的网页都来进行反爬虫反调试?而且市面上的最主流的调试工具都是浏览器?而不像Linux,Windows逆向那样市面上存在五花八门各种各样的调试器?下面就来讲解绕过反调试技术的核心原理!目前,反调试手段主要通过检测浏览器的行为来进行防护。然而,这些反调试代码通常是从服务器端传输到浏览器的,这意味着这些代码必须先到达浏览器才能执行。关键问题在于,在从服务器传输到浏览器的过程中,反调试代码无法被执行,但相关的流量依然可以被第三方的抓包工具截获并转发。下面是流量的流程交互图:
这是正常的浏览器和服务器交互:

这个是爬虫工作者一般的浏览器交互图:
因此,尽管开发者工具被禁用,但是由于反调试代码通常嵌入在 JavaScript 或 HTML 中,仍然可以通过抓包工具获取这些前端页面代码进行分析。我们可以使用中间的代理工具Charles,Fiddler,等抓包工具,替换相关的 JavaScript 和 HTML 代码,从而逐步一次次的绕过目标页面中的各种反调试手段。这样,就能利用浏览器自带的调试工具和抓包工具进行逆向分析和爬虫操作。这种方法有效地避开了反调试措施,助力爬虫技术的实施。下面是相关案例,都可以通过替换原有js代码来进行绕过反调试:在Web安全领域,反调试技术常被用于防止攻击者通过开发者工具对网页进行调试,从而保护网页中的敏感逻辑和代码不被轻易篡改或分析。然而,随着攻击者技术的不断提升,绕过这些反调试措施的方法也层出不穷。以下是对几种常见绕过反调试技术的策略进行理论化总结与拓展。案例一展示了使用disable-devtool插件阻止用户打开开发者工具的情况。针对此类反调试技术,攻击者和防御者可以采取以下策略:案例二展示了使用eval或Function构造函数执行无限debugger语句的反调试技术。这些技术通常会导致代码难以阅读和调试。攻击者可以通过以下方式绕过:案例三展示了将反调试代码嵌入到开源框架(如jQuery)中的情况。这种策略增加了识别和绕过反调试措施的难度。攻击者可以采取以下策略:实验网站:d95K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6M7r3W2V1k6i4u0T1N6h3k6Q4x3X3g2U0L8W2)9J5c8Y4m8D9j5i4W2Y4M7X3!0#2L8X3c8Q4x3V1k6Z5x3o6b7`.
在实际操作中,攻击者需要综合考虑目标网页的复杂性、安全性以及自身的技术能力。以下是一些实用的替换策略:在Web爬虫和数据抓取领域,通过抓取数据包来获取目标资源的URL是一种常见且有效的策略。以下是对这一策略的理论化总结与拓展,包括目标确定、数据包分析、关键数据识别以及自动化实现等方面。首先,需要明确要抓取的目标网页和具体的资源(如音乐、视频、图片等)。在本案例中,目标是抓取某云音乐平台上的音乐资源URL。明确目标后,可以开始分析资源的加载方式,如通过Ajax请求加载资源等。首先找到要爬取的目标网页:

找到目标先确定单首音乐的爬取方式才可以确定完整的方法!
首先分析一下资源的加载方式:当我点击播放按钮后音乐开始播放!!由此可以得出某云的资源加载方式是ajax!
分析接下来的需求,先开启抓包然后筛选出需要的url资源目标链接!
开始抓包!!!本次并无任何反调试主要是算法逆向!!使用浏览器开发者工具或第三方抓包工具(如 Wireshark、Fiddler)捕获网络数据包后,可通过分析请求 URL、方法和请求头筛选出与目标资源相关的 HTTP 请求,重点关注 XHR 数据包,其中通常包含以 JSON 格式传递的关键数据(如资源 URL)。
开启F12后在点击音乐播放就可以发现很多的数据包,由于这种音乐格式的数据包大部分都是通过json格式的数据中藏有mp4链接来传递数据,所以首先就是选中XHR这里的数据包进行分析!分析 XHR 数据包的响应内容时,可通过预览响应快速定位关键字段,解析 JSON 格式数据提取目标资源 URL,并通过直接访问或工具测试验证 URL 的有效性。一个个的手工看,可以发现一个我们需要的资源链接:

可以看见update,weblog,get,v1等等的HTTP的请求数据包,这些数据包中都有可能藏有关键数据,但是更多还是靠经验,没有经验的话就直接一个个看:主要是看数据预览部分,来查看数据!我们就可以得到一个音频链接:93fK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3@1^5x3o6c8Q4x3X3g2E0N6i4y4A6j5#2)9J5k6e0p5J5y4W2)9J5k6h3&6W2N6q4)9J5c8U0t1H3x3U0b7I4x3e0p5K6x3o6p5I4y4U0x3$3i4K6u0r3j5K6f1K6k6o6b7H3x3U0b7@1x3U0R3%4k6h3b7I4y4U0f1H3y4$3q4V1y4U0R3$3j5U0k6S2z5o6y4W2z5o6k6Q4x3V1k6B7k6s2W2&6j5h3q4U0i4K6u0r3L8$3u0B7i4K6u0r3N6K6g2J5c8r3I4K6e0@1A6%4M7V1I4p5K9X3Z5%4b7$3#2K6e0$3A6Q4x3V1j5J5z5o6b7^5x3e0j5%4y4U0R3J5x3#2)9J5c8U0c8S2k6U0c8Q4x3V1j5K6j5U0R3J5i4K6u0r3k6r3f1K6j5#2)9J5c8U0l9^5x3X3k6U0y4e0x3%4j5$3f1%4x3K6R3I4z5h3q4X3k6r3g2T1y4

...(已截断)

---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-284757.htm
#2 2026-06-01 21:09:08
顶下
那么剩下的就是找asrsea函数了!,东盎太调试下个断点,然后鼠标移动到函数上就可以进行代码跳转了!
其中“东盎太”是“动”吧
#3 2026-06-01 21:09:08
怎么可以跳过无限debugger

请登录后参与讨论

立即登录 注册账号