Devconnect.com.tr
Sayfa yükleniyor...

Yetkisiz USB / Harici Cihaz Tespit ve Kayıt Aracı – C#

C# C# Öne Çıkan
🤖 Yapay Zeka Analizi ⭐ Kalite: 50/100

by Darkness💬🏅📝+1 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);
    }
}
❤️ 1 💬 2
🤖 AI Asistan Kod Açıklaması
AI Profilini Ziyaret Et
Bu C# kodu, bir bilgisayara takılan veya çıkarılan USB depolama cihazlarını (flash bellek, harici disk vb.) sürekli olarak izleyen ve kayıt altına alan basit bir araçtır. Temel amacı, özellikle kurumsal ortamlarda ve kişisel güvenlik için, sisteme yetkisiz veya habersiz bir USB cihazın bağlanıp bağlanmadığını tespit etmek ve bu olayları belgelemektir. USB belleklerin kötü amaçlı yazılım bulaştırma, veri sızdırma veya iç tehdit oluşturma potansiyeli göz önüne alındığında, bu araç önemli bir güvenlik farkındalığı ve denetim mekanizması sağlar.

Kod, Windows Yönetim Araçları (WMI) servislerini kullanarak sisteme yeni bir USB aygıt takıldığında veya çıkarıldığında anında bildirim alır. Bir USB cihaz takıldığında, program bu olayı algılar, cihazın sürücü harfini, takılma zamanını ve varsa disk etiketi, dosya sistemi, toplam/boş alan gibi detaylarını konsola yazar ve aynı zamanda `usb_log.txt` adında bir metin dosyasına kaydeder. Cihaz çıkarıldığında da benzer şekilde bir kayıt oluşturur.

Bu sayede yöneticiler veya kullanıcılar, hangi USB cihazının ne zaman takılıp çıkarıldığını kolayca takip edebilir, potansiyel güvenlik ihlallerini veya şüpheli durumları hızlıca fark edebilirler. Basit ama etkili bu izleme aracı, özellikle bilgi güvenliğinin kritik olduğu ortamlarda caydırıcı bir etki yaratır ve denetim mekanizması sağlar.
29.12.2025 15:02 tarihinde oluşturuldu
Yorumlar
Şikayet ve yorum için giriş yapın.
MrEmir
MrEmir 💬📝🔥+1 Yetkili • 2025-12-29 16:52
Güzel Ama Keşke Kurulumuda Yazsaydınız...
Darkness
Darkness 💬🏅📝+1 Yetkili • 2025-12-29 18:54
1️⃣ Gerekli Ortam
✔️ İşletim Sistemi

Windows 10 / 11

WMI (Windows Management Instrumentation) aktif olmalı

Varsayılan olarak aktiftir

✔️ Gerekli Yazılım

.NET SDK (6.0 veya 7.0 önerilir)
İndirme:
👉 https://dotnet.microsoft.com/download

Kurulu mu kontrol etmek için:

dotnet --version

2️⃣ Proje Oluşturma
📁 Yeni Konsol Uygulaması

Komut İstemi (CMD) veya PowerShell açın:

dotnet new console -n UsbMonitor
cd UsbMonitor

3️⃣ Gerekli Paket (ÇOK ÖNEMLİ)

Bu kod System.Management kullanıyor.
.NET Core / .NET 6+ için NuGet paketi eklenmelidir:

dotnet add package System.Management


Bu adım atlanırsa kod derlenmez.

4️⃣ Kodun Eklenmesi
📝 Program.cs Dosyasını Açın

Mevcut içeriği tamamen silin ve sizin verdiğiniz kodu yapıştırın.

Dosya yolu:

UsbMonitor/Program.cs

5️⃣ Derleme ve Çalıştırma
▶️ Uygulamayı Çalıştırma
dotnet run


Ekranda şunu görmelisiniz:

USB cihaz izleme servisi başlatıldı...
Takılan USB cihazlar kayıt altına alınacaktır.

6️⃣ Test Etme

USB bellek takın

Konsolda anında bildirim görürsünüz:

[USB TAKILDI] Sürücü: E: | Zaman: 22.12.2025 14:35
Etiket: KINGSTON
Dosya Sistemi: NTFS
Toplam Alan: 16000 MB
Boş Alan: 8200 MB


USB çıkarıldığında:

[USB ÇIKARILDI] Sürücü: E:

7️⃣ Log Dosyası Nerede?

Uygulamanın çalıştığı klasörde otomatik oluşur:

usb_log.txt


İçeriği:

[USB TAKILDI] Sürücü: E: | Zaman: ...
Etiket: ...
Yorum yapmak için giriş yapın.
Paylaşan
Darkness