PyObfuscator
1.0.0
이 도구는 파이썬 코드를 난독하게합니다.
이 패키지는 다음과 같습니다.
pip install PyObfuscatorPyObfuscator -h # help message
PyObfuscator code.py # easiest command
PyObfuscator -o " obfu.py " -l 6 -n " name1:obfu_name1 " " name2:obfu_name2 " -n " name3:obfu_name3 " -d -w " mypassword " -e " utf-8 " -s 8 -p -g 50 -f " logs.log " code.py from PyObfuscator import Obfuscator , Name
Obfuscator ( 'code.py' ). default_obfuscation () # write your obfuscate code in code_obfu.py
Obfuscator (
"code.py" ,
"obfu.py" ,
6 ,
{
"name1" : Name ( "name1" , "obfu_name1" , False , None ),
"name2" : Name ( "name2" , "obfu_name2" , False , None ),
"name3" : Name ( "name3" , "obfu_name3" , False , None ),
},
True ,
"mypassword" ,
"utf-8" ,
8 ,
). default_obfuscation ()python3 PyObfuscator.pyz -o " obfu.py " -l 6 -n " name1:obfu_name1 " " name2:obfu_name2 " -n " name3:obfu_name3 " -d -w " mypassword " -e " utf-8 " -s 8 -p -g 50 -f " logs.log " code.py
# OR
chmod u+x PyObfuscator.pyz # add execute rights
./PyObfuscator.pyz code.py # execute filepython3 -m PyObfuscator -o " obfu.py " -l 6 -n " name1:obfu_name1 " " name2:obfu_name2 " -n " name3:obfu_name3 " -d -w " mypassword " -e " utf-8 " -s 8 -p -g 50 -f " logs.log " code.py
python3 -m PyObfuscator.Obfuscator code.pypython3 -m doctest -v PyObfuscator.py
python3 -m unittest discover -s tests -p Test * .py -v
python3 -m coverage report 환경에주의하십시오. 코드 builtins 난독 화하는 데 사용되는 Python 버전은 Code를 실행하는 데 사용해야합니다. python3.11 사용하여 코드를 난독 화하고 python3.8 사용하여 난독 화를 실행합니다.
Traceback (most recent call last):
File "examples/test_level2.py", line 1, in <module>
FDPNIhb1AZEN,seksF21wjxt5,xqWjyUJQi2WW,uek5BUS_9gp9,DUf2SsKgzwIR,UeB2l_bNCh3N,u_n3FMDZm8tq,feUH2QpjE1gi,hA33zmiTJ_JE,M3lzh7eBSD9y,NuY_a_VBO50V,lgOF8wmF3ql4,evF7Z_VpmU_w,rAD4vYkZfTqs,A3d0EhLPyeE1,NCzfbX1s_ggE,CriWabrsNFfO,XkjAnTEaNfuZ,BOqlKFTYkxbk,y2Dt_mc2THTA,Rp6gDOiPNDue,Gfg2DqYJjCzi,c8wWtRA76FdT,Cq2Su4t4y0h4,fbbaDgxs8tWM,R6tcHR8knbgb,qhyLkEbSFB4S,Bh3PAjtAs_ro,EhDsQ7NUGiS8,mFOzzhayukZF,RzLj02zhQOac,rTHnxBm852It,fQfaXvdfr51h,OwN8fPlvvHio,ou9uh1HSaZ_h,cQHwbRxoIABE,gO9zG8s9hQ85,jG7_ouSPtcJD,Rrz6wtYDgLyh,SepJ1GH_EvbO,CmEouI596SfP,cdjga9FvDMrR,xXKwxO3Af6ZC,IlSqIRFUc3aq,eiK3E54SxbFL,T_nEHJVrd8xa,dyeFfvNvRrJe,nQ3aG44kYDrE,d79KCDSODUdp,v8Ih6eJzsZct,mBDQlvTLhz5_,ifXIJVCat530,GCso0nOOcTvs,vjduw9_bYMAC,RpDzd9pIuzsp,HY0EPrDGTokL,giYP_dZTTiBY,blL25OfKbP_r,ocO5loEcx20N,AZp_GuYUG7qv,_DCe2Pf05TXF,qeY3dofBohyR,RylQla9TlcNg,g7jtp3n62w5F,FrJC6cWPgiE2,jnfMTOrLcfqd,cnMq4yvWy3GW,iPmZyGtZMhz7,OcgS6nKP_s5X,jaqISdaRa0ew,uO41PEYi7HMu,AZBUShNdIuX5,s2rqHmFMnwH1,XPJarUBiJk7D,e0SXoCio_DWE,w17jY9PSTodx,t2bSK98RFzM_,Qkp8QP0cUTaG,yT2XPV9tzlXx,tWeUmmgtidl3,mbjQPtxtxP7G,JxQvQeWBKRPi,zoQ5baLbTfil,nZoIdYSG5kFr,iVCjamAO6XIn,Tto8NZRTYO72,GHFFxAReo1VB,mq8K2uzcjw7t,pKf7VEb4p6dI,xpHqiVjNS4lX,CJru0K1uWKzM,m1efM_Co0gSv,UK3DqzeZ74rh,VZR0NBMxiWaq,vUz2dlBx9yvi,HP9lXICmFjl9,kOF5lxeAR_ag,RFPMvZDIZBM4,IwRGhMx782L6,R6I1WOjRiEY3,pXZGyDO5POgg,Mmh3GIH0pn9g,QIHGG3kvbTDT,SnqQLHu_oegW,v3JLevaT8dFE,dot2SSVbimus,h0F6lqwWBnTz,WZfDRY4jqD9i,GaCJ66MKZ7z5,O12mBRro2EjY,oOjJs6N8kdLR,Ih0Qk_Jf5txk,pbGaW1lwTTZQ,YvHk6bp91YLQ,nC1x2GGo_x3K,A440BaO7Yb_5,BBdxdBzon96y,b1hNtXENuzuh,MQDqjzcYElA7,p9VtLdxESgWm,nCtRO2HjFujc,sU7fWucgGmHg,X3_YNBBM7YGH,TQjjgn8BRnDS,Ikh4dRElUDTk,TrnUtcs8WS3k,M7bn5Vrg3OGY,IR8uzG04ar89,GCKHIADb6Wnv,PPTwFCzsLZZA,NhT3ESD2opiP,S7HSHlLGnHYd,GkkQa2mEOp7r,wW8UFW6MMSfV,nRnBtNqQ0haa,XzDeNchDhUFa,MQ8HU46biWT5,CQg_VvjuAcZW,dZ38dwV3zvkX,_9Q2HZjaOLuy,XEvrxUAzCWg9,aPu2QDS0jErQ,Ta60wzRxmZbF,qsBi0eW1wbw0,QypXydiMEfUM,e9AQ2_aOuA6q,yuTgsIloXhqk,qfkiotz2gFQy,u3ciCSnQCsWs,zyHM8gHWxyAO,iTs_Rdx40gau,sUKE7PHxzi8g,FmrWkwmzE4g7,KtRksPeReH51,k0sEHlvTMXPs,PgCfUfZlha8S,mDMspkh5l4LM,L5eUGEzsyNao,lYEOTtozCnvK,Uypmnv6RLVw4,t2bSK98RFzM_,ZfXs5cUjR9pI,yT2XPV9tzlXx,tWeUmmgtidl3,mbjQPtxtxP7G,JxQvQeWBKRPi=ArithmeticError,AssertionError,AttributeError,BaseException,BaseExceptionGroup,BlockingIOError,BrokenPipeError,BufferError,BytesWarning,ChildProcessError,ConnectionAbortedError,ConnectionError,ConnectionRefusedError,ConnectionResetError,DeprecationWarning,EOFError,Ellipsis,EncodingWarning,EnvironmentError,Exception,ExceptionGroup,False,FileExistsError,FileNotFoundError,FloatingPointError,FutureWarning,GeneratorExit,IOError,ImportError,ImportWarning,IndentationError,IndexError,InterruptedError,IsADirectoryError,KeyError,KeyboardInterrupt,LookupError,MemoryError,ModuleNotFoundError,NameError,None,NotADirectoryError,NotImplemented,NotImplementedError,OSError,OverflowError,PendingDeprecationWarning,PermissionError,ProcessLookupError,RecursionError,ReferenceError,ResourceWarning,RuntimeError,RuntimeWarning,StopAsyncIteration,StopIteration,SyntaxError,SyntaxWarning,SystemError,SystemExit,TabError,TimeoutError,True,TypeError,UnboundLocalError,UnicodeDecodeError,UnicodeEncodeError,UnicodeError,UnicodeTranslateError,UnicodeWarning,UserWarning,ValueError,Warning,ZeroDivisionError,__build_class__,__debug__,__doc__,__import__,__loader__,__name__,__package__,__spec__,abs,aiter,all,anext,any,ascii,bin,bool,breakpoint,bytearray,bytes,callable,chr,classmethod,compile,complex,copyright,credits,delattr,dict,dir,divmod,enumerate,eval,exec,exit,filter,float,format,frozenset,getattr,globals,hasattr,hash,help,hex,id,input,int,isinstance,issubclass,iter,len,license,list,locals,map,max,memoryview,min,next,object,oct,open,ord,pow,print,property,quit,range,repr,reversed,round,set,setattr,slice,sorted,staticmethod,str,sum,super,tuple,type,vars,zip,__annotations__,__builtins__,__cached__,__doc__,__file__,__loader__,__name__,__package__,__spec__
NameError: name 'BaseExceptionGroup' is not defined
내장 된 BaseExceptionGroup 은 python3.8 에는 존재하지 않지만 python3.11 에는 존재합니다.
PyinStaller 또는 다른 방법으로 앱을 동결시키기 위해주의하십시오. Somes 변수는 기본 Python 통역사에 존재하지만 동결 된 앱에는 없습니다. 오류를 해결하기 위해 기본값이있는 변수를 설정합니다 (pyinstaller의 경우) :
from sys import exit
copyright = """Copyright (c) 2001-2023 Python Software Foundation.
All Rights Reserved.
Copyright (c) 2000 BeOpen.com.
All Rights Reserved.
Copyright (c) 1995-2001 Corporation for National Research Initiatives.
All Rights Reserved.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
All Rights Reserved."""
credits = """ Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
for supporting Python development. See www.python.org for more information."""
help = "Type help() for interactive help, or help(object) for help about object."
quit = "Use quit() or Ctrl-Z plus Return to exit"
license = "Type license() to see the full license text"
__cached__ = ""사용 된 각 변수의 정적으로 유형을 정의하는 것은 매우 어려울 것입니다. 다음 코드의 버그가 발생합니다.
from threading import Thread
class NotThread :
def start ():
print ( "start" )
Thread ( target = start ). start () 이전 코드에서는 모든 start 속성 이름이 난독 화되지만 threading.Thread 클래스는 난독 화되지 않은 상태에서 AttributeError: 'Thread' object has no attribute 'i3xEgmcuREyD' 메소드로 AttributeError 된 start 이름이 없습니다.
이를 고치려면 이름이 비 객관화 된 이름과 다른 이름이 있어야합니다.
GPL, 버전 3에 따라 라이센스가 부여되었습니다.