Hash Tür Bulucu Projesi

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,725

Merhaba bugün size yapmış olduğum Hash Tip Bulucu projemi tanıtacağım.

Proje İsmi
DSKB - Karma Bulucu

Proje Github Sayfası
Github için TIKLA

Proje Hakkında

Projenin amacı, elimizdeki hash verisinin türünü bulma.
Virustotal


Proje Yapımcısı
@dgknsygn

Proje Kullanımı
Github üzerinden projeyi indirin.
DSKB - Karma Bulucu.exe adlı programı açın.
Hash değerinizi programa yazın ve enter tuşuna basın.
Program içerinde kayıtlı hash türlerinden biriyse [+] değil ise [-] ile gösterektir.

Proje Resmi

dskb-karma-bulucu-gorsel.png
 

OmarTR2000

Katılımcı Üye
26 May 2022
354
120
Baku
Hocam şimdi bu toolmu yoksa direk programımı?

Tool gibi yaparsanız mobil içinde kullanıma açık olurdu hem :)
 

execnone

Katılımcı Üye
19 Tem 2022
352
172
elinize sağlık. güzel çalışma. ama python ile daha sağlıklı olurmuş bence. çapraz platform desteği açısından.
 

BeoWulf007

Kıdemli Üye
19 Haz 2013
2,760
506
24
Praise The Fool
O ifler döngüler ne öyle :D Hem çıktı için aynı karakterleri ve uzunluğu kullanan algoritmalar da olunca ne olacak. Tek bir cevap olmasındansa çoklu tahmin yapması daha tutarlı olur. Bir de regex kullansaydın hayat senin için çok daha basit olurdu :D
 

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,725
Hem çıktı için aynı karakterleri ve uzunluğu kullanan algoritmalar da olunca ne olacak.
Haklı bir nokta :D programın ama programın amacı program olmaktan çok orta seviye diyebileceğimiz arkadaşlara temeli anlatmak. O yüzden açık kaynak :D
Tek bir cevap olmasındansa çoklu tahmin yapması daha tutarlı olur.
5 tane tür olduğundan dolayı çoklu tahmin yapamaz herhalde :D hepsinin uzunluğu farklıya ondan. Tabi 5 tane değilde daha fazla tür olsaydı dediğin doğruydu.
hayat senin için çok daha basit olurdu :D
:D

Bu arada yapıcı eleştirilerin için sağ ol :)

Bu program tam olarak ne işe yarar?
Hakkında kısmında yazdım ama birde kullanım örneğini vereyim hemen.

Mesela sen bir ctf çözüyorsun ve hash kodu elde ettin. Türünün ne olduğunu bilmeden de kıramazsın.
Bu program sana türünün ne olduğunu söylüyor ve sende ona göre kırıyorsun.
 

BeoWulf007

Kıdemli Üye
19 Haz 2013
2,760
506
24
Praise The Fool
Sevindim :) umarım herkes hayırlı şekilde kullanır.
Tabi legal şekilde ;)

Hatadan kastın ne onu anlamadım?
Ben bir hata buldum mesela :(
Kod:
for (int i = 0; i < 32; i++)
{
    string K = AlinanDeger[i].ToString();

    if (K != "0" && K != "1" && K != "2" && K != "3" && K != "4" && K != "5" && K != "5" && K != "6" && K != "7" && K != "8" && K != "9" && K != "a" && K != "b" && K != "c" && K != "d" && K != "e" && K != "f")
    {
        MD5 = true;
        break;
    }
}

Bu kod hatalı mesela.
Şu 2 geçersiz 32 karakterli metin MD5 çıktısı olamaz ama geçiyor.

  1. c39436ee452e641!!e2eb992ab397911
  2. c!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
neden? çünkü sadece ilk karakteri kontrol ediyorsun. Onu da yanlış yapmışsın. Hash'in 0'dan 9'a ve birkaç karakter değilse md5 demişsin. Ancak aşağııdaki verdiğim ise gerçek bir md5 çıktısı onu ise kabul etmiyor çünkü a ile başlıyor.
  1. ac4ac553a2e7cfb51c3baa7cd42b4e85

:cry:
 

BeoWulf007

Kıdemli Üye
19 Haz 2013
2,760
506
24
Praise The Fool
C#:
internal class HashAnalyze
{
    Dictionary<string, string> _hashTypes = new Dictionary<string, string>()
    {
        { "SHA-256", "^[a-fA-F0-9]{64}$" },
        { "SHA-512", "^[a-fA-F0-9]{128}$" },
        { "SHA-3", "^[a-fA-F0-9]{64}$" },
        { "SHA-1", "^[a-fA-F0-9]{40}$" },
        { "MD5", "^[a-fA-F0-9]{32}$" },
        { "BLAKE2", "^[a-fA-F0-9]{64}$" },
        { "Whirlpool", "^[a-fA-F0-9]{128}$" },
        { "RIPEMD-160", "^[a-fA-F0-9]{40}$" },
        { "Tiger", "^[a-fA-F0-9]{64}$" },
        { "Keccak", "^[a-fA-F0-9]{64}$" },
        { "CRC32", "^[a-fA-F0-9]{8}$" },
        { "SHA-384", "^[a-fA-F0-9]{96}$" },
        { "SHA-224", "^[a-fA-F0-9]{56}$" },
        { "SHA-512/256", "^[a-fA-F0-9]{64}$" },
        { "SHA-512/224", "^[a-fA-F0-9]{56}$" },
        { "SHA-3-256", "^[a-fA-F0-9]{64}$" },
        { "SHA-3-512", "^[a-fA-F0-9]{128}$" },
        { "Skein-512", "^[a-fA-F0-9]{128}$" },
        { "Skein-256", "^[a-fA-F0-9]{64}$" },
        { "Grøstl-512", "^[a-fA-F0-9]{128}$" },
        { "Grøstl-256", "^[a-fA-F0-9]{64}$" },
        { "HAS-160", "^[a-fA-F0-9]{40}$" },
        { "HAS-256", "^[a-fA-F0-9]{64}$" },
        { "HAS-512", "^[a-fA-F0-9]{128}$" },
        { "ECOH-512", "^[a-fA-F0-9]{128}$" },
        { "ECOH-256", "^[a-fA-F0-9]{64}$" },
        { "MD4", "^[a-fA-F0-9]{32}$" },
        { "SM3", "^[a-fA-F0-9]{64}$" },
        { "BLAKE3", "^[a-fA-F0-9]{64}$" },
        { "SWIFFT-512", "^[a-fA-F0-9]{128}$" },
    };
    private int _maxLengthToAlignment;
    private string _hash = String.Empty;
    public HashAnalyze()
    {
        _maxLengthToAlignment = _hashTypes.Keys.Max(key => key.Length) + 2;
    }
    public void Check(string hash)
    {
        _hash = hash;
        foreach (string name in _hashTypes.Keys)
        {
            CheckHashMatch(name, _hashTypes[name]);
        }
    }
    private void CheckHashMatch(string hashName, string hashRegexPatern)
    {
        Match match = Regex.Match(_hash, hashRegexPatern);
        WriteConsole(hashName, match.Success);
    }
    private void WriteConsole(string hashName, bool isMatch)
    {
        string matchString = isMatch ? "+" : "-";
        Console.ForegroundColor = isMatch ? ConsoleColor.Green : ConsoleColor.Red;
        Console.WriteLine($"{hashName}{new string(' ',_maxLengthToAlignment - hashName.Length)}[{matchString}]");
        Console.ForegroundColor = ConsoleColor.White;
    }
}
Konu açsam ayıp olur dedim, ufak bir class da ben yazdım 😬 Buyrun 30 farklı tip destekli hali 🙄


hashFinder.gif
 

Grimner

Adanmış Üye
28 Mar 2020
6,308
4,725
C#:
internal class HashAnalyze
{
    Dictionary<string, string> _hashTypes = new Dictionary<string, string>()
    {
        { "SHA-256", "^[a-fA-F0-9]{64}$" },
        { "SHA-512", "^[a-fA-F0-9]{128}$" },
        { "SHA-3", "^[a-fA-F0-9]{64}$" },
        { "SHA-1", "^[a-fA-F0-9]{40}$" },
        { "MD5", "^[a-fA-F0-9]{32}$" },
        { "BLAKE2", "^[a-fA-F0-9]{64}$" },
        { "Whirlpool", "^[a-fA-F0-9]{128}$" },
        { "RIPEMD-160", "^[a-fA-F0-9]{40}$" },
        { "Tiger", "^[a-fA-F0-9]{64}$" },
        { "Keccak", "^[a-fA-F0-9]{64}$" },
        { "CRC32", "^[a-fA-F0-9]{8}$" },
        { "SHA-384", "^[a-fA-F0-9]{96}$" },
        { "SHA-224", "^[a-fA-F0-9]{56}$" },
        { "SHA-512/256", "^[a-fA-F0-9]{64}$" },
        { "SHA-512/224", "^[a-fA-F0-9]{56}$" },
        { "SHA-3-256", "^[a-fA-F0-9]{64}$" },
        { "SHA-3-512", "^[a-fA-F0-9]{128}$" },
        { "Skein-512", "^[a-fA-F0-9]{128}$" },
        { "Skein-256", "^[a-fA-F0-9]{64}$" },
        { "Grøstl-512", "^[a-fA-F0-9]{128}$" },
        { "Grøstl-256", "^[a-fA-F0-9]{64}$" },
        { "HAS-160", "^[a-fA-F0-9]{40}$" },
        { "HAS-256", "^[a-fA-F0-9]{64}$" },
        { "HAS-512", "^[a-fA-F0-9]{128}$" },
        { "ECOH-512", "^[a-fA-F0-9]{128}$" },
        { "ECOH-256", "^[a-fA-F0-9]{64}$" },
        { "MD4", "^[a-fA-F0-9]{32}$" },
        { "SM3", "^[a-fA-F0-9]{64}$" },
        { "BLAKE3", "^[a-fA-F0-9]{64}$" },
        { "SWIFFT-512", "^[a-fA-F0-9]{128}$" },
    };
    private int _maxLengthToAlignment;
    private string _hash = String.Empty;
    public HashAnalyze()
    {
        _maxLengthToAlignment = _hashTypes.Keys.Max(key => key.Length) + 2;
    }
    public void Check(string hash)
    {
        _hash = hash;
        foreach (string name in _hashTypes.Keys)
        {
            CheckHashMatch(name, _hashTypes[name]);
        }
    }
    private void CheckHashMatch(string hashName, string hashRegexPatern)
    {
        Match match = Regex.Match(_hash, hashRegexPatern);
        WriteConsole(hashName, match.Success);
    }
    private void WriteConsole(string hashName, bool isMatch)
    {
        string matchString = isMatch ? "+" : "-";
        Console.ForegroundColor = isMatch ? ConsoleColor.Green : ConsoleColor.Red;
        Console.WriteLine($"{hashName}{new string(' ',_maxLengthToAlignment - hashName.Length)}[{matchString}]");
        Console.ForegroundColor = ConsoleColor.White;
    }
}
Konu açsam ayıp olur dedim, ufak bir class da ben yazdım 😬 Buyrun 30 farklı tip destekli hali 🙄


hashFinder.gif
Sen niye benim projemi çaldın ki :D

Güzel olmuş, python versiyonunu beklerim :)
Ben yapacaktım arakladı birileri :D
 
Ü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.