JS代码加密后,植入的僵尸代码能被去除吗?
“僵尸代码植入”是一项常用的JS代码混淆加密技术,通过向代码中随机插入无用代码,达到扰乱代码结构、阻碍阅读理解代码的效果。
有人问:植入的代码能被去除吗?
且看尝试:
假如有如下JS代码,使用JShaman进行混淆加密。
在配置中,只选择“僵尸代码植入”:
保护结果如下:
从上图可见,增加了定义、赋值代码。这多出来的随机代码便是僵尸代码,但它们不影响正常功能。
这时,似乎是可以区分出僵尸代码,因为变量名称不同。
但JS混淆加密还有其它功能,而且往往是多功能混合使用的。
比如在配置中再增加一项“变量名混淆”:
这样生成的代码将发生变化,如下所示: