在JS混淆的过程中,加入很多无辜的变量,从头到尾都没有使用过,这样子可以冗余一部分代码,达到混淆视听的目的,这也是JS混淆的一种常见手段。那么如何去除这些“无辜”的变量呢?这就是本篇文章需要讨论的主题。
比如下面一段代码,显然变量n和全局变量c是可以删除的。
1 | function a() { |
删除没有使用的变量,核心代码如下:
1 | const visitor = { |
如果有阅读前面写过的一篇文章 AST解JS混淆之AST基础,了解了作用域与Binding,则上面的代码并不难理解。
在JS混淆的过程中,加入很多无辜的变量,从头到尾都没有使用过,这样子可以冗余一部分代码,达到混淆视听的目的,这也是JS混淆的一种常见手段。那么如何去除这些“无辜”的变量呢?这就是本篇文章需要讨论的主题。
比如下面一段代码,显然变量n和全局变量c是可以删除的。
1 | function a() { |
删除没有使用的变量,核心代码如下:
1 | const visitor = { |
如果有阅读前面写过的一篇文章 AST解JS混淆之AST基础,了解了作用域与Binding,则上面的代码并不难理解。
Last updated:
关注微信公众号~~逆向一步步~~,第一时间获取更新文章的推送
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!