ADVERTISEMENTREMOVE ADS
Description
I have been on a quest to develop the worst print('Hello world!') possible through obfuscation (without using a public obfuscator such as Luraph). So far, my previous versions have been easy to deobfuscate. This version should be a little harder.
Original source code (decompiled from the Lua opcodes):
local Storage = {}
L0 = "Hello world!" Storage["a"] = L0 L1 = print L2 = Storage["a"] L2 = print(L2) return
Original source code (decompiled from the Lua opcodes):
local Storage = {}
L0 = "Hello world!" Storage["a"] = L0 L1 = print L2 = Storage["a"] L2 = print(L2) return
Features:
- prints Hello world!
ADVERTISEMENTREMOVE ADS
1 Lines • 8.8 KiB
return(function(a)local b='1311131731161B19121B151F15111F1317121F1D181A1C13151C1813161A151A111A191E261F1B131E23161C181B1D1823161B16121E181C101418101D1C10121C12151F12161B101D1C171D11171D171E1B221C15141F1A1D2110171C191B1D1F1A191514131B191719111D161F13191A131B2A1E1216141D101F17101A131E141F171014101F111D18161012171F12192D1214131B102D1B101B11151C15121F121F2611102614171110151D11171B1F16191D1812101A17191319101E271C121E16101C16151F1A1C15191F1C171D1E1D1A191C1110151916151619171910161B211A1017211F1A131012141C16141B1918131C1B1017131D1315191C121D1011181C1F121E16121817181712101E261A1312191A171B131F182A23191A142F1D111F192820182A1D121519171318141F1315171D1C1B19111517121819101213121B101211131412201B13251D1112111D181F131F151C17181712181E151B171D1E1C1611131F1A19101B1D18161D181712201E101E1F1A1C121C20191B151D1F121B19121A14181113101610151A101E281B16151813101C1117181D1110151F1D14191B161C13171615171D1317181E11201D18191B151B1F14171112'local function c(a)local b,c=26489122130,16384+3269018;local d=""local e=""local f=string.len(a)for b=1,f,2 do local c=tonumber(string.sub(a,b,b))local a=string.sub(a,b+1,b+1)e=e..string.rep(a,c)end;d=e;d=(d:gsub('%x%x',function(a)local d=b%274877906944;local e=(b-d)/274877906944;local f=e%128;a=tonumber(a,16)local f=(a+(e-f)/128)*(2*f+1)%256;b=d*c+e+a+f;return string.char(f)end))return d end;local d={}d.__index=d;function d.a(a)local b=setmetatable({},d)b.value=a;b.l=nil;b.r=nil;return b end;local e={}e.__index=e;function e.a()local a=setmetatable({},e)a.root=nil;return a end;function e:i(a)local a=d.a(a)if not self.root then self.root=a else self:ir(self.root,a)end end;function e:ir(a,b)if b.value<a.value then if a.l then self:ir(a.l,b)else a.l=b end else if a.r then self:ir(a.r,b)else a.r=b end end end;function e:s(a)return self:sr(self.root,a)end;function e:sr(a,b)if not a then return false elseif b==a.value then return true elseif b<a.value then return self:sr(a.l,b)else return self:sr(a.r,b)end end;local d=e.a()local e={}function e.a(a)local a,b,c,d,e=a:match("(%d+)%s+%[(.-)%]%s+(%w+)%s+([^;]*);?(%s*.*)")local a={a=a,b=b,c=c,d={},e=e}if d~=nil then for b in d:gmatch("%s*([-%w]+)%s*")do table.insert(a.d,b)end end;return a end;function e.b(a)local b={}for a in a:gmatch("[^\n]+")do local a=e.a(a)table.insert(b,a)end;return b end;for a=1,50 do d:i(a)end;local function f(b)local c={}local e={}local f={}local g=0;local function h(a,b)e[a]=b;c[a]="L"..tostring(a)end;while g<#b do g=g+1;local b=b[g]local i=tonumber(b.c)if i<=25 then if i<=13 then if i<=7 then if i<=4 then if i<=2 then if i<=1 then if i==1 then if d:s(i)and d:s(1)then g=math.huge end end else if i==2 then if d:s(i)and d:s(2)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')h(a,b,true)end end end else if i<=3 then if i==3 then if d:s(i)and d:s(3)then local d=b.d[1]local g=b.d[2]local b=b.d[3]local a=a[1]()[e[d]]local a=a(e[f[e[g]]:sub(2,100)])if a then c[g]=a end end end else if i==4 then if d:s(i)and d:s(4)then local a=b.d[1]local b=b.e;h(a,b)end end end end else if i<=6 then if i<=5 then if i==5 then if d:s(i)and d:s(5)then local d=b.d[1]local g=b.d[2]local b=b.d[3]local a=a[1]()[e[d]]local a=a(e[f[e[g]]:sub(2,100)])if a then c[g]=a end end end else if i==6 then if d:s(i)and d:s(6)then local a=b.d[1]h(a,b.e)end end end else if i==7 then if d:s(i)and d:s(7)then g=math.huge end end end end else if i<=10 then if i<=9 then if i<=8 then if i==8 then if d:s(i)and d:s(8)then g=math.huge end end else if i==9 then if d:s(i)and d:s(9)then g=math.huge end end end else if i==10 then if d:s(i)and d:s(10)then local d=b.d[1]local g=b.d[2]local b=b.d[3]local a=a[1]()[e[d]]local a=a(e[f[e[g]]:sub(2,100)])if a then c[g]=a end end end end else if i<=12 then if i<=11 then if i==11 then if d:s(i)and d:s(11)then local a=b.d[1]local b=b.d[2]if a=="0"then g=tonumber(b)-1 elseif a=="1"then g=g+tonumber(b)end end end else if i==12 then if d:s(i)and d:s(12)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')f[b]=c[a]end end end else if i==13 then if d:s(i)and d:s(13)then local a=b.d[1]local b=b.d[2]if a=="0"then g=tonumber(b)-1 elseif a=="1"then g=g+tonumber(b)end end end end end end else if i<=19 then if i<=16 then if i<=15 then if i<=14 then if i==14 then if d:s(i)and d:s(14)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')f[b]=c[a]end end else if i==15 then if d:s(i)and d:s(15)then local a=b.d[1]local b=b.d[2]if a=="0"then g=tonumber(b)-1 elseif a=="1"then g=g+tonumber(b)end end end end else if i==16 then if d:s(i)and d:s(16)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')f[b]=c[a]end end end else if i<=18 then if i<=17 then if i==17 then if d:s(i)and d:s(17)then local a=b.d[1]h(a,b.e)end end else if i==18 then if d:s(i)and d:s(18)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')h(a,b,true)end end end else if i==19 then if d:s(i)and d:s(19)then local d=b.d[1]local g=b.d[2]local b=b.d[3]local a=a[1]()[e[d]]local a=a(e[f[e[g]]:sub(2,100)])if a then c[g]=a end end end end end else if i<=22 then if i<=21 then if i<=20 then if i==20 then if d:s(i)and d:s(20)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')h(a,b,true)end end else if i==21 then if d:s(i)and d:s(21)then local a=b.d[1]local b=b.e;h(a,b)end end end else end else if i<=24 then if i<=23 then if i==23 then if d:s(i)and d:s(23)then g=math.huge end end else if i==24 then if d:s(i)and d:s(24)then local a=b.d[1]local b=b.e;h(a,b)end end end else if i==25 then if d:s(i)and d:s(25)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')f[b]=c[a]end end end end end end else if i<=38 then if i<=32 then if i<=29 then if i<=27 then if i<=26 then if i==26 then if d:s(i)and d:s(26)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')h(a,b,true)end end else if i==27 then if d:s(i)and d:s(27)then local a=b.d[1]local b=b.e;h(a,b)end end end else if i<=28 then if i==28 then if d:s(i)and d:s(28)then local a=b.d[1]local b=b.e;h(a,b)end end else if i==29 then if d:s(i)and d:s(29)then local a=b.d[1]h(a,b.e)end end end end else if i<=31 then if i<=30 then if i==30 then if d:s(i)and d:s(30)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')h(a,b,true)end end else if i==31 then if d:s(i)and d:s(31)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')h(a,b,true)end end end else if i==32 then if d:s(i)and d:s(32)then local a=b.d[1]local b=b.e;h(a,b)end end end end else if i<=35 then if i<=34 then if i<=33 then if i==33 then if d:s(i)and d:s(33)then local a=b.d[1]local b=b.d[2]if a=="0"then g=tonumber(b)-1 elseif a=="1"then g=g+tonumber(b)end end end else if i==34 then if d:s(i)and d:s(34)then local a=b.d[1]local b=b.d[2]if a=="0"then g=tonumber(b)-1 elseif a=="1"then g=g+tonumber(b)end end end end else if i==35 then if d:s(i)and d:s(35)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')h(a,b,true)end end end else if i<=37 then if i<=36 then if i==36 then if d:s(i)and d:s(36)then local a=b.d[1]h(a,b.e)end end else if i==37 then if d:s(i)and d:s(37)then g=math.huge end end end else if i==38 then if d:s(i)and d:s(38)then local d=b.d[1]local g=b.d[2]local b=b.d[3]local a=a[1]()[e[d]]local a=a(e[f[e[g]]:sub(2,100)])if a then c[g]=a end end end end end end else if i<=44 then if i<=41 then if i<=40 then if i<=39 then if i==39 then if d:s(i)and d:s(39)then local d=b.d[1]local g=b.d[2]local b=b.d[3]local a=a[1]()[e[d]]local a=a(e[f[e[g]]:sub(2,100)])if a then c[g]=a end end end else if i==40 then if d:s(i)and d:s(40)then g=math.huge end end end else if i==41 then if d:s(i)and d:s(41)then local a=b.d[1]local b=b.d[2]if a=="0"then g=tonumber(b)-1 elseif a=="1"then g=g+tonumber(b)end end end end else if i<=43 then if i<=42 then if i==42 then if d:s(i)and d:s(42)then local a=b.d[1]h(a,b.e)end end else if i==43 then if d:s(i)and d:s(43)then local a=b.d[1]local b=b.e;h(a,b)end end end else if i==44 then if d:s(i)and d:s(44)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')f[b]=c[a]end end end end else if i<=47 then if i<=46 then if i<=45 then if i==45 then if d:s(i)and d:s(45)then local a=b.d[1]h(a,b.e)end end else if i==46 then if d:s(i)and d:s(46)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')f[b]=c[a]end end end else if i==47 then if d:s(i)and d:s(47)then local d=b.d[1]local g=b.d[2]local b=b.d[3]local a=a[1]()[e[d]]local a=a(e[f[e[g]]:sub(2,100)])if a then c[g]=a end end end end else if i<=49 then if i<=48 then if i==48 then if d:s(i)and d:s(48)then local a=b.d[1]h(a,b.e)end end else if i==49 then if d:s(i)and d:s(49)then local a=b.d[1]local b=b.e:match('"%s*(.-)%s*"')f[b]=c[a]end end end else if i==50 then if d:s(i)and d:s(50)then local a=b.d[1]local b=b.d[2]if a=="0"then g=tonumber(b)-1 elseif a=="1"then g=g+tonumber(b)end end end end end end end end end end;f(e.b(c(b)))end)({getfenv and getfenv or function()return _ENV end,math.bxor or function(a,b)local c=0;local d=1;while a>0 or b>0 do if(a%2==1 and b%2==0)or(a%2==0 and b%2==1)then c=c+d end;d=d*2;a=math.floor(a/2)b=math.floor(b/2)end;return c end,math.band or function(a,b)local c=0;local d=1;while a>0 and b>0 do if a%2==1 and b%2==1 then c=c+d end;d=d*2;a=math.floor(a/2)b=math.floor(b/2)end;return c end})
ADVERTISEMENTREMOVE ADS
ADVERTISEMENTREMOVE ADS







Comments