javascript - 为什么有人会在 javascript 中使用十六进制方法?
问题描述
我很抱歉,因为这可能是一个奇怪的问题,但我很困惑。有谁知道为什么有人会使用我认为是“十六进制方法”的javascript?即)我看到有人命名变量,如
_0x2f8b, _0xcb6545,_0x893751, _0x1d2177, etc
为什么有人会这样做?另外,我看到类似的代码
'to\x20bypass\x20this\x20link'
以及数字的十六进制,例如 725392
0xb1190
那么,任何人怎么会得到这种命名约定,他们为什么要使用它呢?
解决方案
像这样的代码在 99% 的情况下都会自动从原始源代码中进行修改/混淆,以试图使逆向工程变得更加困难。
例如,如果您从
const foo = 'bar';
const somethingElse = 5;
你可能会使用混淆工具来想出
var _0x2f8b, _0xcb6545;
_0x2f8b = 'bar';
_0xcb6545 = 5;
并将其提供给客户。阅读 200 行混淆代码比阅读 200 行原始源代码要困难得多。
以及数字的十六进制,例如 725392
同样的事情——人类更容易理解 725392(这可能是一个对应用程序很重要的幻数)而不是 0xb1190。
这不是源代码中存在的东西。
推荐阅读
- javascript - 用 momentjs 和 range 计算加班时间
- java - Java 输出下划线的逻辑错误
- python - os.walk() 错误 - 太多值无法解压
- python-3.x - Selenium 在 iframe 中查找登录字段时不一致
- python - 如何计算numpy数组的所有非对角元素的abs之和?
- unity3d - String.Format 显示来自 SerializeField 数据的旧实例数据 - 如何修复?
- c - 在 AtMega32U4 中生成 PWM 脉冲的代码
- asp.net - ASP.NET postgresql NpgsqlDbType.Bit 不支持 BitArray?
- ios - 在 Swift 中使用 SQLite 数据库的行填充 UITableView
- mysql - MYSQL:过滤多个日期和日期范围