Diyelim ki üzerinde 4 ay çalışacağım büyük bir projeye başlıycam..
Bu projeyi satışa sunup, onlarca kişiye satıcam..
Sattığım bir kişinin de başkalarına satamaması veya bedava dağıtamaması için kodlarımı DLL ye çevireceğim.. Bu şekilde kodları korumuş olacağımı düşünüyorum..
Eğer kodların tümünü dll ye çevirirsem dll yi açıp kodlarımı bulabilme ihtimalleri var mı acaba ?
Yani dll tam güvenlik sağlar mı ?
Örneğin dll içinde kodumda şöyle diycem en üst satırda.. Şuanda sitenin çalıştığı adres aaa.com değilse Error.html e git. Bu iyi bir güvenlik yöntemi midir ? Bu yöntem çok kolay görünüyor dll + domain bazlı.. Acaba kırılabilirler mi bu yöntemi ?
DLL ve Güvenlik
14
●2.707
- 13-05-2008, 23:59:48DLL geri dönüşüm yapan programlar mevcut ama ne kadar sağlıklı yapıyorlar.
Birde DLL içerisinde bizim export ettiğimiz bloklar rahat görülebilir. Ama export edilmemiş fonksiyonlar çıkarken bozularak çıkar. Benim bildiğim yüzde 60 verimlilikle çevirilebiliyor ama kim o kadar DLL'i çevirip onun kod mantığını düşünmeye çalışır o da ayrı bir bakış açısı.
Hayırlısı ama DLL yeterli bence güvenlik için fazla kasmaya gerek yok. ***** isterse köküne kadar alır
- 14-05-2008, 00:34:55Hmmmm
Biraz araştırdıktan sonra DLL nin tam bir güvenlik sağlamadığını öğrendim.. Sorularıma bu yönde cevaplar geldi.. Cevahir senin cevabın biraz rahatlattı beni.. Ama export edilmemiş fonksiyonlardan kastettiğini falan pek anlayamadım.. Şimdi şöyle sorayım sana..
Ben tasarım dahil bütün kodları dll yapacağım. DLL yi açabilmeleri ne kadar fonksiyon kullandığıma mı bağlı acaba ? Hiç fonksiyon kullanmadım diyelim. O zaman %100 çözebilirler mi ?
Veya diğer bir deyişle Normal bir proje yaptım hem vb kodlarını hem de tasarım kodlarını dll yaptım diyelim.. Bu dll yi açarken %60 yerine %90 ını bile çözseler %10 luk kısma asla uğraşamazlar bence.. Sence %100 ü kesinlikle çözemezler mi ? Yani 4 aylık projede güvenlik açısından dll yapmam yeterli mi ? - 14-05-2008, 00:35:52Cevahir in dediği gibi %60 ı mı yoksa %100 ü mü açılabiliyor ?trickster adlı üyeden alıntı: mesajı görüntüle
- 14-05-2008, 00:54:12Kardeşim. Ben derste hocanın anlattıklarını sana aktarıyorum.tolgax adlı üyeden alıntı: mesajı görüntüle
Kullanacağın procedure ve fonksiyonları export etmen gerekir. Ezport etmezsen dışarıdan çağrılma olayı gerçekleşmez diye biliyorum.
Birde her şeyi dll yapmak diye bir durum yok.
İlla script güvenliği sağlamak istiyorsan ioncube gibi asp.net kodlarını şifreleyen yazılım var mı onu araştırabilirsin.
başkada sana önerim şu anda yok. Kolay gelsin. - 14-05-2008, 01:25:21Herşeyi dll yapmak gibi bir durum yok demişsin. Ama belirttiğim klasör içerisindeki bütün dosyaları dll ye çevirebiliyorum. Örneğin;
index.aspx - tasarım sayfam
index.aspx.vb - kod sayfam
ikisini de dll ye çeviriyor. Ama hatırlamadığım tek şey ikisini tek dll de mi topluyordu yoksa iki ayrı dll mi oluşturuyordu orasını hatırlamıyorum.
EDİT : index.aspx ve index.aspx.vb dosyalarını tek bir dll dosyasında birleştiriyormuş adını da App_Web_wokxpsqb.dll böyle yapmış. Ayrıca bu dll dosyasını reflector diye bir decompiler ile açtığımda değişken adlarını falan gördüm. Yüzlerce şey çıkıyor ama bundan da hiçbirşey anlaşılmıyor.. Yani çözmeye çalışan insan benim projemi adam akıllı çalıştırmaya çalışıncaya kadar kendisi yazar daha iyi
Bu dll decompiler olayı bana biraz fos gibi geldi. Yani decompile edip kodların aynısını kopyala past ile çalıştıramaz herhalde hiçkimse..
Peki bu durumda ikinci konuya geçelim.. Yukarıda da bahsettiğim gibi dll yaptım diyelim.. %100 de decompile edilemedi. Ben şimdi kodumun içinde diycem ki site adresi aaaa.com değilse error.html e git. Bu yöntem proje güvenliği için yeterli midir? Başka neler kullanabilirim ? - 14-05-2008, 08:32:51Öncelikle Dll Decompiler Hakkında Bilgi Vereyim;tolgax adlı üyeden alıntı: mesajı görüntüle
.Net ortamında Dll' leri veya projenizi korumanızın birden çok yöntemi vardır. Bilinen ve en kolay yöntem dotfuscator tarzı karıştırıcılardır. Dotfuscator seçiminizi iyi yapmanız gerekmektedir. Ucuz dotfuscator' lar string bilgilerini karıştırmaz, decompiler işleminde string bilgiler kabak gibi görünür. Kaliteli (pahalı) Dotfuscator' lar string bilgileri dahil Dll içeriğinin (msil) tamamını karıştırır. İyi karıştırılan bir dll, decompiler edilse dahi, decompiler edenin kod olarak göreceği, 5000 değişkenli bir denklemden başka bir şey değildir. İnan bunu çözmek projeyi baştan yazmaktan daha zordur.
Sorunuzun cevabı
Eğer projeniz, application ise; dotfuscator ile karıştırırken projenizin lisansının demo mu, aylık bir süre için kullanımmı, gibi özelliklerini ayarlıyabilirsiniz.
Eğer projeniz, web sitesi ise; bu sizin yeteneklerinize kalmış. Bu akademik bilgiye girdiği için bilenler anlatmaz ama ipuçlarını msdn de bulabilirsin.
Başlangıç seviyesinde ve ucuz olması nedeniyle ayrıca pahalı ağabeylerinin yaptıklarının bir çoğunu yapabilmesi nedeniyle önerebileceğim dotfuscator dotNet Protector' dur - 14-05-2008, 09:58:23%100 güvenlik istiyorsanız bunu .net ile sağlayamazsınız hiç bir zaman.
.net tamamiyle sunucu üzerindeki servisleri kullandığın dan gayet anlaşılır bir şekilde embed edilmekte.
Oturup VB 6.0 ile dll hazırlayın -ki bunu yapıyorsanız problem kalmaz- bir Allah'ın kulu gelsin açsın =)