Categories > Coding > Lua >
Deobfuscate this script for free oxygen.
Posted
So, I found this free Lua obfuscator online. I wanted to test how good it is, so here is a script obfuscated by it that you can deobfuscate. I don't believe the obfuscator has been mentioned before, but if it has sorry for me not knowing. First person to deobfuscate it gets free oxygen.
https://hastebin.com/jimiborude.apache
NOTE: You must reply with the full script to claim your prize.
Added
It's not a VM paste to my knowledge, try deobfuscating it. Ironbrew probably could deobfuscate it. The obfuscator itself isn't actually a LuaU one (at least I don't think it is) but I just want to see how easy it would be for someone to deobfuscate it.
Cancel
Post
we are dead
Replied
saw this obfuscator on like either wrd or v3rm but yes it's a ib paste
Cancel
Post
"Questionable intellegence, but I like the mystery" - CubeFaces
https://cdn.discordapp.com/attachments/1136067487847415848/1138948596679589898/sig.png
Replied
oh no a variable scrambler what am i going to do!!
Cancel
Post
Added
i will try this when i get home
Cancel
Post
Did I mention I use arch btw?
Added
Neither of the provided scripts are what the actual script is. I included a unused variable that only people who correctly deobfuscate it will be able to find and see.
Cancel
Post
Added
It's luaobfuscator.com. I don't think it's specifically a LuaU obfuscator, I think it's made for just regular Lua.
I haven't seen it mentioned before, either because it's common knowledge, it's horrible, or nobody really knows about it. So I wanted to see if anyone could deobfuscate it.
Cancel
Post
Added
Alright, I just found something really annoying about that obfuscator. Basically, no matter what you enter into the obfuscator, if you press the actual "Obfuscate" button, it just replaces your input with an obfuscated HelloWorld script (which is what you deobfuscated).
Here is a version of the code that is obfuscated correctly using the other buttons. Try deobfuscating this one, if you suceed you will win your oxygen.
local v0=string.char;local v1=string.byte;local v2=string.sub;local v3=bit32 or bit;local v4=v3.bxor or v3.bxor;local v5=table.concat;local v6=table.insert;local function v7(v13,v14)local v15={};for i=1, #v13 do v6(v15,v0(v4(v1(v2(v13,i,i + 1)),v1(v2(v14,(824 -((1258 -831) + 396)) + ((i-1)% #v14),(1 -0) + ((i-(1 -0))% #v14) + 1 + 0)))%256));end return v5(v15);end print(v7("\20\59\162","\109\94\209\61\212\66\176"));print(v7("\228\64\125","\137\40\16\110\150"));local v8=v7("\158\190\190","\231\219\205\180\235");local v9=v7("\184\79\71","\213\39\42\222\102");print(v8);print(v9);local v10=print;v10(v7("\100\167\89","\29\194\42\221\56\89\191"));local v11=v7("\204\4\182\92","\181\97\215\52\235");local v12=v7("\143\138","\225\229\153\231\65");v10(v11);v10(v12);
Cancel
Post
we are dead
Replied
@Alternate This is extremely easy to get the original source to (hence the original bytecode is right in your face). This code just uses a math equation to convert the bytecode back to it's original format from the randomized format. Terrible way to obfuscate scripts since anyone with common sense can copy and paste the math equation to retrieve the original bytecode.
local function format_bytecode(bytecode, format)
local storage = {}
local original_bytecode = ''
for i = 1, #bytecode do
table.insert(
storage,
string.char(
bit32.bxor(
string.byte(string.sub(bytecode, i, i + 1)),
string.byte(
string.sub(
format,
(824 - ((1258 - 831) + 396)) + ((i - 1) % #format),
(1 - 0) + ((i - (1 - 0)) % #format) + 1 + 0
)
)
) % 256
)
)
original_bytecode = original_bytecode..'\\'..bit32.bxor(string.byte(string.sub(bytecode, i, i + 1)), string.byte(string.sub(format, (824 - ((1258 - 831) + 396)) + ((i - 1) % #format), (1 - 0) + ((i - (1 - 0)) % #format) + 1 + 0))) % 256
end
print('[Original Bytecode]: '..original_bytecode)
return table.concat(storage)
end
-- 'Randomized' Format
warn('Randomized Format')
print('[String]: '..format_bytecode('\20\59\162', '\109\94\209\61\212\66\176')) -- yes
print('[String]: '..format_bytecode('\228\64\125', '\137\40\16\110\150')) -- mhm
print('[String]: '..format_bytecode('\158\190\190', '\231\219\205\180\235')) -- yes
print('[String]: '..format_bytecode('\184\79\71', '\213\39\42\222\102')) -- mhm
print('[String]: '..format_bytecode('\100\167\89', '\29\194\42\221\56\89\191')) -- yes
print('[String]: '..format_bytecode('\204\4\182\92', '\181\97\215\52\235')) -- yeah
print('[String]: '..format_bytecode('\143\138', '\225\229\153\231\65')) -- no
--Original Format
warn('Original Format')
print('[String]: '..'\121\101\115') -- yes
print('[String]: '..'\109\104\109') -- mhm
print('[String]: '..'\121\101\115') -- yes
print('[String]: '..'\109\104\109') -- mhm
print('[String]: '..'\121\101\115') -- yes
print('[String]: '..'\121\101\97\104') -- yeah
print('[String]: '..'\110\111') -- no
--[[ Output
06:47:46.716 yes
06:47:46.716 mhm
06:47:46.716 yes
06:47:46.716 mhm
06:47:46.716 yes
06:47:46.717 yeah
06:47:46.717 no
print('yes')
print('mhm')
print('yes')
print('mhm')
print('yes')
print('yeah')
print('no')
]]
Therefore your script is just:
print('yes')
print('mhm')
print('yes')
print('mhm')
print('yes')
print('yeah')
print('no')
Cancel
Post
Replied
For extremely easy, the last two people (including you) who have claimed to deobfuscate it have gotten it wrong. It's not just a simple print script, there are variables and other things involved (they are not unused variables).
Cancel
Post
we are dead
Users viewing this thread:
( Members: 0, Guests: 1, Total: 1 )
Cancel
Post