Örnekler İle C# Geliştirme - Bölüm 11

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,733
a3b2jeo.png


Giriş

Merhaba, C# uygulama geliştirme serimizin on birinci yazısına hoş geldiniz.

Bu yazımızda verilen hash değerinin, türünü bulan bir program yapacağız.

Serinin önceki yazılarını okumak isteyenler için


Örnekler İle C# Geliştirme - Bölüm 1
Örnekler İle C# Geliştirme - Bölüm 2
Örnekler İle C# Geliştirme - Bölüm 3
Örnekler İle C# Geliştirme - Bölüm 4
Örnekler İle C# Geliştirme - Bölüm 5
Örnekler İle C# Geliştirme - Bölüm 6
Örnekler İle C# Geliştirme - Bölüm 7
Örnekler İle C# Geliştirme - Bölüm 8
Örnekler İle C# Geliştirme - Bölüm 9
Örnekler İle C# Geliştirme - Bölüm 10

İyi okumalar dilerim!

Yapılış


cs-10-1.png


İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Hash Tür Bulucu" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.

cs-10-2.png


Proje oluştuktan sonra formun ismini Özellikler > Text bölümünden 'Hash Tür Bulucu' değiştiriyorum.
Sonrasında Araç Kutusundan
aşağıdaki araçları ekliyorum.

1 Label
1 TextBox
1 Button
1 ListBox

Evet, tasarımımız bittiğine göre kodlarımıza geçebiliriz.

C#:
private void button1_Click(object sender, EventArgs e)
{
    listBox1.Items.Clear();
    // Üzerine yeni veriler yazılacağı için, listbox içini temizliyoruz.

    string Hash = textBox1.Text;
    // Burada Hash adında bir metin değişkeni oluşturuyoruz ve bunun içine textBox1 içinde yazan değeri aktarıyoruz.

    bool Sonuc = IzınVerilenKarakterKontrol(Hash);
    // Burada IzınVerilenKarakterKontrol içinden dönecek değeri Sonuc değişkenine aktarıyoruz.

    if (Sonuc) // Eğer regexten başarıyla geçti ise, sayı kontrolüne girecek.
    {
        if (Hash.Length == 32)
        {
            listBox1.Items.Add("[+] NTLM");
            listBox1.Items.Add("[+] MD2");
            listBox1.Items.Add("[+] MD4");
            listBox1.Items.Add("[+] MD5");
            listBox1.Items.Add("[+] RipeMD-128");
            listBox1.Items.Add("[+] SHA1");
            // Eğer 32 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else if (Hash.Length == 40)
        {
            listBox1.Items.Add("[+] RipeMD-160");
            listBox1.Items.Add("[+] SHA1");
            // Eğer 40 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else if (Hash.Length == 56)
        {
            listBox1.Items.Add("[+] SHA3-224");
            listBox1.Items.Add("[+] SHA-224");
            // Eğer 56 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else if (Hash.Length == 64)
        {
            listBox1.Items.Add("[+] MD6-128");
            listBox1.Items.Add("[+] RipeMD-256");
            listBox1.Items.Add("[+] SHA3-256");
            listBox1.Items.Add("[+] SHA-256");
            // Eğer 64 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else if (Hash.Length == 96)
        {
            listBox1.Items.Add("[+] SHA3-384");
            listBox1.Items.Add("[+] SHA-384");
            // Eğer 96 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else if (Hash.Length == 128)
        {
            listBox1.Items.Add("[+] MD6-256");
            listBox1.Items.Add("[+] MD6-512");
            listBox1.Items.Add("[+] SHA3-512");
            listBox1.Items.Add("[+] SHA-512");
            listBox1.Items.Add("[+] Whirlpool");
            // Eğer 128 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else
        {
            listBox1.Items.Add("Sonuç Bulunamadı.");
            // Eğer bu uzunlukların hiçbirini karşılamıyor ise bu kısım çalışacak.
        }
    }
    else // Regexten başarıyla geçemediyse, sonuç bulunamadı mesajı yazdırılacak.
    {
        listBox1.Items.Add("Sonuç Bulunamadı.");
    }
}

static bool IzınVerilenKarakterKontrol(string text)
{
    // Bu kontrol kısmında regex kullanacağız.
    // Regex'in çalışma mantığı bilmeyenler için aşağıdaki şekilde kullanılıyor.

    // "abcdef0123456789" dışındaki karakterlerin regex ifadesi: [^abcdef0123456789]
    // ^ işareti, karakter kümesinin dışında herhangi bir karakteri ifade eder.
    // * işareti, 0 veya daha fazla adet tekrar etmesini ifade eder.
    // $ işareti, girişin sonunu ifade eder.

    Regex regex = new Regex("[^abcdef0123456789]");

    return !regex.IsMatch(text);
    // Burada sonucumuzu butona geri gönderiyoruz.
}

Sonuç

Evet, işlemimiz genel olarak bu kadardı.
Şimdi de testimizi yapalım.

cs-10-3.png


cs-10-4.png


Gördüğünüz gibi programımız başarılı bir şekilde hash türünü tespit edebiliyor.

Kapanış

Evet, bugünkü projemiz bitmiş bulunmakta.
Gelecekteki derslerde görmek istediğiniz bir program olursa yazabilirsiniz.
Okuduğunuz için teşekkür ederim, iyi forumlar!
 

bayoyunsultanı

Katılımcı Üye
24 Kas 2023
273
98
Kaiserreich
a3b2jeo.png


Giriş

Merhaba, C# uygulama geliştirme serimizin on birinci yazısına hoş geldiniz.

Bu yazımızda verilen hash değerinin, türünü bulan bir program yapacağız.

Serinin önceki yazılarını okumak isteyenler için

Örnekler İle C# Geliştirme - Bölüm 1
Örnekler İle C# Geliştirme - Bölüm 2
Örnekler İle C# Geliştirme - Bölüm 3
Örnekler İle C# Geliştirme - Bölüm 4
Örnekler İle C# Geliştirme - Bölüm 5
Örnekler İle C# Geliştirme - Bölüm 6
Örnekler İle C# Geliştirme - Bölüm 7
Örnekler İle C# Geliştirme - Bölüm 8
Örnekler İle C# Geliştirme - Bölüm 9
Örnekler İle C# Geliştirme - Bölüm 10


İyi okumalar dilerim!

Yapılış


cs-10-1.png


İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Hash Tür Bulucu" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.

cs-10-2.png


Proje oluştuktan sonra formun ismini Özellikler > Text bölümünden 'Hash Tür Bulucu' değiştiriyorum.
Sonrasında Araç Kutusundan
aşağıdaki araçları ekliyorum.



Evet, tasarımımız bittiğine göre kodlarımıza geçebiliriz.


C#:
private void button1_Click(object sender, EventArgs e)
{
    listBox1.Items.Clear();
    // Üzerine yeni veriler yazılacağı için, listbox içini temizliyoruz.

    string Hash = textBox1.Text;
    // Burada Hash adında bir metin değişkeni oluşturuyoruz ve bunun içine textBox1 içinde yazan değeri aktarıyoruz.

    bool Sonuc = IzınVerilenKarakterKontrol(Hash);
    // Burada IzınVerilenKarakterKontrol içinden dönecek değeri Sonuc değişkenine aktarıyoruz.

    if (Sonuc) // Eğer regexten başarıyla geçti ise, sayı kontrolüne girecek.
    {
        if (Hash.Length == 32)
        {
            listBox1.Items.Add("[+] NTLM");
            listBox1.Items.Add("[+] MD2");
            listBox1.Items.Add("[+] MD4");
            listBox1.Items.Add("[+] MD5");
            listBox1.Items.Add("[+] RipeMD-128");
            listBox1.Items.Add("[+] SHA1");
            // Eğer 32 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else if (Hash.Length == 40)
        {
            listBox1.Items.Add("[+] RipeMD-160");
            listBox1.Items.Add("[+] SHA1");
            // Eğer 40 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else if (Hash.Length == 56)
        {
            listBox1.Items.Add("[+] SHA3-224");
            listBox1.Items.Add("[+] SHA-224");
            // Eğer 56 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else if (Hash.Length == 64)
        {
            listBox1.Items.Add("[+] MD6-128");
            listBox1.Items.Add("[+] RipeMD-256");
            listBox1.Items.Add("[+] SHA3-256");
            listBox1.Items.Add("[+] SHA-256");
            // Eğer 64 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else if (Hash.Length == 96)
        {
            listBox1.Items.Add("[+] SHA3-384");
            listBox1.Items.Add("[+] SHA-384");
            // Eğer 96 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else if (Hash.Length == 128)
        {
            listBox1.Items.Add("[+] MD6-256");
            listBox1.Items.Add("[+] MD6-512");
            listBox1.Items.Add("[+] SHA3-512");
            listBox1.Items.Add("[+] SHA-512");
            listBox1.Items.Add("[+] Whirlpool");
            // Eğer 128 karakter uzunluğunda ise buradaki türler listBox1 içine yazdırılacak.
        }
        else
        {
            listBox1.Items.Add("Sonuç Bulunamadı.");
            // Eğer bu uzunlukların hiçbirini karşılamıyor ise bu kısım çalışacak.
        }
    }
    else // Regexten başarıyla geçemediyse, sonuç bulunamadı mesajı yazdırılacak.
    {
        listBox1.Items.Add("Sonuç Bulunamadı.");
    }
}

static bool IzınVerilenKarakterKontrol(string text)
{
    // Bu kontrol kısmında regex kullanacağız.
    // Regex'in çalışma mantığı bilmeyenler için aşağıdaki şekilde kullanılıyor.

    // "abcdef0123456789" dışındaki karakterlerin regex ifadesi: [^abcdef0123456789]
    // ^ işareti, karakter kümesinin dışında herhangi bir karakteri ifade eder.
    // * işareti, 0 veya daha fazla adet tekrar etmesini ifade eder.
    // $ işareti, girişin sonunu ifade eder.

    Regex regex = new Regex("[^abcdef0123456789]");

    return !regex.IsMatch(text);
    // Burada sonucumuzu butona geri gönderiyoruz.
}

Sonuç

Evet, işlemimiz genel olarak bu kadardı.
Şimdi de testimizi yapalım.

cs-10-3.png


cs-10-4.png


Gördüğünüz gibi programımız başarılı bir şekilde hash türünü tespit edebiliyor.

Kapanış



Evet, bugünkü projemiz bitmiş bulunmakta.


Gelecekteki derslerde görmek istediğiniz bir program olursa yazabilirsiniz.

Okuduğunuz için teşekkür ederim, iyi forumlar!
Elinize Sağlık.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.