【问题标题】:I need help deobfucate gLua code but cannot find any solutions我需要帮助混淆 Lua 代码,但找不到任何解决方案
【发布时间】:2019-06-21 01:18:45
【问题描述】:

我正在尝试对 glua(Garry 模式 lua)进行去混淆处理,但由于没有程序(据我所知)对 glua 进行去混淆处理而失败。这是代码的样子:

如果有人能指出我的方向或帮助,那将是有帮助的。非常感谢。

【问题讨论】:

    标签: lua garrys-mod


    【解决方案1】:

    在开始时,脚本声明了一个带有不间断字符的变量作为全局表,以混淆试图阅读脚本的人。

    包含“\(numbers)”的字符串是被解析为常规字符的字符代码。示例:

    > string.byte("h")
    104
    > "\104\104\104"
    "hhh"
    

    随着脚本的继续,它会不断用 x 数量的不间断字符声明变量和函数,这也会让您在尝试阅读脚本时更加困惑。如果你用 Notepad++ 之类的程序(这里有一个提示:打开“查看所有字符”)用随机字母(让我们使用 A)替换非中断字符,你会看到类似这些行的内容(为了便于阅读,添加了换行符目的):

    local A = _G
    local AA = A[something]
    local AAA = A[something else]
    local function AAAA(params)
        -- code here
    end
    -- some other code here
    AAAA(something, something)
    AAA[something](something, something)
    

    这些只是关于如何使代码更具可读性的一些提示。在内部,函数可能会使用更多的混淆来额外混淆那些通过不间断字符和其他“障碍”的人。

    大多数混淆脚本都是基本的“将字符转换为 \character 代码并加载/运行字符串或使用 HTTP 获取请求并运行代码”,可以很容易地去混淆。使用这样的代码,您将不得不花费更多时间来获得可以阅读和理解的内容。

    Here's a code snippet 以与您的代码 sn-p 被混淆的类似方式混淆。做上面建议的事情会导致:

    local A = _G
    local AA = A['string']
    local AAA = A['bit']['bxor']
    local function AAAAAAA(AAAA)
        return AAAA
    end
    

    这只是一个脚本,声明了几个局部变量,然后声明了一个返回第一个参数的局部函数。

    当然可以进一步简化,但如果您愿意,可以为每个变量赋予不同的名称,使其更具可读性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多