同盾滑动验证码图片还原

同盾滑动验证码图片还原

在线体验地址:
https://x.tongdun.cn/onlineExperience/slidingPuzzle

调试步骤和极验一样,都是在Canvas相关函数下断点。
Snip20191025_41

图片宽度为320,高度为180。按8列、2行分割成16个块。只需要确定这16个块的顺序,就可以还原图片。与极验固定的块顺序不同,同盾的块顺序是随机的,且需要根据返回的数据进行计算才能得到。

验证码初始化的时候会返回验证码图片链接、块顺序计算所需的信息等。示例数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"failMes":"验证成功",
"needValidateCode":true,
"seqId":"1571985774253028F47CD021F5189943",
"statusCode":"200",
"success":true,
"validateCodeObj":{
"bgImageSplitSequence":"6243D8A0B9EFC517",
"encryptGeneral":"V9OX27e0sOkbMbaTdFCzKP6qHWRemwAmNONEMG8qLqQ=_2",
"encryptVerification":"QsFjbubWqVeQDEhGGiiWMcAIgnmDibVhutukb36lihU4MSjACHDMQT0q0IwyKpnV_2",
"height":315,
"imageGeneral":"WYGwwBnd4fhf2Lj/+YuF6H2XEGI=",
"imageType":"1",
"slideBgi":"/sphinx/slide-bg/77caa3d25cb4c6b4a57fb90066c4bf94cbaf5d98741dd583bc51eac8811d2701ab7f88dd963af1ef57f60212987d7c17.jpeg",
"slideImage":"/sphinx/slide/77caa3d25cb4c6b4a57fb90066c4bf94cbaf5d98741dd583bc51eac8811d2701ab7f88dd963af1ef57f60212987d7c17.png",
"slideY":121,
"width":350
}
}

块顺序由imageGeneralbgImageSplitSequence按一定规则计算后确定。

imageGeneralbgImageSplitSequence的相关算法抠出来,本地实现了图片还原。