Son zamanlarda, yazılım yazarken bir fikir aklıma geldi, eğer iyi korunan bir program çalıştırırsam .exe ama dll korunmazsa uygulamam dll dosyasını kullanır, başkaları da programımı dll dosyası üzerinden hata ayıklayabilir mi?
Bugün, bunu test etmek için özel bir program yazalım, uygulamayı kullanarak dll'de bir metod çağıralım, aşağıdaki gibi:
Kod basittir:
DLL kodu:
Uygulama Kodu:
Sonra yeni bir proje oluşturuyorum, yeni bir sınıf kütüphanesi oluşturuyorum ve aynı tür ve cs dosyasını aşağıdaki gibi kopyalıyorum:
Oluşturulan dll'yi aşağıdaki şekle değiştirelim:
Program, dövdüğümüz dll yöntemini başarıyla çağırıyor, ürettiğimiz dll'nin dövülmesini nasıl önleyebiliriz?
Basit bir fikir düşündüm, uygulamaya bir kaynak dosyası eklemek, yüklenecek dll dosyasını ve dosyanın md5 değerini, program çalıştırmanın giriş noktasını doldurmak ve önce yüklenmesi gereken dll'nin md5 değerini kontrol etmek
Eğer DLL dosyasının MD5 değeri, kaynak listesindeki dosyanın MD5 değeriyle tutarsızsa, bu DLL dosyasının sahte yapıldığı veya kötü niyetli olarak kurandığı anlamına gelir. Uygulanmadı, mantıken mümkün olabilir!
|