天天看點

JS代碼加密後,植入的僵屍代碼能被去除嗎?

JS代碼加密後,植入的僵屍代碼能被去除嗎?

“僵屍代碼植入”是一項常用的JS代碼混淆加密技術,通過向代碼中随機插入無用代碼,達到擾亂代碼結構、阻礙閱讀了解代碼的效果。

有人問:植入的代碼能被去除嗎?

且看嘗試:

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

JS代碼加密後,植入的僵屍代碼能被去除嗎?

在配置中,隻選擇“僵屍代碼植入”:

JS代碼加密後,植入的僵屍代碼能被去除嗎?

保護結果如下:

JS代碼加密後,植入的僵屍代碼能被去除嗎?

從上圖可見,增加了定義、指派代碼。這多出來的随機代碼便是僵屍代碼,但它們不影響正常功能。

這時,似乎是可以區分出僵屍代碼,因為變量名稱不同。

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

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

JS代碼加密後,植入的僵屍代碼能被去除嗎?

這樣生成的代碼将發生變化,如下所示:

JS代碼加密後,植入的僵屍代碼能被去除嗎?