Simple Lua Bytecode-Method Obfuscator for Lua 5.1+ / RBXLua.
Obfuscator for Lua 5.1 in Lua.
Reboy is me.
Sorry for dirty code but it's obfuscator.
The obfuscator does not have luau support, if you want luau support with the obfuscator, try this: ShinyMoon
- FiOne LBI (created by same author as Rerubi) - https://github.com/Rerumu/FiOne
Yueliang 5 (Lua compiler in Lua) - http://yueliang.luaforge.net/- Moonshine (improved version of Yueliang) - https://github.com/gamesys/moonshine
- ARCFOUR implementation in pure Lua (RC4) - https://www.rjek.com/
- Convert to bytecode
- Encode bytecode to plain text
- Encrypt encoded code with random password
- Minified code
- Customizable variable name, variable comment, comment
- Lua 5.1 format
- Executable in Lua 5.1+ / RBXLua (no loadstring)
You will need Lua 5.1: Lua for windows
- Download module.lua and MLoader.lua
- Run MLoader.lua as lua script (cmd >
lua MLoader.lua
) - Type a path to module.lua
- Type a path to lua file to obfuscate
- Type a path to new lua file to write
- Type some options
- And it will be obfuscated.
Run this command to view help:
lua path/to/module.lua
Help:
ByteLuaObfuscator
Copyright (c) 2023 Reboy / M0dder
Usage:
lua module.lua -s "<FILE_PATH>" -o "<FILE_PATH>" [..]
Available Arguments:
--help -h Shows help.
-s --source "<FILE_PATH>" Path to Lua script to obfuscate.
-o --output "<FILE_PATH>" Path to Lua script to output (document will be created if there isn't).
-c --comment "<COMMENT>" Comment Option.
-vc --varcomm "<COMMENT>" Comment Option for lua variable value.
-vn --varname "<STRING>" Lua variable name (Special characters, spaces will be replaced with underline).
-C --cryptvarcomm Encode (Decodable) comment for vartiable value.
Require the module:
local module = require("path.to.module") -- require module.lua
Call module with these arguments:
module(<string> source[, <table> options])
Options table like this:
{ -- default options
comment = "// CRYPTED", -- ex result: "--// comment"
variablecomment = "lol you have to stop trying to deobfuscate",
cryptvarcomment = true, -- encrypt variablecomment with bytecode ex: "a" -> "\97"
variablename = "CRYPT", -- ex: "local 'variablename' = 'variablecomment'"
}
The module will returns obfuscated source (string, about 20KB~) or error.