全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
12
返回列表 发新帖
楼主: uov

[疑问] 大佬们来看看这个JS怎么解密

[复制链接]
发表于 2022-9-28 18:35:41 | 显示全部楼层
研究了一下,主要函数就是前面的那个函数k8b2,追了一下然后改了改内容:

  1. let totalHTML = ''
  2. function k8b2(jhxv) {
  3.   var
  4.     ekvq, il5l = "zm"fci\'©!13NaybhsRG:-jwr_6IQ=.,W$BLF>(MlApCUe 2H@#kd97nXvT+JOut4&gSDY;V80K/q5EPoZx)<",
  5.     aqey = Function, nktr, juga, mree = il5l.length, n00l = { cd: "" }, ue = new aqey("ret" + "urn unesc" + "ape")(),
  6.     mw50 = new aqey("x", ue("this.cd+=x;console.log(x)")), cb1a = new aqey("x", "y", ue("%72et%75rn%20x.c%68ar%41t(%79)"));
  7.   for (nktr = 0; nktr < jhxv.length; nktr++) {
  8.     juga = cb1a(jhxv, nktr);
  9.     ekvq = il5l.indexOf(juga);
  10.     let now = ''
  11.     if (ekvq > -1) {
  12.       ekvq -= (nktr + 1) % mree;
  13.       if (ekvq < 0) {
  14.         ekvq += mree;
  15.       }
  16.       now = cb1a(il5l, ekvq)
  17.       mw50.call(n00l, now);
  18.     } else {
  19.       now = juga
  20.       mw50.call(n00l, now);
  21.     }
  22.     totalHTML += now
  23.   }
  24.   new aqey(ue("%64oc%75me%6Et.w%72it%65(t%68is.%63d)%3Bth%69s.c%64=n%75ll")).call(n00l);
  25. }
复制代码


将上面这个替换原来的那个函数,并且暴露出来一个totalHTML用于接收处理的结果
然后将totalHTML在末尾打出来就搞定了,反正最终的输出是:
不知道是啥.zip (11.21 KB, 下载次数: 9)

点评

真*大佬  发表于 2022-9-28 19:56
发表于 2022-9-28 18:45:05 | 显示全部楼层
影视展模板
发表于 2022-9-28 19:39:38 | 显示全部楼层
  1. function decode(data) {
  2.     let key =
  3.         'zm"fci\'©!13NaybhsRG:-jwr_6IQ=.,W$BLF>(MlApCUe 2H@#kd97nXvT+JOut4&gSDY;V80K/q5EPoZx)<';
  4.     let length = 84;
  5.     let main = {
  6.         data: '',
  7.         push(val) {
  8.             this.data += val;
  9.         },
  10.         clear() {
  11.             this.data = null;
  12.         },
  13.     };

  14.     for (let i = 0; i < data.length; i++) {
  15.         let current = data[i]; // 第一个字符是z
  16.         let currentPosition = key.indexOf(current); // z的位置是0
  17.         // 在key中找到z,则把当前字符的前一个字符添加至main.data
  18.         // 如果未找到,则把当前字符添加至main.data
  19.         if (currentPosition > -1) {
  20.             currentPosition -= (i + 1) % length;
  21.             // 如果是第一位,则移动到最后一位
  22.             if (currentPosition < 0) {
  23.                 currentPosition += length;
  24.             }
  25.             current = key[currentPosition];
  26.         }
  27.         main.push(current);
  28.     }
  29.     document.write(main.data);
  30.     // 源码中有这一步,但没任何作用
  31.     // main.clear();
  32. }
复制代码


最后是个html

result.zip

13.78 KB, 下载次数: 17

 楼主| 发表于 2022-9-28 19:50:52 | 显示全部楼层
千牛 发表于 2022-9-28 18:35
研究了一下,主要函数就是前面的那个函数k8b2,追了一下然后改了改内容:

牛啊 大佬 膜拜
 楼主| 发表于 2022-9-28 19:52:22 | 显示全部楼层

mjj一个个的果然藏龙卧虎  
发表于 2022-9-28 20:22:01 | 显示全部楼层
真正难得是用vm保护的那些js,或者分支混淆的,这种才头痛,可以看看知乎的接口参数生成算法就懂了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-5-13 23:35 , Processed in 0.072618 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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