JS逆向 某q音乐新版txjsvmp分析

admin 2024年11月7日11:38:57评论3 views字数 1151阅读3分50秒阅读模式

目标网站

aHR0cHM6Ly95LnFxLmNvbS8=

目标参数JS逆向  某q音乐新版txjsvmp分析

解决方法

补环境:检测环境较少就不进行说明,本文章主要讲一下直接扣取算法

流程分析

全局搜索sign
JS逆向  某q音乐新版txjsvmp分析
可以看到加密点是
o(t.data)进入o函数的内部可以看到是jsvmp
JS逆向  某q音乐新版txjsvmp分析
找到swtich(n[++g])在此处下条件断点

JSON.stringify(d, (key, value) => value === window || !value || value.length > 1000 ? undefined : value)

将打印的日志保存到本地

根据结果zzcbf8ab18rn2tf80qswijnhbwmjdxnang0hob527801e和日志进行分析

JS逆向  某q音乐新版txjsvmp分析
JS逆向  某q音乐新版txjsvmp分析
JS逆向  某q音乐新版txjsvmp分析

保存几次日志+分析可知

这段加密代码分为三段

1.zzc是固定的

2.B527801E 与 BF8AB18生成算法

3.rN2tF80qSwIJnHbwmJDxnaNG0ho生成算法

先分析第一部分算法,全局搜索B527801E找到第一次生成的位置往上看可以发现这样的日志

JS逆向  某q音乐新版txjsvmp分析

 复制代码 隐藏代码
let encrypt_str = "********************************" // 脱敏展示

let first_index = [23, 脱敏展示, 6, 脱敏展示, 16, 脱敏展示, 7, 脱敏展示];
let last_index = [16, 脱敏展示, 32, 脱敏展示, 19, 脱敏展示, 8, 脱敏展示];

let first_encrypt = "";
let last_encrypt = "";

// 第一段加密

first_index.forEach(index => {
    first_encrypt += encrypt_str.charAt(index);
});

// 最后一段
last_index.forEach(index => {
    last_encrypt += encrypt_str.charAt(index);
});
console.log(first_encrypt)
console.log(last_encrypt)

中间的一段根据上面的方法也是可以去扣取的这里就留给大家作为实战作业了我简单说一下思路

1.根据F5FA这个hash值,通过算法生成第一个数组

2.和一个固定数组异或取余得到第二个数组。

3.生成的第二个数组转换为base64

4.正则表达式replace

最终结果

 复制代码 隐藏代码
'zzc'+'BF8AB18'+'rN2tF80qSwIJnHbwmJDxnaNG0ho'+'B527801E'

不要忘记将最后的结果toLowerCase

· 今 日 推 荐 ·

PC逆向 -- 按键设备过滤

https://pan.quark.cn/s/93e81019916f

JS逆向  某q音乐新版txjsvmp分析

本文内容来自网络,如有侵权请联系删除

JS逆向  某q音乐新版txjsvmp分析

原文始发于微信公众号(逆向有你):JS逆向 -- 某q音乐新版txjsvmp分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月7日11:38:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JS逆向 某q音乐新版txjsvmp分析https://cn-sec.com/archives/3366747.html

发表评论

匿名网友 填写信息