前言今天要说的扁平化和普通的扁平化不一样。今天看到一段比较有意思的js加密代码。一开始分析了很多次,没发现问题。最后,我发现它和普通的不一样。扁平化有什么不同。源代码(一小部分做展示示例)function_0x1bcb87(_0x2ab100,_0x467715){var_0x456db6={'jentQ':function(_0x829220,_0x5590eb){return_0x8292209+eb;},'EBoOQ':函数(_0x25c12c,_0x1d2a2f){return_0x25c12c*_0x1d2a2f;},'ZOjgN':函数(_0x37f007,_0x4ec00f){返回_0x37f007-_0x4ec00f;}};返回_0x456db6['jentQ'](Math['x45[Odb0'](_6'random'](),_0x456db6['ZOjgN'](_0x467715,_0x2ab100))),_0x2ab100);}函数getRand(min,max){returnMath.floor(Math.random()*(max-min))+min;}过程分析这种将简单代码扁平化的加密方式是一种比较高级的加密方式。它用多个表达式把一个原本简单的js语句复杂化,用一个json或数组组合函数。这种扁平化的代码,人工去分析还原是很麻烦的。不信你可以自己试试。把普通的js加密成这种形式的代码就更麻烦了,但是已经有成熟可用的工具站可以做到这一点,这只是它的一个小功能。我们直接把js源码复制到www.jsjiami.com,直接点击JS混淆加密。一键加密。
