首页 > 解决方案 > 为什么有人会在 javascript 中使用十六进制方法?

问题描述

我很抱歉,因为这可能是一个奇怪的问题,但我很困惑。有谁知道为什么有人会使用我认为是“十六进制方法”的javascript?即)我看到有人命名变量,如

_0x2f8b, _0xcb6545,_0x893751, _0x1d2177, etc

为什么有人会这样做?另外,我看到类似的代码

'to\x20bypass\x20this\x20link' 

以及数字的十六进制,例如 725392

0xb1190

那么,任何人怎么会得到这种命名约定,他们为什么要使用它呢?

标签: javascriptnode.jsoopdesign-patternshex

解决方案


像这样的代码在 99% 的情况下都会自动从原始源代码中进行修改/混淆,以试图使逆向工程变得更加困难。

例如,如果您从

const foo = 'bar';
const somethingElse = 5;

你可能会使用混淆工具来想出

var _0x2f8b, _0xcb6545;
_0x2f8b = 'bar';
_0xcb6545 = 5;

并将其提供客户。阅读 200 行混淆代码比阅读 200 行原始源代码要困难得多。

以及数字的十六进制,例如 725392

同样的事情——人类更容易理解 725392(这可能是一个对应用程序很重要的幻数)而不是 0xb1190。

这不是代码中存在的东西。


推荐阅读