js加密逆向

爬虫JS逆向实战:AES加密原理与JavaScript实现详解 AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,采用分组加密策略。在Web逆向工程中,AES常见于接口参数加密、敏感数据保护等场景。 阅读详情

        在现代网页与接口交互中,JavaScript 加密已成为保护数据安全与防止恶意访问的重要手段。无论是接口签名、令牌生成,还是请求参数加密,这些机制的本质是通过前端逻辑与密钥算法来验证请求的合法性。对于数据采集、自动化测试或安全研究人员来说,理解和分析这些加密流程,不是为了规避安全机制,而是为了在获得合法授权的前提下,确保程序端能够正确构造请求,与系统保持一致性。本文将以合规、安全为前提,总结 JS 加密逆向在 Python 爬虫中的常用方法与注意事项,帮助读者在学习技术的同时,时刻牢记法律与道德边界。

一、什么是“JS 加密/签名”

        网站为了防刷或保护接口,会在请求里加上动态参数(如 sign、token、nonce、timestamp、x-b3 等),这些值通常由浏览器端 JS 算法计算(可能还带 AES/RSA/HMAC/MD5、Base64、Gzip、Protobuf、WASM、混淆压缩、时间随机数、设备指纹等)。逆向的本质是:找出这些值是在哪儿、怎么被算出来的,然后在你的爬虫里复现。

二、定位:先“找哪里算”,再“看怎么算”

核心工具:Chrome DevTools(Network + Sources)、断点、反混淆、对比法。

步骤

  1. 抓包对比

    • 在 DevTools → Network 里锁定关键接口(响应是你想要的数据)。

    • 右键 “Copy as cURL”,对比不同请求里哪些字段会变(多半是签名/时间戳/nonce/一次性 token)。

    • 观察请求顺序:很多站点会先请求“预签名/密钥/挑战”,再请求业务数据。

  2. 静态检索(Sources 面板)

    • 搜关键词:sign、token、nonce、md5、CryptoJS、RSA、AES、subtle.digest、btoa/atob、toString(36)、hmac、sha256、fetch、XMLHttpRequest。

    • 点击 “{}” 按钮 Pretty print 代码,或下载 .js 反混淆(如 jsnice/deobfuscator)。

    • 看签名构造链:通常是「拼参与排序 → 加盐/拼接固定串 → 算哈希/加密 → hex/base64 输出」。

  3. 动态断点

    • Network 面板点击请求 → Initiator 查看是谁发的。

    • Sources → 右侧 XHR/fetch 断点(Break on XHR/Fetch),让请求一发出就断住,沿调用栈往上看。

    • 事件断点:Breakpoint on → Script / setTimeout 等,卡住混淆时序。

    • 在关键函数上插入 debugger;(临时修改)/ 或右键添加断点。

三、动态 Hook(最省时间)

当代码混淆严重时,用注入 Hook直接把输入/输出打印出来,比硬啃混淆快很多。

Playwright 注入全局 Hook(推荐):

# pip install playwright && playwright install
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    ctx = browser.new_context()
    page = ctx.new_page()
    page.add_init_script("""
    // 1) Hook fetch / XHR,打印请求与 body
    (function(){
      const _fetch = window.fetch;
      window.fetch = function(input, init){
        try { console.log('[HOOK][fetch]', input, init && init.body); } catch(e){}
        return _fetch.apply(this, arguments);
      };
      const _open = X
【JS逆向学习】国家加密系列-SM算法实例 事实上从 2010 年开始,我国国家密码管理局就已经开始陆续发布了一系列国产加密算法,其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。目前,这些算法已广泛应用于各个领域中。其中。 阅读详情

相关推荐

JS逆向破解加密实战(宝塔篇)

本文是对宝塔搭建网站的前端加密破解实战,不要错过,学到就是赚到。

m0_68868181的博客 3245

如何逆向分析JavaScript加密接口:以Python调用JS加密函数为例-题三

本文通过一个实际案例,演示了如何分析JavaScript加密逻辑,并通过Python调用JS函数完成加密通信的全过程。关键点在于:准确分析前端加密逻辑选择合适的JS调用方案模拟完整的请求流程处理分页等业务逻辑这种技术方案适用于大多数使用前端加密的网站接口,具有广泛的适用性。

qq_43580271的博客 1246

JS逆向进阶篇【去哪儿旅行登录】【下篇-逆向Bella参数JS加密逻辑&Python生成】

JS逆向进阶篇【去哪儿旅行登录】【下篇-逆向Bella参数JS加密逻辑&Python生成】

孤寒者的博客 3万+

js逆向之加密算法介绍

目录 前言 一、js常见的加密方式 Md5加密 对称加密DES/AES 非对称加密RSA base64伪加密 前言 何为逆向:与逆向相对的是正向,正向即采用某种加密方式对数据进行加密,或对加密代码进行混淆,以增加反爬策略的复杂度。那么逆向就很好理解了:对加密的方式进行破解、还原。 现在越来越多的网站在web前端使用js对数据进行加密处理,当我们想对网站的某个登录框进行爆破的时候,发现密码字段进行了加密,这就头疼了使得我们爆破不了。接下来就对如何进行js逆向,找出其加密算法做一个分析。 一

渗透之路,攻防之间皆学问 5787

JS逆向中快速搜索定位加密函数技巧总结

如何快速搜索与定位JS加密函数?小技巧总结已备好

吴秋霖的博客 1万+

绕过加密参数:分析JavaScript逆向获取加密参数【爬虫入门篇】

摘要:JavaScript逆向分析获取加密参数 本文介绍了通过分析JavaScript逆向获取加密参数的方法,帮助绕过网站反爬机制。主要内容包括: 加密参数类型分析:从简单的Base64编码到复杂的AES/RSA加密,以及网站自定义算法 JavaScript逆向技术:通过开发者工具查找加密函数、断点调试和控制台执行验证 常见加密算法实现:提供了Base64、MD5和AES加密的Python实现代码 实战示例:演示了三种加密参数的实际应用场景 PyExecJS工具:介绍如何直接执行JavaScript加密函数

博客 1120

手把手教你搞定CAC会议投稿:从LaTeX模板到PDF eXpress避坑全流程

本文详细解析CAC会议投稿全流程,重点介绍LaTeX模板调整、Turnitin查重技巧及PDF eXpress校验避坑指南。通过实战案例和代码示例,帮助研究者高效完成IEEE格式论文投稿,避免常见技术性失误,提升投稿成功率。

weixin_29969209的博客 397

算法基础之数组双指针(Leetcode题型归纳)

数组双指针(Leetcode题型归纳)1.前言2.双指针基础3.相向双指针3.1定义3.2真题分析3.2.1两数之和(1)3.2.2两数之和-输入有序数组(167)3.2.3三数之和(15)3.2.4最接近的三数之和(16)3.2.5四数之和(18)3.2.6盛最多水的容器(11)3.2.7有效三角形的个数(611)4.同向双指针-快慢指针4.1定义4.2真题分析4.1.1删除排序数组中的重复项(26)4.1.2移除元素(27)4.1.3删除排序数组中的重复项(80)4.1.4移动零(283)4.1.5数组

Buluchacha的博客 1034

用ADS2023手把手仿真SKYWORKS SMA1234变容二极管:从Datasheet到S参数结果全流程

本文详细介绍了如何使用ADS2023仿真SKYWORKS SMA1234变容二极管的全流程,从Datasheet参数解析到S参数结果验证。通过等效电路建模、关键公式编写和仿真设置,帮助工程师掌握变容二极管在射频电路设计中的应用技巧,提升仿真精度和工程实践能力。

weixin_29233333的博客 502

Blender - Shrinkwrap - 更方便的制作贴合模型的表面来建模

Shrinkwrap 修改器 使用 Blender 想要快速建模可以贴合现有模型表面的效果:衣服、皮肤、等效果,可以使用 Shrinkwrap 修改器,这个修改器的名字其实按照英文上的理解,翻译为:收缩的包裹效果 应用 如这块铁皮,它要贴合机身弯曲的效果,可以先建好一个铁皮,再 Shrinkwrap 到一个指定的网格上 留意的参数 Target 要贴合的对象(目前我已知是可以贴合到网格对象上,实在是方便) VertexGroup 顶点组,和之前讲到过的,顶点组可以组设顶点的权重,意思这个可.

Jave.Lin 的学习笔记 6073

Android Qcom USB Driver学习(十三)

该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) Android Qcom USB Driver学习(八) Android Qcom USB Driver学习(九)deals with the USB Power Delivery resources used by one or more ports on the basis of the local device policy the basis of the local device policy.opera

Android驱动开发 2615

从《视觉SLAM十四讲》到项目实战:一文读懂拓扑地图与语义地图为何是服务机器人的未来

本文探讨了服务机器人地图技术的演进,从传统几何地图到拓扑地图与语义地图的跨越。通过分析栅格地图的局限性和拓扑地图、语义地图的优势,揭示了它们在动态开放环境中的智能应用。文章还介绍了多模态语义融合架构和动态语义更新技术,为服务机器人的未来发展提供了技术路线图。

weixin_30292843的博客 478

机器学习第四个算法ANN(人工神经网络)

我是在14年9月刚读研的时候听到一个说法叫“类人脑算法”很火热,之后搞了很长一段时间相关的蓄水池算法等,但大都没有摸到门路而中途放弃了。现今看来,还是缺少一些知识背景,也不善于在网络上学习,随时间推移,也逐渐明白这是机器学习的一小部分,并且逐渐发展的名称叫做人工神经网络的算法,如果网络层较多,又会有个别名,叫做深度学习。其中个用到的最著名的算法是背向传输算法(backpropagation),而这个

legalhighhigh的博客 1万+

RK3588之内存带宽计算及达成率

本章来和大家介绍一下内存带宽的计算与达成率

文艺小少年的博客 1816

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: Vibe Coding 自然语言驱动 AI 编程方式
下一篇: Python 常用库速查手册
Ghostycode
博客等级 码龄5年 132粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值