Расшифровывать байт-код Lua? - PullRequest
2 голосов
/ 23 мая 2011

Я шифрую свой код Lua с помощью этого сценария.

local script = string.dump(
    function()
        local function h4x(strtbl)
            buffer=""
            for v in strtbl do
                buffer=buffer..strtbl[v]
            end
            return buffer
        end

        print("encrypted")

    end
)

buff=""
for v=1,string.len(script) do --Convert our string into a hex string.
    buff=buff..'\\'..string.byte(script,v)
end

file=io.open('encrypted.txt','w') --Output our bytecode into ascii format to encrypted.txt
file:write(buff)
file:flush()
file:close()

Выходные данные encrypted.txt похожи на «00/12/46/4/2/6/4/62 /». Как расшифровать байт-код?

Ответы [ 2 ]

6 голосов
/ 23 мая 2011

Этот текст не зашифрован. Это просто байт-код Lua в шестнадцатеричном формате.

Обсуждение способов разборки этого байт-кода в читаемые человеком операционные коды находится в другом вопросе: Lua эквивалентен Python dis ()?

1 голос
/ 23 мая 2011

Очевидно, что он печатает каждый БАЙТ в виде значения (которое является десятичным, даже если указано, что оно преобразовано в шестнадцатеричное), разделенного символом «/».

Все, что вам нужно сделать, - это заполнить массив, используя байты, которые вы извлекаете из строки, используя tonumber, чтобы преобразовать их обратно в байтовое значение. это поможет с разбором форматированного вывода

...