Lua декомпилятор строк - PullRequest
       13

Lua декомпилятор строк

0 голосов
/ 31 января 2019

Можно ли удалить эту строку, чтобы сделать ее читабельной?

Я пробовал unluac и luadec, но это невозможно.

local data =('1B4C7561520000040404080019930D0A1A0A00000000000000000001120000038700000025800000080000402580800008000080010000C041000080818000802100410106000141410100411D7FFEC020004180060041C007000200410200008B000080C100024101000281410002C181020040A4008000C3000001030400014B00034181000381C10003C2010004024100044281000482C10004C301000503410400416486014008004301460001418B8B45C18A8C46418A8D46C18A8E47418A8F40818A8A81814A004301460001C18B8B47C18A8C46418A8D46C18A9040818A004181C603C881C79081C18..{other bunch of codes}')
local chunk = data:gsub('..', function (c) return string.char(tonumber(c, 16)) end)
local func = load(chunk)
func()

1 Ответ

0 голосов
/ 01 февраля 2019

Ваш код почти байт-код lua, он просто запутан немного больше: каждый символ кодируется в шестнадцатеричном виде.Простой способ получить байт-код -

local data = 'your lovely data'
local f = assert(io.open('bytecode.luac', 'wb'))
for c in data:gmatch('..') do
    f:write(string.char(tonumber(c, 16)))
end
f:flush()
f:close()

. Это позволит записать байт-код в bytecode.luac.Теперь вам нужна фактическая декомпиляция: https://github.com/viruscamp/luadec выглядит здесь как отличный инструмент.

Надеюсь, это поможет.

...