某盾blackBox逆向——纯算
某盾的JS更新频率很高,所以案例网址就不放了,放了也没意义
前面提到某盾JS更新频率很高,那我们看这文章干啥,看完就更新了。我是上个月搞的同盾,到现在为止更新了两个版本的JS,但是,以前的算法依然能用,他只是改变了混淆策略和代码结构,算法是没有更改的,所以我们直接扣纯算就行。
思路:
对于补环境来说检测环境点太多了,逆cookie的话那是没办法,对于blackBox来说没必要,直接扣算法就行,也不复杂
结构目录:
(1)解混淆
(2)跟值;
(3)控制流
(4)结果展示
-
解混淆
我们第一步先把代码解混淆,方便分析代码结构,这个混淆是最后的一大长串字符串,经过最后的那个执行函数的一个方法后会得出一个数组,再把这个数组赋值给一个变量,后面会疯狂调用这个变量
贴部分初步解混淆代码示例:
var OO0o0O = function (OQ0QO) { if (Array["isArray"](OQ0QO)) { for (var oQoQ0 = 0, oOoQ0 = Array(OQ0QO["length"]); oOoO00(oQoQ0, OQ0QO["length"]); oQoQ0++) oOoQ0[oQoQ0] = OQ0QO[oQoQ0]; return oOoQ0; } else { return Array["from"](OQ0QO); } };
我只还原了一下字面量,基本能看了,虽然还能进一步还原,但是,懒。
PS.像OO0o0O
这种变量名是还原不了的,只能将就看,要是觉得很影响分辨不同变量名,可以看看蔡老板的优化变量名的代码。
-
跟值
断住blackBox后直接往后跟,进入这个方法
可以看到代码结构很清晰,跟一下是哪个return,就能直接看出逻辑
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AbMZ3Ckb-1684661526243)(C:\Users\Administrator\Desktop\文档\文章\同盾\算法位置.png)]
-
控制流
不要看到控制流就放弃,他的这个控制流短的很,而且里面代码不能说不复杂,只能说很简单
var oOoOQ = 12; while (oOoOQ) { switch (oOoOQ) { case 13: { //代码块 oOoOQ = 14; break; } case 14: { O0Q00++; oOoOQ = 12; break; } case 12: { oOoOQ = oOoO00(O0Q00, 1000) ? 13 : 0; break; } } }
然后扣吧扣吧就出结果了,最后的算法长度真不长,也就十几行,注意最上边那个变量是token值,是在一个json请求里的,大家抓一下包就能看到