echo094

Results 10 comments of echo094
trafficstars

> What is your use case? NAT is not needed with IPv6 in general, see https://en.wikipedia.org/wiki/Network_address_translation#NAT_in_IPv6 Instead one should create a Firewall Traffic Rule, e.g: ![image](https://user-images.githubusercontent.com/7935799/196049119-15e53973-6044-49d7-b35f-2451b963a75d.png) In my school, a...

Can you provide the complete output? Based on the limited information, I guess it's related to the installation of [isolated-vm](https://github.com/laverdet/isolated-vm?tab=readme-ov-file#requirements).

According to the error message, the file **isolated-vm.node** should exist in folder `D:\Download\decode-js-main\decode-js-main\node_modules\isolated-vm\out`. Try to reinstall the dependency and the issue may be solved.

Yes, it's required in `D:\Download\decode-js-main\decode-js-main\node_modules\isolated-vm\isolated-vm.js`. You may find solution in repo: https://github.com/laverdet/isolated-vm .

This message indicates that the **@babel/parser** plugin cannot process your file correctly, and it throws the **InvalidOrUnexpectedToken** error: https://github.com/babel/babel/blob/1199e6aca1df0db81074cc99fa3f89a54f02810d/packages/babel-parser/src/tokenizer/index.ts#L1051-L1057 The possible reason is that the file was edited accidentally, e.g.,...

现阶段我没有时间去完善,但是我可以分享一些思路。 这种混淆最关键的就是把打散的分支语句拼接回去,但目前以纯静态分析的方式来搞有点陷入了僵局(目前的进度是能够合并90%左右的选择语句)。现在拼接的逻辑是当对应的代码块只被引用1次时,就将它合并到上一个代码块。但是这个混淆策略中有一些干扰,让引用计数大于1,从而阻止上述操作: * 混淆脚本里有一些常量选择分支,需要将干扰项去除以修正实际引用计数。但是部分常量语句是隐式的,比如通过测试是否含有浏览器才有的内部方法 * 你会发现那个最长的函数存在嵌套调用,说明这个函数将原始代码的多个函数整合到了1个switch中,这就导致有些if语句需要使用传入值判断,也就是需要根据传入值将这个函数拆分为多个函数。 我目前不知道还有没有别的坑点,但这两个问题是实现静态分析所必须要解决的,只是目前我没有足够的精力去完成。 你也可以使用插桩来动态分析这个脚本,随后将其还原:[某宝登录bx-ua参数逆向思路(fireyejs 225算法)](https://zhuanlan.zhihu.com/p/626187669),我这个插件一开始也是按照这个帖子做的,只是我不想用动态分析,这种可能会漏掉情况。 [sml2h3/ast_tools](https://github.com/sml2h3/ast_tools) 也是针对这种混淆的,你也可以参考一下。 最后关于那个while的问题,在这种混淆下,一个含有`String.fromCharCode`的while语句实际上对应一个字符串,即在语句上方一定有一个混淆后的字符串,通过这个while解混淆。但是由于上面提到的问题,这两个代码块没有被合并,于是这个while就没法被还原了。 然后,while语句在混淆后的脚本中特征非常明显,就是出现自引。但是有些自引不再第一个if语句中,说明存在未被删除的无效代码。对于这种情况,目前没有强行将其还原。

> 今天看到一篇文章不知道对大佬有没有帮助 https://www.52pojie.cn/forum.php?mod=viewthread&tid=1818486&highlight=226 文章里在**真正还原控制流**上面的部分和这边的做法是类似的,对应这边**FlattenSwitch**函数阶段`dfs2`及之前的部分。 后面主要的区别在于他对于虚假分支的判断比较主观和大胆: > 虚假分支会有两种表现形式: > * 第一种就是上面第一二行,我也看不太懂,利用的是一些 undefined 或者布尔变量来计算的,if 条件永远为真 > * 第二种就是上面第三四行,是用自身 * 自身,这样数字永远是大于等于0,而且右边数字永远是一个随机负数,所以 if 也是永远为真 > > 我这里识别很简单,因为他的虚假分支都是使用的固定变量,比如:go fe Fo te ti fe xe K...

> 是的,我目前在适用大佬的另外一个分支配合动态调试,但是最大的那个 switch 还在导致分析起来还是有点困难 根据动态调试的结果就能合并代码了。

有没有能够复现的简单样本

参考 #92 可以尝试更新下npm依赖