新闻动态

Python爬虫 某盾js逆向_fp参数详解

2022-03-25

本博客仅供学习使用,请勿用作其他商业用途,如有侵权,请立马告诉本菜鸟,谢谢!
上一篇博客中,本菜鸟推演出了cb参数的具体实现流程和算法,并用Python代码进行了还原,因为2.62这个版本的js是经过混淆了的,所以这其中的工作量还是比较大的,但是作者也是坚持了下来,可以说这一代的某盾所有的参数都已经被本菜鸟拿捏,所以呢就为大家提供一个学习的思路
今天废话有点多了,接下来我们直接开干!
首先,我们搜索fp打上断点:

运行程序,进入第一个断点,发现其中fp中存在值,所以我们继续跟右侧的栈:

在这里插入图片描述

在这里插入图片描述

 

我们逐渐跟到这个函数内部,发现window.gdxidpyhxde是在这个函数内实现的,且和我们fp参数一致,所以我们锁定此函数,此函数返回的_0x32faa8 = _0x32faa8 + _0x404143[0x7] + _0x38c56c就是我们需要的fp参数,如果大家不好跟到这个函数,我为大家提供一个hook的方法:
1.打开浏览器清空网站缓存
2.打上浏览器事件监听断点

在这里插入图片描述

3.点击断点运行

4.当运行至下面这个页面,注入hook代码,注入成功后放开断点(这里也可以直接用油猴插件)

 

在这里插入图片描述

(function() {
    'use strict';
    var _fp =window.gdxidpyhxde;
    Object.defineProperty(window,'gdxidpyhxde',{
        get:function(){
            console.log("调用fp",_fp)
            debugger;
            return _fp;
        },
        set:function(val){
            console.log("生成fp",val)
            debugger;
            this._value = val;
            return val;
        }
    })
    // Your code here...
})();

5.运行后程序会直接在生成fp参数时断住,后面就直接跟栈,查看参数

在这里插入图片描述

然后就直接跟到函数内部_0x18a835()

在这里插入图片描述

这个函数得到fp的值,所以我们就扣这个函数,但是在扣取的过程中,这段js代码在检测我们的浏览器参数,秉着缺啥补啥的原则,我们要补齐检测的这些属性,这里的知识点覆盖太多,就此略过 ^_^

在这里插入图片描述

在这里插入图片描述

 

所以我们在扣js代码的时候要补全这段代码所需的浏览器环境,这里我就不做过多的阐述了,下面看看我的一部分代码

 

在这里插入图片描述

在这里插入图片描述

用Python代码测试一下:

在这里插入图片描述

这样我们的fp参数就顺利生成成功了!而且加入cb参数后,请求验证码图片,请求成功!

在线充值在线咨询在线电话返回顶部

技术支持

电话咨询

19922193247

超10000+ 企业选择我们,快速体验!

温馨提示:我们将在您提交信息后的30分钟内与您取得联系,请您保持电话通畅,谢谢!