import os import base64 import hashlib from Crypto.Cipher import AES import json from datetime import datetime import requests raw_url = input("Input LINK URL: ") headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36', } class AESCrypt: AES_BLOCK_SIZE = 16 HASH_ALGORITHM = 'SHA-256' IV = b'\x00' * AES_BLOCK_SIZE @staticmethod def generate_key(password): hashed_key = hashlib.sha256(password.encode()).digest() return hashed_key @staticmethod def pad_message(message): padding_length = AESCrypt.AES_BLOCK_SIZE - (len(message) % AESCrypt.AES_BLOCK_SIZE) padded_message = message + (chr(padding_length) * padding_length).encode() return padded_message @staticmethod def unpad_message(padded_message): padding_length = padded_message[-1] return padded_message[:len(padded_message) - padding_length] @staticmethod def decrypt(password, encoded_ciphertext): key = AESCrypt.generate_key(password) cipher = AES.new(key, AES.MODE_CBC, AESCrypt.IV) ciphertext = base64.b64decode(encoded_ciphertext) decrypted_message = cipher.decrypt(ciphertext) unpadded_message = AESCrypt.unpad_message(decrypted_message) return unpadded_message.decode() def fetch_and_decode_raw_content(raw_link, headers): try: response = requests.get(raw_link, headers=headers) response.raise_for_status() # Raise an HTTPError for bad responses return response.text except requests.RequestException as e: print(f"Error fetching raw content: {e}") return None def add_info_to_data(data): info_data = { "[] [SnifferBy]": "EnzoZxx", "[] [Telegram]": "https://t.me/XDecrytorId", "[] [Tools]": "Python Decrypt x Keep Json 1.0.3 ©" } data["Info"] = info_data def main(): enzo_password = "ZnVja2JveQ==" password = base64.b64decode(enzo_password).decode('utf-8') try: # Fetch and decode raw content decrypted_text = fetch_and_decode_raw_content(raw_url, headers) # Check if decryption is successful before proceeding if decrypted_text: encrypted_data = json.loads(AESCrypt.decrypt(password, decrypted_text)) decrypted_data = [] for entry in ["Servers", "Networks", "SSLNetworks"]: for network in encrypted_data.get(entry, []): for key in ["SNIHost", "Payload"]: if key in network: network[key] = AESCrypt.decrypt(password, network[key]) if "ProxySettings" in network and "Squid" in network["ProxySettings"]: network["ProxySettings"]["Squid"] = AESCrypt.decrypt(password, network["ProxySettings"]["Squid"]) decrypted_data.append(encrypted_data) folder_name = "/storage/emulated/0/EnzoSniffer/" os.makedirs(folder_name, exist_ok=True) file_path = os.path.join(folder_name, "[ScbuildData]SnifferBY_ENzoZxx.txt") add_info_to_data(encrypted_data) output_data = {"Info": encrypted_data.pop("Info"), **encrypted_data} with open(file_path, "w") as output_file: json.dump(output_data, output_file, indent=4, ensure_ascii=False) timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") number_of_entries = sum(len(encrypted_data.get(entry, [])) for entry in ["Servers", "Networks", "SSLNetworks"]) success_message = ( f"* Decryption Successful {number_of_entries}\n" f"* Timestamp: {timestamp}\n" f"* SnifferBy: EnzoZxx\n" f"* ==========================================" ) print(success_message) except json.JSONDecodeError as e: print(f"Error decoding JSON: {e}") except requests.RequestException as e: print(f"Error making the request: {e}") except Exception as e: print(f"Error: {e}") if __name__ == "__main__": main()