echo094 / decode-js

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

不知道是什么方式的怎么办 #5

Closed getr00t closed 1 year ago

getr00t commented 1 year ago

有一个js我试了下使用你这个工具,把里面全部type类型的方式都测试过,都报错,请问还有希望吗?完全看不出是什么类型方式的

echo094 commented 1 year ago

可以把文件发一下

getr00t commented 1 year ago

可以把文件发一下

恩已发,所以是什么情况尼…🙃

echo094 commented 1 year ago

这可能是Obfuscator的改良版,它将部分定义语句合并到了一个定义列表里,让现有的匹配方式失效了。

getr00t commented 1 year ago

这可能是Obfuscator的改良版,它将部分定义语句合并到了一个定义列表里,让现有的匹配方式失效了。

意思是这是使用的Obfuscator方式吗?所以有办法解开吗

echo094 commented 1 year ago

你确定上传的脚本是未经修改过的吗,我放青龙里都运行不了呀,不能正常运行的脚本是没法正确进行ast分析的。 我觉得你是不是把第二行末尾的分号改成逗号了,导致函数定义语句变成了表达式语句,使第四行的函数未定义了。

getr00t commented 1 year ago

你确定上传的脚本是未经修改过的吗,我放青龙里都运行不了呀,不能正常运行的脚本是没法正确进行ast分析的。 我觉得你是不是把第二行末尾的分号改成逗号了,导致函数定义语句变成了表达式语句,使第四行的函数未定义了。

没改过,我看了你说的第二行“const _0x52e7b4 = _0xb1d5” 末尾的是分号还是逗号的问题,我在本地node环境,是可以正常跑起来的啊,那么是否是逗号还是分号的原因可以忽略了吧?这应该不是无法运行的原因吧

echo094 commented 1 year ago

你确定上传的脚本是未经修改过的吗,我放青龙里都运行不了呀,不能正常运行的脚本是没法正确进行ast分析的。 我觉得你是不是把第二行末尾的分号改成逗号了,导致函数定义语句变成了表达式语句,使第四行的函数未定义了。

没改过,我看了你说的第二行“const _0x52e7b4 = _0xb1d5” 末尾的是分号还是逗号的问题,我在本地node环境,是可以正常跑起来的啊,那么是否是逗号还是分号的原因可以忽略了吧?这应该不是无法运行的原因吧

写错了,是第三行最后的逗号:

_0x40ae78 = _0x31de,

在我这边不改成分号或删除没法运行,你的node版本是啥

getr00t commented 1 year ago

你确定上传的脚本是未经修改过的吗,我放青龙里都运行不了呀,不能正常运行的脚本是没法正确进行ast分析的。 我觉得你是不是把第二行末尾的分号改成逗号了,导致函数定义语句变成了表达式语句,使第四行的函数未定义了。

没改过,我看了你说的第二行“const _0x52e7b4 = _0xb1d5” 末尾的是分号还是逗号的问题,我在本地node环境,是可以正常跑起来的啊,那么是否是逗号还是分号的原因可以忽略了吧?这应该不是无法运行的原因吧

写错了,是第三行最后的逗号:

_0x40ae78 = _0x31de,

在我这边不改成分号或删除没法运行,你的node版本是啥

Node.js v18.16.0的版本,第三行_0x40ae78 = _0x31de我看了下如果是逗号确实本地也跑不起,一个符号居然那么关键,我看了下结尾如果不写符号就不会报错,写错符合反而就无法运行。看来结尾不写符合反而避开了一些错误几率发生了,但是我把逗号改成分号后本地node,确实也可以跑起来,qinglong就无法运行,就会报错,我的qinglong的node版本是Node.js v18.14.2,估计是node版本有问题吧,我还没更新qinglong最新版本。

echo094 commented 1 year ago

更新了,你用没有逗号的版本试一下吧

getr00t commented 1 year ago

更新了,你用没有逗号的版本试一下吧

更新了你的新版本,可以分析出来了,但是拿分析的文件反而在本地node环境下运行失败,神奇,反而报错ReferenceError: _0x31de is not defined。

echo094 commented 1 year ago

更新了,你用没有逗号的版本试一下吧

更新了你的新版本,可以分析出来了,但是拿分析的文件反而在本地node环境下运行失败,神奇,反而报错ReferenceError: _0x31de is not defined。

漏删了一些混淆变量,你再试试

getr00t commented 1 year ago

更新了,你用没有逗号的版本试一下吧

更新了你的新版本,可以分析出来了,但是拿分析的文件反而在本地node环境下运行失败,神奇,反而报错ReferenceError: _0x31de is not defined。

漏删了一些混淆变量,你再试试

目前是可以运行,应该是算好了吧,可以删除issues🎃