1. 目标
aHR0cHM6Ly93d3cudGlrdG9rLmNvbS9hcGkvc2hvcC91cy9ob21lcGFnZV9kZXNrdG9wL3NlYXJjaF93b3JkX3N1Z2dlc3Rpb24/bXNUb2tlbj1mWEItOHRoRU9hNllIblkyellKM1lLaDlBMUtGeks3NnpXWjk2bnRwMUlldjNjTDFBdmNQRllpTmtLVllXUThLNVhYUkdJRFd4VjM2ekxWWEtPNFNLLWNGUFpjLU44cGhab1pWMW1kVWxwNi01Sm8xdVZkQjM4bHBBSU1oZzN1T000dnNPeE1xRHM0LTFTMD0mWC1Cb2d1cz1ERlN6c3dTTy16MFFvRHlhQ0ZVMnpJWEZoc3E3Jl9zaWduYXR1cmU9XzAyQjRaNndvMDAwMDFVSVFBd1FBQUlERG9kLnprZ05HaTlWQ0VBZUFBRG5MYWQNCg==
2.debug
2.1. 断点

2.2 目标栈

2.3 日志断点

目标位于控制流里面,所有的数都是控制流里出的
日志断点1
bash
"执行 l->",l,"执行func->", l[Cb[110]]," 参数 U-> ",U,"返回 B->",B
日志断点2
bash
B&&console.log("执行 m->",m,"执行func->",Gb[237]," 参数 i-> ",i," 参数 s-> ",s," 参数 u-> ",u," 参数 g-> ",g," 参数 c-> ",c," 参数 d-> ",d," 参数 f-> ",f," 参数 h-> ",h)
日志断点3
bash
B&&console.log("执行 Cb->",Cb,"执行func->", Cb[0]," 参数 B[0]-> ",B[0]," 参数 W-> ",W," 参数 N-> ",N," 参数 B[1]-> ",B[1])
日志断点4
bash
!B&&console.log("执行 U->",U,"执行func->", U[Gb[1]]," 对象 W-> ",W," 参数 N-> ",N,"返回 M->",M,"typeof M:",typeof M)
3.日志分析
3.1 扣代码
从x-bogus完结开始就是signature的签名,然后开始扣代码

这里开始,会有个时间戳的计算,扣代码不必讲
这些代码最后会拿到一些数
bash
927717054
1566359821
e_s 35391881347265
e_s_ma 2185601929
e_s_ua 3083975405
bodyhash 3093772032
paramshash 1472233066
Canvas 3102997541
3.2 计算值
控制流出数,部分不复杂的计算是直接丢在控制里面的,非常需要耐心,这是我的一些控制流计算日志
bash
927717054
1566359821
e_s 35391881347265
e_s_ma 2185601929
e_s_ua 3083975405
bodyhash 3093772032
paramshash 1472233066
Canvas 3102997541
e_s 35391881347265
35391881347265>>2 337707056
337707056>>24 20
20&63 20
20<26? 20+65 ->U
337707056>>18
1288
1288&63 8
8<26 8+65 ->I
337707056 >>12
82448
82448&63 16
8<26 16+65 ->Q
337707056 >>6
5276672&63 ->I
337707056
337707056&63 48
I{35} 52
26<48<52
48+71 -> w
UIQAw
---
4294967296 //未知
35391881347265<<28 268435456
8240>>4 515 //8240未知
268435456+515 268435971
268435971 //推测>> 24
16<26 16+65 >Q
268435971 //推测>> 18
1024&63 +65> A
268435971>>12 &63 +65 ->A
268435971>>6 &63 +65 ->I
268435971&63 +65 ->D
***QAAID
---
3102997541 //画布
35391881347265
3102997541^35391881347265 //-394789660
8240<<26 //-1073741824
R=60940275
-1073741824^60940275 //-1012801549
-1012801549>>24 -61
-61&63=3 ->D
***Dod.z
---
-394789660 //上一步画布
-394789660&63 >36
36+71 > k
----
1472233066 //paramshash
1472233066%65521 41717
-2133744907 //??
-2133744907>>2 -533436227
-533436227 >>24 //-32
-32&63 +65>g
***gNGi9
-----
35391881347265
-2133744907
-2133744907>>28 //-8
1350828513 //?
1350828513>>>4 //84426782
1426604062 //?
1426604062>>24 85
85&63 +65 ->V
*** VCEAe
----
1566359821%65521 =14795 //1566359821时间戳计算一次
14795>>24 //0
0&63 +65 ->A
*** AADnL
----
1350828513 //出现于 gNGi9输出后
1350828513 <<26 //-2080374784
1350828513 | 0;
-2080374784>>24 -124
-124&63 + 65 //E
*** EAAAA
---
0&63 + 65 //A
---
1350828513
输出 "_02B4Z6wo00001UIQAwQAAIDDod.zkgNGi9VCEAeAADnL"
--
bodyHash(0,"_02B4Z6wo00001UIQAwQAAIDDod.zkgNGi9VCEAeAADnL")//854188717 扣代码
parseInt(854188717).toString("16") // 32e9e2ad
32e9e2ad slice 6,8 //ad
"_02B4Z6wo00001UIQAwQAAIDDod.zkgNGi9VCEAeAADnLad"
然后代码实现一遍,和他的输出结果一致即可
4. notice
搞了两天,头晕眼花,还有三个参数没出,重新跟一下应该很快能出。
有些参数可以直接推出来,控制流的算法非常少。
网上特地搜了下,没有海外的_signature的签名,有国内的,非常相似,可以借鉴部分code。