PerimeterX 轨迹算法模拟

好久没有更新PerimeterX,这次就更新下PerimeterX的轨迹部分吧。我们在最后按压的时候会发送一个大列表,里面的px561里面有两处轨迹的地方的,如下图
下面我们可以分析下这三个参数了:
   

     OAVMTn5nRnQ=[
     "38,410,9455",
    "90,323,12080",
    "89,334,12089",
    "90,345,12104",
    "97,358,12119",
    "112,368,12134",
    "132,374,12149",
    "154,377,12164",
    "194,380,12186",
    "236,384,12201",
    "283,390,12216",
    "350,399,12231",
    "403,405,12246",
    "436,408,12261",
    "463,411,12277",
    "484,415,12299",
    "501,418,12314",
    "514,419,12329",
    "529,420,12344",
    "548,419,12360",
    "572,417,12374",
    "598,412,12389",
    "626,406,12404",
    "657,398,12427",
    "678,391,12441",
    "682,389,12629",
    "683,392,12644",
    "685,400,12660",
    "690,407,12674",
    "692,409,12719",
    "693,410,12787"
]
     VGFgahIMYV4= [
    {
        "PX12343": "mouseout",
        "PX11652": 0,
        "PX11699": 11828,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 0,
        "PX11699": 14393,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseout",
        "PX11652": 0,
        "PX11699": 14597,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 1,
        "PX11699": 14597,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 2,
        "PX11699": 7159,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseout",
        "PX11652": 2,
        "PX11699": 7271,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 2,
        "PX11699": 7271,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseout",
        "PX11652": 2,
        "PX11699": 17434,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 2,
        "PX11699": 17434,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseout",
        "PX11652": 2,
        "PX11699": 17451,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 2,
        "PX11699": 17451,
        "PX12270": "true"
    },
    {
        "PX12343": "pointerup",
        "PX11652": 2,
        "PX11699": 17668,
        "PX12270": "true"
    }
]
[
    {
        "PX12343": "mouseout",
        "PX11652": 0,
        "PX11699": 11828,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 0,
        "PX11699": 14393,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseout",
        "PX11652": 0,
        "PX11699": 14597,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 1,
        "PX11699": 14597,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 2,
        "PX11699": 7159,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseout",
        "PX11652": 2,
        "PX11699": 7271,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 2,
        "PX11699": 7271,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseout",
        "PX11652": 2,
        "PX11699": 17434,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 2,
        "PX11699": 17434,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseout",
        "PX11652": 2,
        "PX11699": 17451,
        "PX12270": "true"
    },
    {
        "PX12343": "mouseover",
        "PX11652": 2,
        "PX11699": 17451,
        "PX12270": "true"
    },
    {
        "PX12343": "pointerup",
        "PX11652": 2,
        "PX11699": 17668,
        "PX12270": "true"
    }
]
M2IHKXYHAhs=[
    "BODY",
    "#px-captcha",
    ""
]

   //其中的OAVMTn5nRnQ= 里面应该是x,y,t
   //VGFgahIMYV4= 里面的参数 PX11699 是时间戳相减,PX12270默认为true,PX12343为鼠标移动的到页面元素事件,PX11652移动的类型
    //M2IHKXYHAhs= 是页面元素的标签

现在我们只需要根据上面猜想去验证。我们先看第一个:

可以看到这个Se 在我们鼠标移动的时候会往里面进行push,然后只取出前150个轨迹后面的不会需要的。接下来我们分析这个轨迹。
可以看到生成的位置在这里,对这个MouseEvent对象进行处理,取出type,检测轨迹存在元素节点的位置。

第二个就能看到我们需要的这个Oe就是我们需要找到的第二个,他只需要取出前50个就可以了
然后第三个就出现在这里
        
可以看到当鼠标移动的时候 它会检测到轨迹,然后对轨迹进行分类计算得到不同类型的参数。其中VGFgahIMYV4= 这个只有在轨迹移动到最外层的body的时候才会计算,并且记录鼠标事情类型。M2IHKXYHAhs=主要是当鼠标轨迹从一个元素移动到另外一个元素上面时才会进行纪录,接下来,我们就开始模拟生成轨迹。

​​​​​​​上面是代码生成部分了,模拟的还算是可以。里面的细节还待继续优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值