有人知道Google封闭式高级设置生成的JavaScript代码是否被反向设计?
谷歌关闭重命名大多数js变量和函数名称,所以我很想知道它是否是保护代码不被窃取的好选择。
由于
答案 0 :(得分:3)
是的,它很容易被逆转。 Google Closure是一个代码优化器,几乎与代码混淆相反。这对每个人来说并不总是显而易见的,因为它所做的一些事情实际上会使你的代码变得模糊不清。 我在谈论变量和函数重命名,空白和注释删除。
但它并不意味着保护。例如,它生成的新名称始终相同(确定性)。原因是它只重命名变量和函数以用短的替换它们。它不关心保护。它没有任何改变控制流程的东西,如果你寻求保护,这就是你想要的。它没有任何东西来混淆字符串和其他文字。相反,它使用常量折叠和常量传播等技术,这些技术实际上使您的代码更简单,更容易理解。
为了保护我真的认为你最好的选择是JScrambler。它们具有良好的源代码转换范围和用于保护的代码陷阱。
答案 1 :(得分:1)
是的,它可以逆转,但是,如果您在ADVANCED_OPTIMIZATIONS中的代码有很多内联,那么逆向工程可能要困难得多。其次,由于存在大量的常量折叠,因此使代码更难以阅读,即:
/**
* @type {number}
* @const
*/
var FLAG_A=0x4FFFFFF0;
/**
* @type {number}
* @const
*/
var FLAG_B=0x01;
/** @type {number} */
var flags=FLAG_A|FLAG_B;
console.log(flags,(flags&FLAG_A)>0);
输出到:
console.log(1342177265,!0);
这使得实际代码更难以阅读并弄清楚它正在做什么。你越少依赖继承和字符串,并转向位标志 - 将使反向工程代码工作,但使更改或扩展更难。
答案 2 :(得分:0)
通过使用Javascript美化器,您可以将代码转换为某种扩展读取但不能完全逆向工程。