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 _____________ _________________=_____(_______("{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, 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""" 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__': main()