by Darkness Yetkili Premium • 2025-12-29 15:02 Kod düzenlendi: 2025-12-29 18:54
🎯 Neden Bu Araç Önemli?
USB bellekler:
Malware bulaştırmanın
Veri sızdırmanın
İç tehditlerin
en yaygın yollarından biridir.
Bu araç, sisteme takılan her USB depolama cihazını tespit eder, kayıt altına alır ve kullanıcıyı uyarır.
📌 Ne Yapar?
Sisteme yeni USB aygıt takıldığını algılar
Aygıt bilgilerini (isim, sürücü harfi, zaman) kaydeder
Log dosyası oluşturur
Yetkisiz kullanım farkındalığı sağlar
Kurumlar, okullar, kütüphaneler, internet kafeler ve bireysel kullanıcılar için çok değerlidir.
using System;
using System.IO;
using System.Management;
using System.Threading;
class UsbMonitor
{
static string logFile = "usb_log.txt";
static void Main()
{
Console.WriteLine("USB cihaz izleme servisi başlatıldı...\n");
Console.WriteLine("Takılan USB cihazlar kayıt altına alınacaktır.\n");
if (!File.Exists(logFile))
{
File.Create(logFile).Close();
}
ManagementEventWatcher insertWatcher = new ManagementEventWatcher();
insertWatcher.EventArrived += UsbInserted;
insertWatcher.Query = new WqlEventQuery(
"SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2"
);
insertWatcher.Start();
ManagementEventWatcher removeWatcher = new ManagementEventWatcher();
removeWatcher.EventArrived += UsbRemoved;
removeWatcher.Query = new WqlEventQuery(
"SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 3"
);
removeWatcher.Start();
while (true)
{
Thread.Sleep(1000);
}
}
static void UsbInserted(object sender, EventArrivedEventArgs e)
{
string driveName = e.NewEvent.Properties["DriveName"]?.Value?.ToString();
string message = $"[USB TAKILDI] Sürücü: {driveName} | Zaman: {DateTime.Now}";
Console.WriteLine(message);
Log(message);
GetDriveDetails(driveName);
}
static void UsbRemoved(object sender, EventArrivedEventArgs e)
{
string driveName = e.NewEvent.Properties["DriveName"]?.Value?.ToString();
string message = $"[USB ÇIKARILDI] Sürücü: {driveName} | Zaman: {DateTime.Now}";
Console.WriteLine(message);
Log(message);
}
static void GetDriveDetails(string driveName)
{
if (string.IsNullOrEmpty(driveName))
return;
try
{
DriveInfo drive = new DriveInfo(driveName);
if (drive.IsReady)
{
string details =
$" Etiket: {drive.VolumeLabel}\n" +
$" Dosya Sistemi: {drive.DriveFormat}\n" +
$" Toplam Alan: {drive.TotalSize / (1024 * 1024)} MB\n" +
$" Boş Alan: {drive.AvailableFreeSpace / (1024 * 1024)} MB\n";
Console.WriteLine(details);
Log(details);
}
}
catch
{
// Bazı USB'ler detay vermeyebilir
}
}
static void Log(string text)
{
File.AppendAllText(logFile, text + Environment.NewLine);
}
}