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()