我有一个问题,不是关于JS代码混淆的问题(这不是真正的主题),而是关于理解JS(如果不是其他符号)的问题。
当我们在JS代码上使用混淆工具时,生成的代码包含如下语句:
(0xA6, 78.) <= 0x204 ? val : otherVal
我知道if其他语句和简化版本。
在这个例子中,混淆工具使用其他十六进制基数的数字(对此还可以)
但是符号:
( value , other value )
为什么这样做又能做什么呢?
感谢您的理解。
最佳答案
好吧,用逗号分隔的列表仅评估最右边的值,在这种情况下为数字78
。它也可能看起来像
(0xA6, 42, 11, 78.)
并且仍将计算为
78
(末尾的小数点仅是可选的)。第二个数字只是数字516
的八进制版本。所以实际上这条线是78 < 516 ? val : otherVal
这是用三元运算符写的非常简单的条件,也可以写成
if( 78 < 516 ) {
// assign val somewhere
} else {
// assign otherVal somewhere
}
关于javascript - 如果在代码保护中使用javascript语句,则为高级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15519897/