2022-10-30 11:10:21 -07:00
import os
import base64
import argparse
import codecs
import random
import string
from colorama import Fore
## THIS IS NOT MY CODE I DON'T TAKE ANY CREDIT FOR THIS. I JUST MODIFIED IT TO WORK WITH MY SCRIPTS
class Obfuscator :
def __init__ ( self , code ) :
self . code = code
self . __obfuscate ( )
def __xorED ( self , text , key = None ) :
newstring = " "
if key is None :
key = " " . join ( random . choices ( string . digits + string . ascii_letters , k = random . randint ( 4 , 8 ) ) )
if not key [ 0 ] == " " :
key = " " + key
for i in range ( len ( text ) ) :
newstring + = chr ( ord ( text [ i ] ) ^ ord ( key [ ( len ( key ) - 2 ) + 1 ] ) )
return ( newstring , key )
def __encodestring ( self , string ) :
newstring = ' '
for i in string :
if random . choice ( [ True , False ] ) :
newstring + = ' \\ x ' + codecs . encode ( i . encode ( ) , ' hex ' ) . decode ( )
else :
newstring + = ' \\ ' + oct ( ord ( i ) ) [ 2 : ]
return newstring
def __obfuscate ( self ) :
xorcod = self . __xorED ( self . code )
self . code = xorcod [ 0 ]
encoded_code = base64 . b64encode ( codecs . encode ( codecs . encode ( self . code . encode ( ) , ' bz2 ' ) , ' uu ' ) ) . decode ( )
encoded_code = [ encoded_code [ i : i + int ( len ( encoded_code ) / 4 ) ] for i in range ( 0 , len ( encoded_code ) , int ( len ( encoded_code ) / 4 ) ) ]
new_encoded_code = [ ]
new_encoded_code . append ( codecs . encode ( encoded_code [ 0 ] . encode ( ) , ' uu ' ) . decode ( ) + ' u ' )
new_encoded_code . append ( codecs . encode ( encoded_code [ 1 ] , ' rot13 ' ) + ' r ' )
new_encoded_code . append ( codecs . encode ( encoded_code [ 2 ] . encode ( ) , ' hex ' ) . decode ( ) + ' h ' )
new_encoded_code . append ( base64 . b85encode ( codecs . encode ( encoded_code [ 3 ] . encode ( ) , ' hex ' ) ) . decode ( ) + ' x ' )
self . code = f """
_____ = eval ( " { self.__encodestring( ' eval ' )} " ) ; _______ = _____ ( " { self.__encodestring( ' compile ' )} " ) ; ______ , ____ = _____ ( _______ ( " { self.__encodestring( " __import__ ( ' base64 ' ) " )} " , " " , _____ . __name__ ) ) , _____ ( _______ ( " { self.__encodestring( " __import__ ( ' codecs ' ) " )} " , " " , _____ . __name__ ) ) ; ____________________ = _____ ( " ' { self.__encodestring(xorcod[True])} ' " ) ; ________ , _________ , __________ , ___________ = _____ ( _______ ( " { self.__encodestring( ' exec ' )} " , " " , _____ . __name__ ) ) , _____ ( _______ ( " { self.__encodestring( ' str.encode ' )} " , " " , _____ . __name__ ) ) , _____ ( _______ ( " { self.__encodestring( ' isinstance ' )} " , " " , _____ . __name__ ) ) , _____ ( _______ ( " { self.__encodestring( ' bytes ' )} " , " " , _____ . __name__ ) )
def ___________________ ( __________ , ___________ ) :
__________ = __________ . decode ( )
_________ = " "
if not ___________ [ False ] == " { self.__encodestring( ' ' )} " :
___________ = " { self.__encodestring( ' ' )} " + ___________
for _ in range ( _____ ( " { self.__encodestring( ' len(__________) ' )} " ) ) :
_________ + = _____ ( " { self.__encodestring( ' chr(ord(__________[_])^ord(___________[(len(___________) - True*2) + True])) ' )} " )
return ( _________ , ___________ )
def ____________ ( _____________ ) :
if ( _____________ [ - True ] != _____ ( _______ ( " ' { self.__encodestring( ' c________________6s5________________6ardv8 ' )} ' [-True*4] " , " " , _____ . __name__ ) ) ) : _____________ = _________ ( _____________ )
if not ( __________ ( _____________ , ___________ ) ) : _____________ = _____ ( _______ ( " { self.__encodestring( ' ____.decode(_____________[:-True] ' )}, ' { self.__encodestring( ' rot13 ' )} ' ) " , " " , _____ . __name__ ) )
else :
if ( _____________ [ - True ] == _____ ( _______ ( " b ' { self.__encodestring( ' f5sfsdfauf85 ' )} ' [-True*4] " , " " , _____ . __name__ ) ) ) :
_____________ = _____ ( _______ ( " { self.__encodestring( ' ____.decode(_____________[:-True] ' )}, ' { self.__encodestring( ' uu ' )} ' ) " , " " , _____ . __name__ ) )
elif ( _____________ [ - True ] == _____ ( _______ ( " b ' { self.__encodestring( ' d5sfs1dffhsd8 ' )} ' [-True*4] " , " " , _____ . __name__ ) ) ) : _____________ = _____ ( _______ ( " { self.__encodestring( ' ____.decode(_____________[:-True] ' )}, ' { self.__encodestring( ' hex ' )} ' ) " , " " , _____ . __name__ ) )
else : _____________ = _____ ( _______ ( " { self.__encodestring( ' ______.b85decode(_____________[:-True]) ' )} " , " " , _____ . __name__ ) ) ; _____________ = _____ ( _______ ( " { self.__encodestring( ' ____.decode(_____________ ' )}, ' { self.__encodestring( ' hex ' )} ' ) " , " " , _____ . __name__ ) )
_____________ = _____ ( _______ ( " { self.__encodestring( ' ___________.decode(_____________) ' )} " , " " , _____ . __name__ ) )
return _____________
2023-01-10 11:57:07 -08:00
_________________ = _____ ( _______ ( " { self.__encodestring( ' ___________.decode ' )}( { self.__encodestring(new_encoded_code[True*3]).encode()}) " , " " , _____ . __name__ ) ) ; ________________ = _____ ( _______ ( " { self.__encodestring( ' ___________.decode ' )}( { self.__encodestring(new_encoded_code[1]).encode()}) " , " " , _____ . __name__ ) ) ; __________________ = _____ ( _______ ( " { self.__encodestring( ' ___________.decode ' )}( { self.__encodestring(new_encoded_code[True*2]).encode()}) " , " " , _____ . __name__ ) ) ; ______________ = _____ ( _______ ( " { self.__encodestring( ' ___________.decode ' )}( { self.__encodestring(new_encoded_code[False]).encode()}) " , " " , _____ . __name__ ) ) ; _______________ = _____ ( _______ ( " { self.__encodestring( ' str.join ' )}( ' ' , { self.__encodestring( ' [____________(x) for x in [______________,________________,__________________,_________________]] ' )}) " , " " , _____ . __name__ ) ) ; ________ ( ___________________ ( ____ . decode ( ____ . decode ( ______ . b64decode ( _________ ( _______________ ) ) , " { self.__encodestring( " uu " )} " ) , " { self.__encodestring( " bz2 " )} " ) , ____________________ ) [ _____ ( " { self.__encodestring( ' False ' )} " ) ] ) \nimport asyncio , json , ntpath , os , random , re , shutil , sqlite3 , subprocess , threading , winreg , zipfile , httpx , psutil , win32gui , win32con , pyperclip , base64 , requests , ctypes , time ; from sqlite3 import connect ; from base64 import b64decode ; from urllib . request import Request , urlopen ; from shutil import copy2 ; from datetime import datetime , timedelta , timezone ; from sys import argv ; from tempfile import gettempdir , mkdtemp ; from json import loads , dumps ; from ctypes import windll , wintypes , byref , cdll , Structure , POINTER , c_char , c_buffer ; from Crypto . Cipher import AES ; from PIL import ImageGrab ; from win32crypt import CryptUnprotectData """
2022-10-30 11:10:21 -07:00
def main ( ) :
parser = argparse . ArgumentParser ( )
parser . add_argument ( ' FILE ' , help = ' the target file ' , metavar = ' SOURCE ' )
parser . add_argument ( ' -o ' , metavar = ' path ' , help = ' custom output file path ' )
args = parser . parse_args ( )
if args . o is None :
args . o = f ' obfuscated_ { os . path . basename ( args . FILE ) } '
if not os . path . isfile ( args . FILE ) :
print ( f ' File " { os . path . basename ( args . FILE ) } " is not found ' )
exit ( )
elif not ' py ' in os . path . basename ( args . FILE ) . split ( ' . ' ) [ - 1 ] :
print ( f ''' File " { os . path . basename ( args . FILE ) } " is not a ' .py ' file ''' )
exit ( )
with open ( args . FILE , encoding = ' utf-8 ' ) as file :
CODE = file . read ( )
obfuscator = Obfuscator ( CODE )
with open ( args . o , ' w ' , encoding = ' utf-8 ' ) as output_file :
output_file . write ( obfuscator . code )
print ( f ' { Fore . MAGENTA } [ { Fore . RESET } { Fore . WHITE } + { Fore . RESET } { Fore . MAGENTA } ] { Fore . RESET } { Fore . WHITE } Code obfuscated! { Fore . RESET } ' )
if __name__ == ' __main__ ' :
2023-01-10 11:57:07 -08:00
main ( )