#!/usr/bin/env python3.14 import sys,re,random, ast def n2esl(n): cbin=bin(n)[2:][::-1] cbin=[int(i) for i in cbin] cbin=[i for i,v in enumerate(cbin) if v == 1] base='(a()@(t()@(n()@n)@(n()@n)))' # NOTE: its .n=2 out=[] for i in cbin: number_trans=f"(a()@(t()@{'@'.join(['(n()@n)' for _ in range(i)])}))" if i>1 else ("(s()@(t()@(n()@n)@(n()@n)))" if i == 0 else ("(n()@n)" if i == 1 else "")) out.append(f'(e()@(t()@{base}@{number_trans}))') return '(a()@(t()@' + '@'.join(out) + '))' def esl_convert(n): x=[n2esl(ord(i)) for i in n] return "c()@(t()@" + '@'.join(x) + ')' dTop=list("̛̀́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓̔̽̾̿̀́͂̓̈́͊͋͌͐͑͒͗̈́͆͛̕̚͘͝͠͡") dBot=list("̡̢̧̨̖̗̘̙̜̝̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼͇͈͉͍͎͙͚͓͔͕͖͜͟ͅ") dMid=list("̴̵̶̷̸") def zalgo(textSize=None,hs=None,nT=''): if not textSize: textSize=random.randint(1,120) if not hs: hs=random.randint(1,120) t='' for _ in range(textSize): t+=random.choice('qwertyuiopasdfghjklzxccvbnmQWERTY_UIOPASDFGHJKLZXCVBNM'+('01234567189'if _ else'')) for i in t: nc=i nc += random.choice(dMid) for count in range(hs): nc += random.choice(dTop) for count in range(hs): nc += random.choice(dBot) nT+=nc return nT VER = "1.5.3" N = f"version{VER}-{zalgo(10,20)}" PY_EXEC="(l()@((c()@(t()@(a()@(t()@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(s()@(t()@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)))))))@(a()@(t()@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)))))))@(a()@(t()@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(s()@(t()@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)))))))@(a()@(t()@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(s()@(t()@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(n()@n)))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)))))@(e()@(t()@(a()@(t()@(n()@n)@(n()@n)))@(a()@(t()@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n)@(n()@n))))))))).n))" PY_STDLIB=f'O="__matmul__";M=(type({N!r},(),{{"__init__":lambda *a:None}}),);t,a,s,c,e,n,l=(type({N!r},M,{{O:lambda x,n:(setattr(x,"t",[])if not getattr(x,"t",0)else 0,x.t.append(n),x)[-1]}}),type({N!r},M,{{O:lambda x,n:(setattr(n.t[0],"n",sum([i.n for i in n.t])),n.t[0])[-1]}}),type({N!r},M,{{O:lambda x,n:(setattr(n.t[0],"n",n.t[0].n-n.t[1].n),n.t[0])[-1]}}),type({N!r},M,{{O:lambda a,b:(setattr(b.t[0],"n","".join([chr(i.n)for i in b.t])),b.t[0])[-1]}}),type({N!r},M,{{O:lambda x,n:(setattr(n.t[0],"n",n.t[0].n**n.t[1].n),n.t[0])[-1]}}),type({N!r},M,{{O:lambda x,n:(setattr(x,"n",1),x)[-1]}}),type({N!r},M,{{O:lambda x,n:getattr(__builtins__,n)}}));del O,M' PVM_PY_STDLIB=f"t,a,s,c,e,n,l=type({N!r},(),{{'g':__import__('builtins'),'c':lambda s,a,b=None:(s.c(a),s.c(b))if b!=None else a if type(a)is not list else s.r[a[0]]if len(a)==1 and isinstance(a[0],(str,int))else{{'reflist':lambda:list(map(s.c,a[1])),'tuple':lambda:tuple(a[1]),'reftuple':lambda:tuple(map(s.c,a[1]))}}[a[0]]()if len(a)==2 and type(a[0])==str else a,'__init__':lambda s:[s.__setattr__(a,b)for(a,b)in zip(['r','i'],[{{}},{{0:s.M_MATH,1:s.M_EQ,4:s.P_GET,5:s.P_CALL,6:s.P_PROP,7:s.P_INDEX,8:s.C_SETR,9:s.C_HLT,11:s.F_GOTO,14:s.F_IF,20:s.C_DEFINE,21:s.C_DICTADD}}])]and None,'M_MATH':lambda s,o,a,b,A:((b:=s.c(a,b)),(a:=b[0]),(b:=b[1]),s.r.__setitem__(A,[lambda:a+b,lambda:a-b,lambda:a**b][o]()),s.__setattr__('pc',s.pc+1)),'M_EQ':lambda s,a,b,A:((b:=s.c(a,b)),(a:=b[0]),(b:=b[1]),s.r.__setitem__(A,a==b),s.__setattr__('pc',s.pc+1)),'P_GET':lambda s,n,a:(s.r.__setitem__(a,getattr(s.g,s.c(n))),s.__setattr__('pc',s.pc+1)),'P_CALL':lambda s,f,a,*r:((b:=[s.c(i)for i in r[:a]]),(c:=r[a]if len(r)>a else None),(o:=s.r.get(f)(*b)),s.r.__setitem__(c,o),s.__setattr__('pc',s.pc+1)),'P_PROP':lambda s,S,*t:((a:=t[-1]),(t:=t[:-1]),(o:=s.r[S]),[(o:=getattr(o,v))for v in t],s.r.__setitem__(a,o),s.__setattr__('pc',s.pc+1)),'P_INDEX':lambda s,a,i,o:((i:=s.c(i)),(i:=slice(*i)if i.__class__==list and 1 .5: return f"{name}()" msg = random.choice(FILLER_LIST) q = '"' if random.random() > .5 else "'" return f"{name}({q}{msg}{q})" def AL(code): tascenl = [zalgo(random.randint(1,20), random.randint(1,20)) for _ in range(7)] names = dict(zip('tascenl', tascenl)) class Rename(ast.NodeTransformer): def visit_Name(self, node): if node.id in names: node.id = names[node.id] return node tree = ast.parse(code) tree = Rename().visit(tree) ast.fix_missing_locations(tree) return ast.unparse(tree), names def obfuscate(code, mode, zalgo, pvm=False): code = code[::-1] if mode == 'py': header = ( f'# INTENDED FOR PYTHON 3.5+ ' f'|| Check out https://esolangs.org/wiki/M@trix || ' f'Check out https://github.com/i-am-new-blip/pvm\n' f'{PY_STDLIB if not pvm else PVM_PY_STDLIB};_=' ) inverted_obfuscated = '(' + esl_convert(code) + ').n[::-1]' payload = PY_EXEC + "(" + inverted_obfuscated + ")" # Only obfuscate the generated execution payload if zalgo: payload,mapping = AL(payload) default_split = list(mapping.values()) header = header.replace('t,a,s,c,e,n,l', ','.join(default_split)) else: default_split = 'tascenl' # Only filler the payload, NOT stdlib/header # (still risky because payload has syntax too) payload = re.sub( rf"({'|'.join(map(re.escape, default_split))})\(\)", filler, payload ) return header + payload def get_mode(file): if file.endswith('.py'): return 'py' elif file.endswith('.lua'): return 'lua' elif file.endswith('.js'): return 'js' if __name__=='__main__': running_from = 'intr'if hasattr(sys,'ps1')else'-c'if sys.argv and sys.argv[0]=='-c'else'file' if 'CODE' in locals() or 'CODE' in globals(): exit(obfuscate(CODE,MODE)) filename=input("input the file to obfuscate: ")if len(sys.argv)==1 or running_from=='intr'else sys.argv[-2] zalginator=input("Hello my friend! do i zalgo? (yn) ")=='y' if len(sys.argv)==1 or running_from=='intr'else sys.argv[-1] pvm=False#input("Hello my guy! do i include PVM stdlib? (yn) ")=='y' if len(sys.argv)==1 or running_from=='intr'else sys.argv[-1] mode=get_mode(filename) with open(filename)as r: read=r.read() output = obfuscate(read,mode,zalginator,pvm) if not sys.stdin.isatty(): exit(output) with open(filename+'.obfuscated','w')as f: f.write(output) print(end='Done! check it out on '+filename+'.obfuscated') if len(sys.argv)==1 and running_from != 'intr': print(end=', by the way you can put the filename in the args.'if running_from=='file'else f', by the way you can put the filename right after the exec code like this:\n{sys.executable} -c [code] [filename]') print()