echo094 / decode-js

JS混淆代码的AST分析工具 AST analysis tool for obfuscated JS code
MIT License
569 stars 301 forks source link

这个是什么类型的 #6

Closed getr00t closed 1 year ago

getr00t commented 1 year ago

这个是什么类型的使用工具无法解出来尼

echo094 commented 1 year ago

这也是Obfuscator,但是这个脚本可能被错误格式化了,导致运算符?.(Optional chaining)中间被加了空格,就变成了?(Conditional (ternary) operator)加.,让AST无法正确生成语法树,也就是在正式分析前就发生异常结束了。

例如第117行:

    _0x299db7[_0x3d58d9(0x31b) + '\x64'] = _0x299db7 ? . [_0x3d58d9(0x31b) + '\x64'] ? . [_0x3d58d9(0x1e0) + '\x65\x72\x43\x61\x73' + '\x65']() || _0x468f39[_0x3d58d9(0x393)];

正确的写法:

    _0x299db7[_0x3d58d9(0x31b) + '\x64'] = _0x299db7 ?. [_0x3d58d9(0x31b) + '\x64'] ?. [_0x3d58d9(0x1e0) + '\x65\x72\x43\x61\x73' + '\x65']() || _0x468f39[_0x3d58d9(0x393)];

你再确认一下这个脚本能不能运行,然后用格式化前的版本解混淆。

也可以先把? .中的空格去掉再解混淆。

echo094 commented 1 year ago

整个脚本原版应该在 leafTheFish/DeathNote@62dfc9523da40ffa9e89263e968caf9e6caeeb64,是sfsyV2.js,这个版本是没问题的。

getr00t commented 1 year ago

这也是Obfuscator,但是这个脚本可能被错误格式化了,导致运算符?.(Optional chaining)中间被加了空格,就变成了?(Conditional (ternary) operator)加.,让AST无法正确生成语法树,也就是在正式分析前就发生异常结束了。

例如第117行:

    _0x299db7[_0x3d58d9(0x31b) + '\x64'] = _0x299db7 ? . [_0x3d58d9(0x31b) + '\x64'] ? . [_0x3d58d9(0x1e0) + '\x65\x72\x43\x61\x73' + '\x65']() || _0x468f39[_0x3d58d9(0x393)];

正确的写法:

    _0x299db7[_0x3d58d9(0x31b) + '\x64'] = _0x299db7 ?. [_0x3d58d9(0x31b) + '\x64'] ?. [_0x3d58d9(0x1e0) + '\x65\x72\x43\x61\x73' + '\x65']() || _0x468f39[_0x3d58d9(0x393)];

你再确认一下这个脚本能不能运行,然后用格式化前的版本解混淆。

也可以先把? .中的空格去掉再解混淆。

那是为什么我运行就不行,有一部分报错,有一部分成功,我格式化插件有问题吗?那应该怎么格式化才避免这样的错误出现?我使用的vscode编辑器eslint格式化,是不是这个导致的,那不是要关闭不用格式化插件了,你有使用格式化插件吗

echo094 commented 1 year ago

这种混淆过的脚本就别格式化了,解出来的能用就别去管了。

我的配置文件已经在仓库里了:.eslintrc.json,这个?.ecmascript 2020的新特性,如果你配置文件里的版本较低,应该会报错。

getr00t commented 1 year ago

这种混淆过的脚本就别格式化了,解出来的能用就别去管了。

我的配置文件已经在仓库里了:.eslintrc.json,这个?.ecmascript 2020的新特性,如果你配置文件里的版本较低,应该会报错。

我也是使用的你这个配置文件,我现在只要一保存就会自动格式化,格式化就爆红,貌似这个eslist配置文件是摆设,没用起到作用

echo094 commented 1 year ago

那还是把自动格式化关掉吧,我自己反正只格式化了src里面的东西。

getr00t commented 1 year ago

那还是把自动格式化关掉吧,我自己反正只格式化了src里面的东西。

还可以指定格式化哪些路径啊,我平常都是不使用eslit的,几乎为0使用eslit,留个vx向你学习

echo094 commented 1 year ago

做这种项目,留不得vx

getr00t commented 1 year ago

做这种项目,留不得vx

vx只要不聊哪些违禁的也还好,那就留下tg吧

echo094 commented 1 year ago

我把discussions开了,可以在那边讨论哈。

getr00t commented 1 year ago

这是出现了bug吗? image

echo094 commented 1 year ago
  1. 这个是sojson类型的,你用错插件了。
  2. 要把第二行拿出来解混淆,和#4 一样,不然会产生干扰。
  3. 这个脚本经过了两次sojson类型的混淆,所以你在第一次输出的代码上再解混淆一次。