旋转验证码每次验证后Storage中的 b1会变。
直接hook下Storage的 setItem方法。
var originalSetItem = Storage.prototype.setItem; Storage.prototype.setItem = function(key, value) { console.log(`Setting item: ${key} with value: ${value}`); originalSetItem.call(this, key, value); };看到了b1被修改。
跟着看看
到这里不用跟了,和签名一样的逻辑,找入口就行。
测试发现是每当调用window.xhsFingerprintV3 后会对Storage 进行set操作。
通过window.xhsFingerprintV3.getCurMiniUa可以取到b1。
console.log(window.xhsFingerprintV3.getCurMiniUa( function () { console.log("b1:",arguments['0']) } ))把JS拿下来运行,发现b1短一截。
本地参数差的有点多。
一个一个补下,不全的b1也能用于验证。