天天看点

JS代码加密后,植入的僵尸代码能被去除吗?

JS代码加密后,植入的僵尸代码能被去除吗?

“僵尸代码植入”是一项常用的JS代码混淆加密技术,通过向代码中随机插入无用代码,达到扰乱代码结构、阻碍阅读理解代码的效果。

有人问:植入的代码能被去除吗?

且看尝试:

假如有如下JS代码,使用JShaman进行混淆加密。

JS代码加密后,植入的僵尸代码能被去除吗?

在配置中,只选择“僵尸代码植入”:

JS代码加密后,植入的僵尸代码能被去除吗?

保护结果如下:

JS代码加密后,植入的僵尸代码能被去除吗?

从上图可见,增加了定义、赋值代码。这多出来的随机代码便是僵尸代码,但它们不影响正常功能。

这时,似乎是可以区分出僵尸代码,因为变量名称不同。

但JS混淆加密还有其它功能,而且往往是多功能混合使用的。

比如在配置中再增加一项“变量名混淆”:

JS代码加密后,植入的僵尸代码能被去除吗?

这样生成的代码将发生变化,如下所示:

JS代码加密后,植入的僵尸代码能被去除吗?