【问题标题】:Why someone would use a hexadecimal approach in javascript?为什么有人会在 javascript 中使用十六进制方法?
【发布时间】:2021-09-19 03:30:56
【问题描述】:

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

_0x2f8b, _0xcb6545,_0x893751, _0x1d2177, etc

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

'to\x20bypass\x20this\x20link' 

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

0xb1190

那么,怎么会有人获得这种命名约定?他们为什么要使用它?

【问题讨论】:

    标签: javascript node.js oop design-patterns hex


    【解决方案1】:

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

    例如,如果你从

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

    你可以使用an obfuscation tool来提出

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

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

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

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

    这不是源代码代码中会出现的东西。

    【讨论】:

    • 你一定是对的,console.log 已关闭。
    • 你知道如何“去混淆”代码吗?
    • 不可能。一旦更改了原始变量名称,就无法将它们恢复为原始变量名称 - 这会破坏混淆的目的。
    猜你喜欢
    • 2010-09-19
    • 2013-04-07
    • 2021-08-31
    • 2016-11-12
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多