luaobfuscator dumper

local function dump(...)
    local args = {...}
    if #args > 1 then
        error("invalid input: too many arguments", 3)
    elseif #args < 1 then
        error("invalid input: expected a file path", 3)
    end

    local IDENTIFIER = "[%w_]+"

    local file = io.open(args[1]);
    local input = file:read("*a")
    file:close()

    local a, b, deserialize, d, e =
        input:match("(.+)(local function " .. IDENTIFIER .. "%(%.%.%.%).+local function )(" .. IDENTIFIER .. ")(%(%).+)(" .. "local function " .. IDENTIFIER .. "%(" .. IDENTIFIER .. ", ?" .. IDENTIFIER .. ", ?" .. IDENTIFIER .. "%).+)")

    local injection = [[if true then
        local instructions = ]] .. deserialize .. [[()[1]
        for _, inst in next, instructions do
            if #inst == 3 then
                print(inst[3])
            end
        end
        return
    end;]]

    local chunk, err = (loadstring or load)(a .. b .. deserialize .. d .. injection .. e)
    if err then
        warn(err)
        return
    end

    chunk()
end
dump(...)

this works on any script outputted with the basic obfuscate option using from the command line is simple. save the code block above to a file called something like dumper.lua and then:

lua dumper.lua [path to an obfuscated file]

constants will appear in stdout

_shqiperia_#0 Replied 1 Month ago20:48 09/09/2024

oh my gawd this is soo good, im gonna skid it now!

Justinb#7819 Replied 1 Month ago13:20 10/09/2024

And this is why "Chopped (Beta)" feature is for Boosters only, it will prevent the automated locating of the Deserializer function required for ur script to work.

I love ppl who think they deobf -- more like, dump constants -- the Demo VM and think the luaobfuscator is fully deobfuscated. This is why API users are forced making their own configs <3

apnff0x#0 Replied 1 Month ago14:06 11/09/2024

👌👌👌👌👌👌👌🤑🤑😭😎💀👌👌

Please
to join shitposting this thread <3