using UnityEngine; using UnityEditor; using System.IO; public class PhishingEmailAssetGenerator { [MenuItem("Tools/Generate Phishing EmailData Assets")] public static void GeneratePhishingEmails() { string folderPath = "Assets/ScriptableObjects/PhishingEmails"; if (!AssetDatabase.IsValidFolder("Assets/ScriptableObjects")) { AssetDatabase.CreateFolder("Assets", "ScriptableObjects"); } if (!AssetDatabase.IsValidFolder(folderPath)) { AssetDatabase.CreateFolder("Assets/ScriptableObjects", "PhishingEmails"); } CreateEmail("Accure Bank", "support@accure-bank-ank.com", "ob1ink a update now – Avoid Suspension", InjectLink( "Dear Customer,\n\nOur system has detected unusual activity in your account. You must ob1ink a update immediately to prevent restriction. If no action is taken within 2 hours, your account will be permanently locked.\n\nVisit the secure link below:\n{link}\n\nThis is an automated message. Please do not reply.\n\n– Accure Bank Online Security", "http://accure-bank-ank.com/verify" ), "http://accure-bank-ank.com/verify", false, true, "Today", folderPath); CreateEmail("Microsoft Security", "alert@m1crosoft-security.com", "Suspicious Login – act1vate your profile urgently", InjectLink( "Dear User,\n\nWe've detected a login attempt from an unknown location. To protect your account, you need to act1vate your profile update immediately. Ignoring this request may result in profile lockout.\n\nClick the link to verify:\n{link}\n\nThanks,\nMicrosoft Account Protection Team", "http://m1crosoft-security.com/actnow" ), "http://m1crosoft-security.com/actnow", false, true, "1 hour ago", folderPath); CreateEmail("CloudStorage", "alerts@stor-cloud-updates.com", "Verify stor-age account info to avoid suspens1on", InjectLink( "Hello,\n\nWe were unable to sync your latest files due to a mismatch in account info. To avoid suspens1on of your cloud services, please verify your account information now.\n\nConfirm here:\n{link}\n\nThis issue must be resolved within 3 hours.\n\n– CloudStorage Notification Center", "http://stor-cloud-updates.com/verify" ), "http://stor-cloud-updates.com/verify", false, true, "Today", folderPath); } private static void CreateEmail(string senderName, string senderEmail, string subject, string body, string link, bool attachment, bool phishing, string date, string folderPath) { EmailData asset = ScriptableObject.CreateInstance(); asset.senderName = senderName; asset.senderEmail = senderEmail; asset.subject = subject; asset.fullBodyText = body; asset.linkPreview = link; asset.hasAttachment = attachment; asset.isPhishing = phishing; asset.timeOrDate = date; string safeFileName = subject.Replace(" ", "_") .Replace("–", "-") .Replace(":", "") .Replace("/", "-") .Replace("\\", "-"); string path = $"{folderPath}/{safeFileName}.asset"; AssetDatabase.CreateAsset(asset, path); AssetDatabase.SaveAssets(); Debug.Log($"🛑 Created Phishing EmailData asset at: {path}"); } private static string InjectLink(string template, string link) { string styled = $"{link}"; return template.Replace("{link}", styled); } }