skuukzky
文章9
标签0
分类2

文章分类

qqsign jsvmp算法还原

qqsign jsvmp算法还原

jsvmp-qq 音乐

入口处

直接搜 sign 打断点就好了 就定位到这个地方。

image-20240823142057651

t.data 是加密的 params

进入 o,印入眼帘的则是 jsvmp 了

image-20240823142219618

直接在 switch 处打上断电,猛梭就完事了。

输出的是 d 这个数组。

我们在上文中看到了一些 sha1 中的 4 轮运算的值

所以大胆猜测一下,他对我们的加密的字符串 params 做了 sha1 的加密操作,所以我们带到一个网站去加密然后验证一下

image-20240823142852579

所以直接从 sha1 值第一处的往下分析。

有时间在讲吧,下面就是对 switch 插装 '索引',n[g+1],g+1,'值',console.log(d)

call 地方打索引断点 。

贴出代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
var aaa = [23, 14, 6, 36, 16, 40, 7, 19];
var bbb = [16, 1, 32, 12, 19, 27, 8, 5];
var ccc = [
  89, 39, 179, 150, 218, 82, 58, 252, 177, 52, 186, 123, 120, 64, 242, 133, 143,
  161, 121, 179,
];
var string_to_num = {
  0: 0,
  1: 1,
  2: 2,
  3: 3,
  4: 4,
  5: 5,
  6: 6,
  7: 7,
  8: 8,
  9: 9,
  A: 10,
  B: 11,
  C: 12,
  D: 13,
  E: 14,
  F: 15,
};
var b64str =
  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var data_Sha1 = "e3b7e88c5178c77fec1228baf2d8515f81e8809e".toUpperCase();
var stra = aaa
  .map((x) => {
    return data_Sha1.charAt(x);
  })
  .join("");

console.log("first", stra);
var strb = bbb
  .map((x) => {
    return data_Sha1.charAt(x);
  })
  .join("");
console.log("last", strb);

var result_arr = [];
for (let i = 0; i < 2 * ccc.length; i++) {
  var a1 = data_Sha1[i],
    a2 = data_Sha1[i + 1],
    b1 = string_to_num[a1],
    b2 = string_to_num[a2],
    c = ccc[i / 2],
    result = (b1 * 16) ^ b2 ^ c;
  result_arr.push(result);
  i++;
}

console.log(result_arr);
console.log(result_arr.length);
console.log(String.fromCharCode(...result_arr));
// /[+=]+$/
var str_medium = btoa(String.fromCharCode(...result_arr)).replace(
  /\+|=+$/g,
  ""
);

console.log("str_medium", str_medium.toLowerCase());

result_str = ("zzc" + stra + str_medium + strb).toLowerCase();
console.log(result_str);

image-20240824152846683

本文作者:skuukzky
本文链接:https://lpy30m.github.io/skuukzky.github.io/2024/08/23/%E9%80%86%E5%90%91/jsvmp-QQ%E9%9F%B3%E4%B9%90sign/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可