Dav
Dav

Reputation: 21

Decrypt Lua byte code?

I'm encrypting my Lua code with this script.

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()

The output of encrypted.txt is like "00/12/46/4/2/6/4/62/". How do I decrypt bytecode?

Upvotes: 2

Views: 5690

Answers (2)

Tadeusz A. Kadłubowski
Tadeusz A. Kadłubowski

Reputation: 8335

This text is not encrypted. It's just Lua bytecode in hexadecimal.

Discussion of means of disassembling this bytecode into human-readable opcodes is in another question: Lua equivalent to Python dis()?

Upvotes: 6

Necrolis
Necrolis

Reputation: 26171

Obviously its printing out each BYTE as a value (which is decimal, even though its stated its converted to hex) delimited by a '/'.

All you need to do then is fill an array using the bytes you pull from the string, using tonumber to convert them back to their byte value. this will help with parsing the formatted output

Upvotes: 1

Related Questions