Fake Screenshot Detector in Python | Cyber Security GUI Project
Demo :
Click Video πππ
⭐ Features :
-
Detects edited screenshots
-
Reads hidden image metadata
-
Hacker-style GUI
-
Beginner-friendly Python project
-
Real-life scam awareness
Code :
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk, ExifTags
# ---------------------------
# Main Window
# ---------------------------
root = tk.Tk()
root.title("Fake Screenshot Detector")
root.geometry("520x420")
root.configure(bg="#0b0b0b")
root.resizable(False, False)
# ---------------------------
# Global variables
# ---------------------------
img_label = None
# ---------------------------
# Functions
# ---------------------------
def analyze_image(path):
try:
img = Image.open(path)
exif = img.getexif()
metadata = {}
for tag_id, value in exif.items():
tag = ExifTags.TAGS.get(tag_id, tag_id)
metadata[tag] = value
if "Software" in metadata or "Photoshop" in str(metadata.values()):
return "⚠️ FAKE / EDITED SCREENSHOT DETECTED", "red"
else:
return "✅ IMAGE LOOKS ORIGINAL", "green"
except Exception as e:
return "❌ Unable to Analyze Image", "orange"
def upload_image():
global img_label
file_path = filedialog.askopenfilename(
filetypes=[("Image Files", "*.png *.jpg *.jpeg")]
)
if not file_path:
return
img = Image.open(file_path)
img.thumbnail((220, 220))
img = ImageTk.PhotoImage(img)
if img_label:
img_label.config(image=img)
img_label.image = img
else:
img_label = tk.Label(root, image=img, bg="#0b0b0b")
img_label.image = img
img_label.pack(pady=10)
result, color = analyze_image(file_path)
result_label.config(text=result, fg=color)
# ---------------------------
# UI Elements
# ---------------------------
title = tk.Label(
root,
text="FAKE SCREENSHOT DETECTOR",
font=("Consolas", 18, "bold"),
fg="#00ffcc",
bg="#0b0b0b"
)
title.pack(pady=15)
subtitle = tk.Label(
root,
text="Cyber Security Awareness Tool",
font=("Consolas", 10),
fg="#aaaaaa",
bg="#0b0b0b"
)
subtitle.pack()
upload_btn = tk.Button(
root,
text="UPLOAD SCREENSHOT",
font=("Consolas", 12, "bold"),
bg="#111111",
fg="#00ff00",
activebackground="#00ff00",
activeforeground="#000000",
relief="solid",
bd=1,
command=upload_image
)
upload_btn.pack(pady=20)
result_label = tk.Label(
root,
text="Waiting for image...",
font=("Consolas", 12, "bold"),
fg="white",
bg="#0b0b0b"
)
result_label.pack(pady=10)
footer = tk.Label(
root,
text="Educational Purpose Only | FuzzuTech",
font=("Consolas", 9),
fg="#555555",
bg="#0b0b0b"
)
footer.pack(side="bottom", pady=10)
# ---------------------------
# Run App
# ---------------------------
root.mainloop()
Comments
Post a Comment