Advertisement
Guest User

sdasdds

a guest
Mar 23rd, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.37 KB | None | 0 0
  1. --LVMProtect by 3dsboy08 and brack4712
  2. --Interpreter: v1.0.1
  3.  
  4. SCRIPT_CODE = "\27\76\86\77\103\0\1\4\4\4\8\0\11\0\0\0\76\86\77\80\82\79\84\69\67\84\0\0\0\0\0\0\0\0\0\0\0\2\2\4\0\0\0\9\0\0\0\65\64\0\0\26\128\128\0\30\64\0\0\2\0\0\0\4\6\0\0\0\23\21\14\9\19\0\4\30\0\0\0\3\6\10\9\71\20\8\9\71\16\15\2\21\2\3\71\30\8\18\71\1\14\9\3\71\19\15\14\20\0\0\0\0\0\4\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0"
  5.  
  6. local a;local b={"ABC","ABx","ABC","ABC","ABC","ABx","ABC","ABC","ABC","ABx","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","AsBx","ABC","ABC","ABC","ABC","ABC","ABC","ABC","ABC","AsBx","AsBx","ABC","ABC","ABx","ABC","ABC"}Bit={Has=function(c,d)return c%(d*2)>=d end,And=function(e,f)local g=0;for h=0,31 do g=g+(Bit.Has(e,2^h)and Bit.Has(f,2^h)and 2^h or 0)end;return g end,Or=function(e,f)local g=0;for h=0,31 do g=g+((Bit.Has(e,2^h)or Bit.Has(f,2^h))and 2^h or 0)end;return g end,RShift=function(i,j)return math.floor(i*0.5^(j or 1))end,LShift=function(i,j)return i*2^(j or 1)end,RRotate=function(i,j)j=j or 1;return Bit.Or(Bit.RShift(i,j),Bit.LShift(i,32-j))end,LRotate=function(i,j)j=j or 1;return Bit.Or(Bit.LShift(i,j),Bit.RShift(i,32-j))end,Not=function(i)return 4294967295-i end,Xor=function(e,f)local g=0;for h=0,31 do g=g+(Bit.Has(e,2^h)~=Bit.Has(f,2^h)and 2^h or 0)end;return g end}local function k(l,m,n)if n then local o=0;local p=0;for h=m,n do o=o+2^p*k(l,h)p=p+1 end;return o else local q=2^(m-1)return l%(q+q)>=q and 1 or 0 end end;local function r(s)local t=1;local u=false;local v;local w;local x,y;local z,A,B,C,D;do function z()local E=s:byte(t,t)t=t+1;return E end;function A()local E,F,G,H=s:byte(t,t+3)t=t+4;return H*16777216+G*65536+F*256+E end;function B()local E=A()local F=A()return F*4294967296+E end;function C()local E=A()local F=A()if E==0 and F==0 then return 0 end;return(-2*k(F,32)+1)*2^(k(F,21,31)-1023)*((k(F,1,20)*2^32+E)/2^52+1)end;function D(I)local J;if I then J=s:sub(t,t+I-1)t=t+I else I=y()if I==0 then return end;J=s:sub(t,t+I-1)t=t+I end;return J end end;local function K(J)local L=""for h=1,#J do local G=J:sub(h,h)L=L..string.char(Bit.Xor(string.byte(G),_xkey))end;return L end;local function M()local N;local O={}local P={}local Q={}local R={lines={}}N={instructions=O,constants=P,prototypes=Q,debug=R}local i;N.name=D()N.first_line=x()N.last_line=x()if N.name then N.name=N.name:sub(1,-2)end;N.upvalues=z()N.arguments=z()N.varg=z()N.stack=z()do i=x()for h=1,i do local S={}local T=A()local U=k(T,1,6)local V=b[U+1]S.opcode=U;S.type=V;S.A=k(T,7,14)if V=="ABC"then S.C=k(T,24,32)S.B=k(T,15,23)elseif V=="ABx"then S.Bx=k(T,15,32)elseif V=="AsBx"then S.sBx=k(T,15,32)-131071 end;O[h]=S end end;do i=x()for h=1,i do local W={}local V=z()W.type=V;if V==1 then W.data=z()~=1 elseif V==3 then W.data=C()elseif V==4 then W.data=K(D()):sub(1,-2)end;P[h-1]=W end end;do i=x()for h=1,i do Q[h-1]=M()end end;do local T=R.lines;i=x()for h=1,i do T[h]=A()end;i=x()for h=1,i do D():sub(1,-2)A()A()end;i=x()for h=1,i do D()end end;return N end;do assert(D(4)=="\27LVM","LVMProtect bytecode expected.")_xkey=z()z()u=z()==0;v=z()w=z()if v==4 then x=A elseif v==8 then x=B else error("Unsupported bytecode target platform")end;if w==4 then y=A elseif w==8 then y=B else error("Unsupported bytecode target platform")end;assert(D(3)=="\4\8\0","Unsupported bytecode target platform")end;return M()end;local function X(...)local G=select("#",...)local Y={...}return G,Y end;local function Z(_,a0)local O=_.instructions;local P=_.constants;local Q=_.prototypes;local a1,a2;local a3=getfenv(0)local a4=1;local a5,a6;local a7={}local a8={[0]=function(S)a1[S.A]=a1[S.B]end,[1]=function(S)a1[S.A]=P[S.Bx].data end,[2]=function(S)a1[S.A]=S.B~=0;if S.C~=0 then a4=a4+1 end end,[3]=function(S)local a1=a1;for h=S.A,S.B do a1[h]=nil end end,[4]=function(S)a1[S.A]=a0[S.B]end,[9]=function(S)local a9=P[S.Bx].data;a1[S.A]=a3[a9]end,[6]=function(S)local aa=S.C;local a1=a1;aa=aa>255 and P[aa-256].data or a1[aa]a1[S.A]=a1[S.B][aa]end,[5]=function(S)local a9=P[S.Bx].data;a3[a9]=a1[S.A]end,[8]=function(S)a0[S.B]=a1[S.A]end,[7]=function(S)local ab=S.B;local aa=S.C;local a1,P=a1,P;ab=ab>255 and P[ab-256].data or a1[ab]aa=aa>255 and P[aa-256].data or a1[aa]a1[S.A][ab]=aa end,[12]=function(S)a1[S.A]={}end,[10]=function(S)local ac=S.A;local ab=S.B;local aa=S.C;local a1=a1;ab=a1[ab]aa=aa>255 and P[aa-256].data or a1[aa]a1[ac+1]=ab;a1[ac]=ab[aa]end,[14]=function(S)local ab=S.B;local aa=S.C;local a1,P=a1,P;ab=ab>255 and P[ab-256].data or a1[ab]aa=aa>255 and P[aa-256].data or a1[aa]a1[S.A]=ab+aa end,[13]=function(S)local ab=S.B;local aa=S.C;local a1,P=a1,P;ab=ab>255 and P[ab-256].data or a1[ab]aa=aa>255 and P[aa-256].data or a1[aa]a1[S.A]=ab-aa end,[11]=function(S)local ab=S.B;local aa=S.C;local a1,P=a1,P;ab=ab>255 and P[ab-256].data or a1[ab]aa=aa>255 and P[aa-256].data or a1[aa]a1[S.A]=ab*aa end,[16]=function(S)local ab=S.B;local aa=S.C;local a1,P=a1,P;ab=ab>255 and P[ab-256].data or a1[ab]aa=aa>255 and P[aa-256].data or a1[aa]a1[S.A]=ab/aa end,[15]=function(S)local ab=S.B;local aa=S.C;local a1,P=a1,P;ab=ab>255 and P[ab-256].data or a1[ab]aa=aa>255 and P[aa-256].data or a1[aa]a1[S.A]=ab%aa end,[19]=function(S)local ab=S.B;local aa=S.C;local a1,P=a1,P;ab=ab>255 and P[ab-256].data or a1[ab]aa=aa>255 and P[aa-256].data or a1[aa]a1[S.A]=ab^aa end,[18]=function(S)a1[S.A]=-a1[S.B]end,[17]=function(S)a1[S.A]=not a1[S.B]end,[24]=function(S)a1[S.A]=#a1[S.B]end,[20]=function(S)local ab=S.B;local ad=a1[ab]for h=ab+1,S.C do ad=ad..a1[h]end;a1[S.A]=ad end,[22]=function(S)a4=a4+S.sBx end,[21]=function(S)local ac=S.A;local ab=S.B;local aa=S.C;local a1,P=a1,P;ac=ac~=0;if ab>255 then ab=P[ab-256].data else ab=a1[ab]end;if aa>255 then aa=P[aa-256].data else aa=a1[aa]end;if ab==aa~=ac then a4=a4+1 end end,[23]=function(S)local ac=S.A;local ab=S.B;local aa=S.C;local a1,P=a1,P;ac=ac~=0;ab=ab>255 and P[ab-256].data or a1[ab]aa=aa>255 and P[aa-256].data or a1[aa]if ab<aa~=ac then a4=a4+1 end end,[25]=function(S)local ac=S.A;local ab=S.B;local aa=S.C;local a1,P=a1,P;ac=ac~=0;ab=ab>255 and P[ab-256].data or a1[ab]aa=aa>255 and P[aa-256].data or a1[aa]if ab<=aa~=ac then a4=a4+1 end end,[27]=function(S)local ac=a1[S.A]if not not ac==(S.C==0)then a4=a4+1 end end,[29]=function(S)local a1=a1;local ab=a1[S.B]if not not ab==(S.C==0)then a4=a4+1 else a1[S.A]=ab end end,[26]=function(S)local ac=S.A;local ab=S.B;local aa=S.C;local ae,af;local ag,ah;local ai;local aj,ak;ae={}if ab~=1 then if ab~=0 then ai=ac+ab-1 else ai=a2 end;ah=0;for h=ac+1,ai do ah=ah+1;ae[ah]=a1[h]end;aj=a4;ak=a1;ag,af=X(a1[ac](unpack(ae,1,ai-ac)))else aj=a4;ak=a1;ag,af=X(a1[ac]())end;a4=aj;a1=ak;a2=ac-1;if aa~=1 then if aa~=0 then ag=aa-1 end;for h=0,ag-1 do a1[ac+h]=af[h+1]end end end,[28]=function(S)local ac=S.A;local ab=S.B;local aa=S.C;local a1=a1;local ae,af,ag;local a2,ai,ah=a2;ae={}if ab~=1 then if ab~=0 then ai=ac+ab-1 else ai=a2 end;ah=0;for h=ac+1,ai do ah=ah+1;ae[#ae+1]=a1[h]end;ag,af=X(a1[ac](unpack(ae,1,ai-ac)))else ag,af=X(a1[ac]())end;return true,af,ag end,[30]=function(S)local ac=S.A;local ab=S.B;local a1=a1;local ai;local ah,al;if ab==1 then return true end;if ab==0 then ai=a2 else ai=ac+ab-2 end;al={}local ah=0;for h=ac,ai do ah=ah+1;al[ah]=a1[h]end;return true,al,ah end,[32]=function(S)local ac=S.A;local a1=a1;local am=a1[ac+2]local t=a1[ac]+am;a1[ac]=t;if am>0 then if t<=a1[ac+1]then a4=a4+S.sBx;a1[ac+3]=t end else if t>=a1[ac+1]then a4=a4+S.sBx;a1[ac+3]=t end end end,[31]=function(S)local ac=S.A;local a1=a1;a1[ac]=a1[ac]-a1[ac+2]a4=a4+S.sBx end,[33]=function(S)local ac=S.A;local ab=S.B;local aa=S.C;local a1=a1;local an=ac+2;local ad={a1[ac](a1[ac+1],a1[ac+2])}for h=1,aa do a1[an+h]=ad[h]end;if a1[ac+3]~=nil then a1[ac+2]=a1[ac+3]else a4=a4+1 end end,[34]=function(S)local ac=S.A;local ab=S.B;local aa=S.C;local a1=a1;if aa==0 then error("NYI: extended SETLIST")else local an=(aa-1)*50;local Y=a1[ac]if ab==0 then ab=a2 end;for h=1,ab do Y[an+h]=a1[ac+h]end end end,[36]=function(S)for ao=S.A,a2 do for h,ap in next,a7 do for aq,ar in next,ap do local as=ar.segment[ar.offset]if a1[ao]==as then ap[aq]={segment={as},offset=1}table.remove(a7,h)break end end end end end,[35]=function(S)local at=Q[S.Bx]local O=O;local a1=a1;local ap={}local au=setmetatable({},{__index=function(Y,aq)local ar=ap[aq]return ar.segment[ar.offset]end,__newindex=function(Y,aq,as)local ar=ap[aq]ar.segment[ar.offset]=as end})for h=1,at.upvalues do local av=O[a4]if av.opcode==0 then ap[h-1]={segment=a1,offset=av.B}elseif av.opcode==4 then ap[h-1]={segment=a0,offset=av.B}end;a4=a4+1 end;a7[#a7]=ap;local aw,ax=Z(at,au)a1[S.A]=ax end,[37]=function(S)local ac=S.A;local ab=S.B;local a1,a5=a1,a5;for h=ac,ac+(ab>0 and ab-1 or a6)do a1[h]=a5[h-ac]end end}local ay={get_stack=function()return a1 end,get_IP=function()return a4 end}local function ax(...)local az={}local aA={}a2=-1;a1=setmetatable(az,{__index=aA,__newindex=function(Y,aq,as)if aq>a2 then a2=aq end;aA[aq]=as end})local ae={...}a5={}a6=select("#",...)-1;for h=0,a6 do az[h]=ae[h+1]a5[h]=ae[h+1]end;a4=1;local E,F,m;while true do local S=O[a4]a4=a4+1;E,F,m=a8[S.opcode](S)if E then break end end;if E then if F and m then return unpack(F,1,m)end;return else if a then else if not F then error()end;local aB=_.name;local aC=_.debug.lines[a4]local aD=F:gsub("(.-:)","")local al=""al=al..(aB and aB..":"or"")al=al..(aC and aC..":"or"")al=al..F;error(al,0)end end end;return ay,ax end;load_bytecode=function(s,aE)local _=r(s)local aw,ax=Z(_)return ax end;utils={decode_bytecode=r,create_wrapper=Z,debug_bytecode=function(s)local _=r(s)return Z(_)end}load_bytecode(SCRIPT_CODE,getfenv())()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement