小编GxD*_*xDD的帖子

Javascript自我防御是如何工作的以及如何在美化时进入无限循环?

有一个网站“obfuscator.io”,它混淆了 Javascript 代码。它的功能之一是“自卫”。它将简单的console.log()一行变成了这样:

var _0x2a3a06=function(){var _0x409993=!![];return function(_0xe0f537,_0x527a96){var _0x430fdb=_0x409993?function(){if(_0x527a96){var _0x154d06=_0x527a96['apply'](_0xe0f537,arguments);_0x527a96=null;return _0x154d06;}}:function(){};_0x409993=![];return _0x430fdb;};}();var _0x165132=_0x2a3a06(this,function(){var _0x46b23c=function(){var _0x4c0e23=_0x46b23c['constructor']('return\x20/\x22\x20+\x20this\x20+\x20\x22/')()['constructor']('^([^\x20]+(\x20+[^\x20]+)+)+[^\x20]}');return!_0x4c0e23['test'](_0x165132);};return _0x46b23c();});_0x165132();console['log']();
Run Code Online (Sandbox Code Playgroud)

该代码确实可以在 Webkit 控制台中运行,但是当您使用“beautifier.io”或“de4js”等应用程序对其进行美化并再次在同一控制台中运行它时,代码会进入无限循环,从本质上破坏了代码。这是如何运作的?它与美化器的工作方式有关,还是与 Javascript 解释代码的方式有关?

javascript obfuscation

6
推荐指数
1
解决办法
1758
查看次数

为什么不能在整数后直接使用“f”字面量?

我正在编写 C++ 代码。我发现“奇怪”的是你不能使用3f,因为 Visual Studio 给出了一个错误“找不到文字运算符”,你只能使用3.f.

为什么不能直接在数字后使用 'f' 文字,而不使用点分隔符 ( 3f)?

c++ floating-point int

0
推荐指数
1
解决办法
80
查看次数

标签 统计

c++ ×1

floating-point ×1

int ×1

javascript ×1

obfuscation ×1