吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 552|回复: 3
收起左侧

[其他原创] 某Q音乐表单数据的差异化规律分析

[复制链接]
13955925361 发表于 2025-4-29 19:31
本帖最后由 13955925361 于 2025-4-29 20:13 编辑

目前已知第一次发送请求的sign,time,但是做不到表单数据的自动化,
第一次请求的结果中的purl参数和主域名拼接得到第二次请求的网址,

所以说弄清搜索不同歌曲表单数据的变化规律是关键,参数太多。


[JavaScript] 纯文本查看 复制代码
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
window=global
function getEnvs(proxyObjs) {
    for (let i = 0; i < proxyObjs.length; i++) {
        const handler = `{
      get: function(target, property, receiver) {
        console.log("方法:", "get  ", "对象:", "${proxyObjs[i]}", "  属性:", property, "  属性类型:", typeof property, ", 属性值:", target[property], ", 属性值类型:", typeof target[property]);
        return target[property];
      },
      set: function(target, property, value, receiver) {
        console.log("方法:", "set  ", "对象:", "${proxyObjs[i]}", "  属性:", property, "  属性类型:", typeof property, ", 属性值:", value, ", 属性值类型:", typeof target[property]);
        return Reflect.set(...arguments);
      }
    }`;
        eval(`try {
            ${proxyObjs[i]};
            ${proxyObjs[i]} = new Proxy(${proxyObjs[i]}, ${handler});
        } catch (e) {
            ${proxyObjs[i]} = {};
            ${proxyObjs[i]} = new Proxy(${proxyObjs[i]}, ${handler});
        }`);
    }
}
 
window=global
proxyObjs = ['window', 'document', 'location', 'navigator', 'history', 'screen']
getEnvs(proxyObjs);
 
 
location={
 
    "host": "y.qq.com",
 
}
 
navigator={'userAgent':
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36 Edg/135.0.0.0"}
 
 
 
 var G = "undefined" !== typeof e ? e : "undefined" !== typeof window ? window : "undefined" !== typeof self ? self : void 0
          , Y = function(e) {
            return e && "undefined" != typeof Symbol && e.constructor === Symbol ? "symbol" : typeof e
        };
        (function() {
            var e = function(e, t, n) {
                for (var r = [], i = 0; i++ < t; )
                    r.push(e += n);
                return r
            }
              , t = function(e) {
                for (var t, n, r = String(e).replace(/[=]+$/, ""), o = r.length, a = 0, u = 0, c = []; u < o; u++)
                    ~(n = i[r.charCodeAt(u)]) && (t = a % 4 ? 64 * t + n : n,
                    a++ % 4) && c.push(255 & t >> (-2 * a & 6));
                return c
            }
              , n = function(e) {
                return e >> 1 ^ -(1 & e)
            }
              , r = []
              , i = e(0, 43, 0).concat([62, 0, 62, 0, 63]).concat(e(51, 10, 1)).concat(e(0, 8, 0)).concat(e(0, 25, 1)).concat([0, 0, 0, 0, 63, 0]).concat(e(25, 26, 1))
              , o = function(e) {
                for (var r = [], i = new Int8Array(t(e)), o = i.length, a = 0; o > a; ) {
                    var u = i[a++]
                      , c = 127 & u;
                    u >= 0 ? r.push(n(c)) : (c |= (127 & (u = i[a++])) << 7,
                    u >= 0 || (c |= (127 & (u = i[a++])) << 14,
                    u >= 0 || (c |= (127 & (u = i[a++])) << 21,
                    u >= 0 || (c |= (u = i[a++]) << 28))),
                    r.push(n(c)))
                }
                return r
            };
            return function(e, t) {
                var n = o(e)
                  , i = function(e, t, o, u, c) {
                    return function s() {
                        for (var l, f, p = [o, u, t, this, arguments, s, n, 0], d = void 0, h = e, g = []; ; )
                            try {
                                for (; ; )
                                    switch (n[++h]) {
                                    case 0:
                                        p[n[++h]] = new p[n[++h]](p[n[++h]]);
                                        break;
                                    case 1:
                                        return p[n[++h]];
                                    case 2:
                                        for (l = [],
                                        f = n[++h]; f > 0; f--)
                                            l.push(p[n[++h]]);
                                        p[n[++h]] = a(h + n[++h], l, o, u, c);
                                        try {
                                            Object.defineProperty(p[n[h - 1]], "length", {
                                                value: n[++h],
                                                configurable: !0,
                                                writable: !1,
                                                enumerable: !1
                                            })
                                        } catch (m) {}
                                        break;
                                    case 3:
                                        p[n[++h]] = p[n[++h]] < p[n[++h]];
                                        break;
                                    case 4:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] = p[n[++h]][p[n[++h]]];
                                        break;
                                    case 5:
                                        p[n[++h]] = p[n[++h]] >= n[++h];
                                        break;
                                    case 6:
                                        p[n[++h]] = p[n[++h]] >> n[++h],
                                        p[n[++h]] = p[n[++h]][p[n[++h]]];
                                        break;
                                    case 7:
                                        p[n[++h]] = p[n[++h]] < n[++h];
                                        break;
                                    case 8:
                                        p[n[++h]] = p[n[++h]].call(d);
                                        break;
                                    case 9:
                                        p[n[++h]] = "",
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 10:
                                        p[n[++h]] = p[n[++h]] | n[++h];
                                        break;
                                    case 11:
                                        p[n[++h]] = p[n[++h]] & n[++h],
                                        p[n[++h]] = p[n[++h]][p[n[++h]]];
                                        break;
                                    case 12:
                                        p[n[++h]] = {};
                                        break;
                                    case 13:
                                        p[n[++h]] = p[n[++h]] | p[n[++h]],
                                        p[n[++h]][p[n[++h]]] = p[n[++h]],
                                        h += p[n[++h]] ? n[++h] : n[(++h,
                                        ++h)];
                                        break;
                                    case 14:
                                        p[n[++h]] = d;
                                        break;
                                    case 15:
                                        p[n[++h]] = n[++h],
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 16:
                                        p[n[++h]] = !0;
                                        break;
                                    case 17:
                                        p[n[++h]] = p[n[++h]] === p[n[++h]];
                                        break;
                                    case 18:
                                        p[n[++h]] = p[n[++h]] / p[n[++h]];
                                        break;
                                    case 19:
                                        p[n[++h]][p[n[++h]]] = p[n[++h]],
                                        p[n[++h]] = "",
                                        p[n[++h]] += String.fromCharCode(n[++h]);
                                        break;
                                    case 20:
                                        p[n[++h]][n[++h]] = p[n[++h]],
                                        p[n[++h]][n[++h]] = p[n[++h]],
                                        p[n[++h]][n[++h]] = p[n[++h]];
                                        break;
                                    case 21:
                                        p[n[++h]] = p[n[++h]] * p[n[++h]];
                                        break;
                                    case 22:
                                        p[n[++h]] = ++p[n[++h]],
                                        p[n[++h]] = p[n[++h]];
                                        break;
                                    case 23:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] = p[n[++h]][p[n[++h]]],
                                        p[n[++h]] = p[n[++h]];
                                        break;
                                    case 24:
                                        p[n[++h]] = p[n[++h]] << n[++h];
                                        break;
                                    case 25:
                                        p[n[++h]] = Y(p[n[++h]]);
                                        break;
                                    case 26:
                                        p[n[++h]] = p[n[++h]] | p[n[++h]];
                                        break;
                                    case 27:
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 28:
                                        p[n[++h]] = p[n[++h]][n[++h]];
                                        break;
                                    case 29:
                                        p[n[++h]] = n[++h],
                                        p[n[++h]][n[++h]] = p[n[++h]],
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 30:
                                        p[n[++h]] = p[n[++h]].call(d, p[n[++h]], p[n[++h]]);
                                        break;
                                    case 31:
                                        p[n[++h]] = n[++h],
                                        p[n[++h]] = n[++h],
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 32:
                                        p[n[++h]] = n[++h],
                                        p[n[++h]][p[n[++h]]] = p[n[++h]];
                                        break;
                                    case 33:
                                        p[n[++h]] = p[n[++h]] === n[++h];
                                        break;
                                    case 34:
                                        p[n[++h]] = p[n[++h]] + n[++h];
                                        break;
                                    case 35:
                                        p[n[++h]] += String.fromCharCode(n[++h]);
                                        break;
                                    case 36:
                                        p[n[++h]] = "",
                                        p[n[++h]] += String.fromCharCode(n[++h]);
                                        break;
                                    case 37:
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = p[n[++h]][n[++h]];
                                        break;
                                    case 38:
                                        p[n[++h]] = "",
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] += String.fromCharCode(n[++h]);
                                        break;
                                    case 39:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] = p[n[++h]] === p[n[++h]],
                                        h += p[n[++h]] ? n[++h] : n[(++h,
                                        ++h)];
                                        break;
                                    case 40:
                                        p[n[++h]] = p[n[++h]] > p[n[++h]];
                                        break;
                                    case 41:
                                        p[n[++h]] = p[n[++h]] - p[n[++h]];
                                        break;
                                    case 42:
                                        p[n[++h]] = p[n[++h]] << p[n[++h]];
                                        break;
                                    case 43:
                                        p[n[++h]] = p[n[++h]] & p[n[++h]];
                                        break;
                                    case 44:
                                        p[n[++h]] = p[n[++h]] & n[++h];
                                        break;
                                    case 45:
                                        p[n[++h]] = -p[n[++h]];
                                        break;
                                    case 46:
                                        for (l = [],
                                        f = n[++h]; f > 0; f--)
                                            l.push(p[n[++h]]);
                                        p[n[++h]] = i(h + n[++h], l, o, u, c);
                                        try {
                                            Object.defineProperty(p[n[h - 1]], "length", {
                                                value: n[++h],
                                                configurable: !0,
                                                writable: !1,
                                                enumerable: !1
                                            })
                                        } catch (v) {}
                                        break;
                                    case 47:
                                        h += p[n[++h]] ? n[++h] : n[(++h,
                                        ++h)];
                                        break;
                                    case 48:
                                        p[n[++h]][n[++h]] = p[n[++h]];
                                        break;
                                    case 49:
                                        p[n[++h]] = ~p[n[++h]];
                                        break;
                                    case 50:
                                        p[n[++h]] = p[n[++h]].call(p[n[++h]]);
                                        break;
                                    case 51:
                                        p[n[++h]] = p[n[++h]] ^ p[n[++h]];
                                        break;
                                    case 52:
                                        p[n[++h]] = ++p[n[++h]];
                                        break;
                                    case 53:
                                        p[n[++h]] = !1;
                                        break;
                                    case 54:
                                        p[n[++h]] = p[n[++h]] >>> n[++h];
                                        break;
                                    case 55:
                                        p[n[++h]][n[++h]] = p[n[++h]],
                                        p[n[++h]] = n[++h],
                                        p[n[++h]][n[++h]] = p[n[++h]];
                                        break;
                                    case 56:
                                        p[n[++h]] = Array(n[++h]);
                                        break;
                                    case 57:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]][n[++h]] = p[n[++h]];
                                        break;
                                    case 58:
                                        p[n[++h]] = p[n[++h]] % p[n[++h]];
                                        break;
                                    case 59:
                                        p[n[++h]] = p[n[++h]][p[n[++h]]],
                                        p[n[++h]] = p[n[++h]][n[++h]];
                                        break;
                                    case 60:
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 61:
                                        p[n[++h]] = p[n[++h]] - n[++h];
                                        break;
                                    case 62:
                                        p[n[++h]] = p[n[++h]] + p[n[++h]];
                                        break;
                                    case 63:
                                        p[n[++h]] = !p[n[++h]];
                                        break;
                                    case 64:
                                        p[n[++h]][p[n[++h]]] = p[n[++h]];
                                        break;
                                    case 65:
                                        for (p[n[++h]] += String.fromCharCode(n[++h]),
                                        l = [],
                                        f = n[++h]; f > 0; f--)
                                            l.push(p[n[++h]]);
                                        p[n[++h]] = i(h + n[++h], l, o, u, c);
                                        try {
                                            Object.defineProperty(p[n[h - 1]], "length", {
                                                value: n[++h],
                                                configurable: !0,
                                                writable: !1,
                                                enumerable: !1
                                            })
                                        } catch (A) {}
                                        p[n[++h]][p[n[++h]]] = p[n[++h]];
                                        break;
                                    case 66:
                                        p[n[++h]] = p[n[++h]] - 0;
                                        break;
                                    case 67:
                                        p[n[++h]] = p[n[++h]].call(p[n[++h]], p[n[++h]]);
                                        break;
                                    case 68:
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = p[n[++h]],
                                        p[n[++h]] = p[n[++h]] - 0;
                                        break;
                                    case 69:
                                        p[n[++h]] = p[n[++h]][p[n[++h]]],
                                        p[n[++h]] = p[n[++h]] + p[n[++h]];
                                        break;
                                    case 70:
                                        p[n[++h]] = n[++h] + p[n[++h]];
                                        break;
                                    case 71:
                                        p[n[++h]] = p[n[++h]] << p[n[++h]],
                                        p[n[++h]] = p[n[++h]] | p[n[++h]],
                                        p[n[++h]][p[n[++h]]] = p[n[++h]];
                                        break;
                                    case 72:
                                        p[n[++h]] = p[n[++h]].call(p[n[++h]], p[n[++h]], p[n[++h]]);
                                        break;
                                    case 73:
                                        p[n[++h]] = p[n[++h]] >> n[++h];
                                        break;
                                    case 74:
                                        p[n[++h]][p[n[++h]]] = p[n[++h]],
                                        p[n[++h]][p[n[++h]]] = p[n[++h]],
                                        p[n[++h]][p[n[++h]]] = p[n[++h]];
                                        break;
                                    case 75:
                                        p[n[++h]] = n[++h],
                                        p[n[++h]][n[++h]] = p[n[++h]],
                                        h += p[n[++h]] ? n[++h] : n[(++h,
                                        ++h)];
                                        break;
                                    case 76:
                                        p[n[++h]] = p[n[++h]].call(d, p[n[++h]]);
                                        break;
                                    case 77:
                                        p[n[++h]] = p[n[++h]];
                                        break;
                                    case 78:
                                        p[n[++h]] = p[n[++h]][p[n[++h]]];
                                        break;
                                    case 79:
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = p[n[++h]] >> n[++h],
                                        p[n[++h]] = p[n[++h]] & n[++h];
                                        break;
                                    case 80:
                                        p[n[++h]] = "";
                                        break;
                                    case 81:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] += String.fromCharCode(n[++h]);
                                        break;
                                    case 82:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] = p[n[++h]][p[n[++h]]],
                                        h += p[n[++h]] ? n[++h] : n[(++h,
                                        ++h)]
                                    }
                            } catch (y) {
                                if (g.length > 0 && (r = []),
                                r.push(h),
                                0 === g.length)
                                    throw c ? c(y, p, r) : y;
                                h = g.pop(),
                                r.pop()
                            }
                    }
                }
                  , a = function(e, t, o, u, c) {
                    return function s() {
                        for (var l, f, p = [o, u, t, this, arguments, s, n, 0], d = void 0, h = e, g = []; ; )
                            try {
                                for (; ; )
                                    switch (n[++h]) {
                                    case 0:
                                        p[n[++h]] = new p[n[++h]](p[n[++h]]);
                                        break;
                                    case 1:
                                        return p[n[++h]];
                                    case 2:
                                        for (l = [],
                                        f = n[++h]; f > 0; f--)
                                            l.push(p[n[++h]]);
                                        p[n[++h]] = a(h + n[++h], l, o, u, c);
                                        try {
                                            Object.defineProperty(p[n[h - 1]], "length", {
                                                value: n[++h],
                                                configurable: !0,
                                                writable: !1,
                                                enumerable: !1
                                            })
                                        } catch (m) {}
                                        break;
                                    case 3:
                                        p[n[++h]] = p[n[++h]] < p[n[++h]];
                                        break;
                                    case 4:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] = p[n[++h]][p[n[++h]]];
                                        break;
                                    case 5:
                                        p[n[++h]] = p[n[++h]] >= n[++h];
                                        break;
                                    case 6:
                                        p[n[++h]] = p[n[++h]] >> n[++h],
                                        p[n[++h]] = p[n[++h]][p[n[++h]]];
                                        break;
                                    case 7:
                                        p[n[++h]] = p[n[++h]] < n[++h];
                                        break;
                                    case 8:
                                        p[n[++h]] = p[n[++h]].call(d);
                                        break;
                                    case 9:
                                        p[n[++h]] = "",
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 10:
                                        p[n[++h]] = p[n[++h]] | n[++h];
                                        break;
                                    case 11:
                                        p[n[++h]] = p[n[++h]] & n[++h],
                                        p[n[++h]] = p[n[++h]][p[n[++h]]];
                                        break;
                                    case 12:
                                        p[n[++h]] = {};
                                        break;
                                    case 13:
                                        p[n[++h]] = p[n[++h]] | p[n[++h]],
                                        p[n[++h]][p[n[++h]]] = p[n[++h]],
                                        h += p[n[++h]] ? n[++h] : n[(++h,
                                        ++h)];
                                        break;
                                    case 14:
                                        p[n[++h]] = d;
                                        break;
                                    case 15:
                                        p[n[++h]] = n[++h],
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 16:
                                        p[n[++h]] = !0;
                                        break;
                                    case 17:
                                        p[n[++h]] = p[n[++h]] === p[n[++h]];
                                        break;
                                    case 18:
                                        p[n[++h]] = p[n[++h]] / p[n[++h]];
                                        break;
                                    case 19:
                                        p[n[++h]][p[n[++h]]] = p[n[++h]],
                                        p[n[++h]] = "",
                                        p[n[++h]] += String.fromCharCode(n[++h]);
                                        break;
                                    case 20:
                                        p[n[++h]][n[++h]] = p[n[++h]],
                                        p[n[++h]][n[++h]] = p[n[++h]],
                                        p[n[++h]][n[++h]] = p[n[++h]];
                                        break;
                                    case 21:
                                        p[n[++h]] = p[n[++h]] * p[n[++h]];
                                        break;
                                    case 22:
                                        p[n[++h]] = ++p[n[++h]],
                                        p[n[++h]] = p[n[++h]];
                                        break;
                                    case 23:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] = p[n[++h]][p[n[++h]]],
                                        p[n[++h]] = p[n[++h]];
                                        break;
                                    case 24:
                                        p[n[++h]] = p[n[++h]] << n[++h];
                                        break;
                                    case 25:
                                        p[n[++h]] = Y(p[n[++h]]);
                                        break;
                                    case 26:
                                        p[n[++h]] = p[n[++h]] | p[n[++h]];
                                        break;
                                    case 27:
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 28:
                                        p[n[++h]] = p[n[++h]][n[++h]];
                                        break;
                                    case 29:
                                        p[n[++h]] = n[++h],
                                        p[n[++h]][n[++h]] = p[n[++h]],
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 30:
                                        p[n[++h]] = p[n[++h]].call(d, p[n[++h]], p[n[++h]]);
                                        break;
                                    case 31:
                                        p[n[++h]] = n[++h],
                                        p[n[++h]] = n[++h],
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 32:
                                        p[n[++h]] = n[++h],
                                        p[n[++h]][p[n[++h]]] = p[n[++h]];
                                        break;
                                    case 33:
                                        p[n[++h]] = p[n[++h]] === n[++h];
                                        break;
                                    case 34:
                                        p[n[++h]] = p[n[++h]] + n[++h];
                                        break;
                                    case 35:
                                        p[n[++h]] += String.fromCharCode(n[++h]);
                                        break;
                                    case 36:
                                        p[n[++h]] = "",
                                        p[n[++h]] += String.fromCharCode(n[++h]);
                                        break;
                                    case 37:
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = p[n[++h]][n[++h]];
                                        break;
                                    case 38:
                                        p[n[++h]] = "",
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] += String.fromCharCode(n[++h]);
                                        break;
                                    case 39:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] = p[n[++h]] === p[n[++h]],
                                        h += p[n[++h]] ? n[++h] : n[(++h,
                                        ++h)];
                                        break;
                                    case 40:
                                        p[n[++h]] = p[n[++h]] > p[n[++h]];
                                        break;
                                    case 41:
                                        p[n[++h]] = p[n[++h]] - p[n[++h]];
                                        break;
                                    case 42:
                                        p[n[++h]] = p[n[++h]] << p[n[++h]];
                                        break;
                                    case 43:
                                        p[n[++h]] = p[n[++h]] & p[n[++h]];
                                        break;
                                    case 44:
                                        p[n[++h]] = p[n[++h]] & n[++h];
                                        break;
                                    case 45:
                                        p[n[++h]] = -p[n[++h]];
                                        break;
                                    case 46:
                                        for (l = [],
                                        f = n[++h]; f > 0; f--)
                                            l.push(p[n[++h]]);
                                        p[n[++h]] = i(h + n[++h], l, o, u, c);
                                        try {
                                            Object.defineProperty(p[n[h - 1]], "length", {
                                                value: n[++h],
                                                configurable: !0,
                                                writable: !1,
                                                enumerable: !1
                                            })
                                        } catch (v) {}
                                        break;
                                    case 47:
                                        h += p[n[++h]] ? n[++h] : n[(++h,
                                        ++h)];
                                        break;
                                    case 48:
                                        p[n[++h]][n[++h]] = p[n[++h]];
                                        break;
                                    case 49:
                                        p[n[++h]] = ~p[n[++h]];
                                        break;
                                    case 50:
                                        p[n[++h]] = p[n[++h]].call(p[n[++h]]);
                                        break;
                                    case 51:
                                        p[n[++h]] = p[n[++h]] ^ p[n[++h]];
                                        break;
                                    case 52:
                                        p[n[++h]] = ++p[n[++h]];
                                        break;
                                    case 53:
                                        p[n[++h]] = !1;
                                        break;
                                    case 54:
                                        p[n[++h]] = p[n[++h]] >>> n[++h];
                                        break;
                                    case 55:
                                        p[n[++h]][n[++h]] = p[n[++h]],
                                        p[n[++h]] = n[++h],
                                        p[n[++h]][n[++h]] = p[n[++h]];
                                        break;
                                    case 56:
                                        p[n[++h]] = Array(n[++h]);
                                        break;
                                    case 57:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]][n[++h]] = p[n[++h]];
                                        break;
                                    case 58:
                                        p[n[++h]] = p[n[++h]] % p[n[++h]];
                                        break;
                                    case 59:
                                        p[n[++h]] = p[n[++h]][p[n[++h]]],
                                        p[n[++h]] = p[n[++h]][n[++h]];
                                        break;
                                    case 60:
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = n[++h];
                                        break;
                                    case 61:
                                        p[n[++h]] = p[n[++h]] - n[++h];
                                        break;
                                    case 62:
                                        p[n[++h]] = p[n[++h]] + p[n[++h]];
                                        break;
                                    case 63:
                                        p[n[++h]] = !p[n[++h]];
                                        break;
                                    case 64:
                                        p[n[++h]][p[n[++h]]] = p[n[++h]];
                                        break;
                                    case 65:
                                        for (p[n[++h]] += String.fromCharCode(n[++h]),
                                        l = [],
                                        f = n[++h]; f > 0; f--)
                                            l.push(p[n[++h]]);
                                        p[n[++h]] = i(h + n[++h], l, o, u, c);
                                        try {
                                            Object.defineProperty(p[n[h - 1]], "length", {
                                                value: n[++h],
                                                configurable: !0,
                                                writable: !1,
                                                enumerable: !1
                                            })
                                        } catch (A) {}
                                        p[n[++h]][p[n[++h]]] = p[n[++h]];
                                        break;
                                    case 66:
                                        p[n[++h]] = p[n[++h]] - 0;
                                        break;
                                    case 67:
                                        p[n[++h]] = p[n[++h]].call(p[n[++h]], p[n[++h]]);
                                        break;
                                    case 68:
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = p[n[++h]],
                                        p[n[++h]] = p[n[++h]] - 0;
                                        break;
                                    case 69:
                                        p[n[++h]] = p[n[++h]][p[n[++h]]],
                                        p[n[++h]] = p[n[++h]] + p[n[++h]];
                                        break;
                                    case 70:
                                        p[n[++h]] = n[++h] + p[n[++h]];
                                        break;
                                    case 71:
                                        p[n[++h]] = p[n[++h]] << p[n[++h]],
                                        p[n[++h]] = p[n[++h]] | p[n[++h]],
                                        p[n[++h]][p[n[++h]]] = p[n[++h]];
                                        break;
                                    case 72:
                                        p[n[++h]] = p[n[++h]].call(p[n[++h]], p[n[++h]], p[n[++h]]);
                                        break;
                                    case 73:
                                        p[n[++h]] = p[n[++h]] >> n[++h];
                                        break;
                                    case 74:
                                        p[n[++h]][p[n[++h]]] = p[n[++h]],
                                        p[n[++h]][p[n[++h]]] = p[n[++h]],
                                        p[n[++h]][p[n[++h]]] = p[n[++h]];
                                        break;
                                    case 75:
                                        p[n[++h]] = n[++h],
                                        p[n[++h]][n[++h]] = p[n[++h]],
                                        h += p[n[++h]] ? n[++h] : n[(++h,
                                        ++h)];
                                        break;
                                    case 76:
                                        p[n[++h]] = p[n[++h]].call(d, p[n[++h]]);
                                        break;
                                    case 77:
                                        p[n[++h]] = p[n[++h]];
                                        break;
                                    case 78:
                                        p[n[++h]] = p[n[++h]][p[n[++h]]];
                                        break;
                                    case 79:
                                        p[n[++h]] = p[n[++h]][n[++h]],
                                        p[n[++h]] = p[n[++h]] >> n[++h],
                                        p[n[++h]] = p[n[++h]] & n[++h];
                                        break;
                                    case 80:
                                        p[n[++h]] = "";
                                        break;
                                    case 81:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] += String.fromCharCode(n[++h]);
                                        break;
                                    case 82:
                                        p[n[++h]] += String.fromCharCode(n[++h]),
                                        p[n[++h]] = p[n[++h]][p[n[++h]]],
                                        h += p[n[++h]] ? n[++h] : n[(++h,
                                        ++h)]
                                    }
                            } catch (y) {
                                if (g.length > 0 && (r = []),
                                r.push(h),
                                0 === g.length)
                                    throw c ? c(y, p, r) : y;
                                h = g.pop(),
                                r.pop()
                            }
                    }
                };
                return t ? i : a
            }
        }
        )()("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", !1)(3944, [], G, [void 0, 1732584193, 4023233417, 2562383102, 3285377520, !1, !0, 2147483648, 4294967295, 4294967296, 1518500249, 1859775393, 1894007588], void 0)();
        var P = G._getSecuritySign;
 
 
params='{"comm":{"cv":4747474,"ct":24,"format":"json","inCharset":"utf-8","outCharset":"utf-8","notice":0,"platform":"yqq.json","needNewCode":1,"uin":2509034534,"g_tk_new_20200303":82048448,"g_tk":100741513},"req_1":{"module":"music.musicsearch.HotkeyService","method":"GetHotkeyForQQMusicMobile","param":{"searchid":"24190991051302013","remoteplace":"txt.yqq.top","from":"yqqweb"}},"req_2":{"method":"GetRecommendFeed","module":"music.playlist.PlaylistSquare","param":{"From":0,"Size":25}},"req_3":{"method":"get_hot_category","module":"music.web_category_svr","param":{"location":0}},"req_4":{"module":"newsong.NewSongServer","method":"get_new_song_info","param":{"type":5}},"req_5":{"method":"GetRecommendFeed","module":"music.playlist.PlaylistSquare","param":{"From":0,"Size":25}},"req_6":{"method":"get_hot_category","module":"music.web_category_svr","param":{"location":0}},"req_7":{"module":"newsong.NewSongServer","method":"get_new_song_info","param":{"type":5}},"req_8":{"module":"music.paycenterapi.LoginStateVerificationApi","method":"GetChargeAccount","param":{"appid":"mlive"}},"req_9":{"module":"userInfo.VipQueryServer","method":"SRFVipQuery_V2","param":{"uin_list":["2509034534"]}},"req_10":{"module":"userInfo.BaseUserInfoServer","method":"get_user_baseinfo_v2","param":{"vec_uin":["2509034534"]}},"req_11":{"module":"music.lvz.VipIconUiShowSvr","method":"GetVipIconUiV2","param":{"PID":3}},"req_12":{"module":"MessageCenter.MessageCenterServer","method":"GetMessage","param":{"uin":"2509034534","red_dot":[{"msg_type":1}]}},"req_13":{"module":"GlobalComment.GlobalCommentMessageReadServer","method":"GetMessage","param":{"uin":"2509034534","page_num":0,"page_size":1,"last_msg_id":"","type":0}}}'
console.log(P(params))
QQ20250429-191329.png
QQ20250429-192538.png
QQ20250429-191227.png

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Thomas1216 发表于 2025-4-29 20:05
问题:怎么实现sign?


解:
逆向过程:论坛搜索  某q ,很多大佬分享过。

流程成品:github搜索,比如 https://github.com/jixunmoe/qmweb-sign/blob/main/src/zzc_sign.ts
 楼主| 13955925361 发表于 2025-4-29 20:09
Thomas1216 发表于 2025-4-29 20:05
问题:怎么实现sign?

问题是表单数据的差异化处理,sign值已经搞定了,总不能下一首歌曲去复制一下表单,
Thomas1216 发表于 2025-4-30 00:23
13955925361 发表于 2025-4-29 20:09
问题是表单数据的差异化处理,sign值已经搞定了,总不能下一首歌曲去复制一下表单,

通过歌曲的mid进行区分的,例子:

postBody.data = {
                                module: "vkey.GetVkeyServer",
                                method: "CgiGetVkey",
                                param: {
                                    "guid": "0",
                                    "platform": "20",
                                    "filename": ["M500" + mid + mid + ".mp3"],
                                    "songmid": [mid],

                                    // "uin": "",
                                    // "loginflag": 1
                                }
                            };
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-26 09:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表