好久没有更新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=主要是当鼠标轨迹从一个元素移动到另外一个元素上面时才会进行纪录,接下来,我们就开始模拟生成轨迹。
上面是代码生成部分了,模拟的还算是可以。里面的细节还待继续优化