Kriptografi ile ilgili bir kitapla başlamanız önerim. Genel yapısını kripgtografinin anladıktan sonra C# tarafında ilgili nesneleri araştırmanız tavsiyem..
quote:
Orijinalden alıntı: qamyoncu
Eğer programının dağıtılmasını engellemek istiyorsan sana basit bir yol önerebilirim, ne kadar güvenli olduğu tartışılır ama zaten şifrelerin göz korkutmaktan başka ne görevleri vardır ki?
Bir kullanıcı bir bilgisayarda programı ilk defa çalıştırdığında ekrana kayıt ekranını getirirsin.
Kayıt ekranında bir şifre olur, bu şifre bilgisayarın HDD numarasından herhangi bir algoritma ile türetilmiş bir şifredir.
Kullanıcı bu şifreyi sana verir, sen de bu şifre ile yeni, geri dönüşümü olan bir algoritma ile şifre türetirsin ve kullanıcıya verirsin.
Kullanıcı bu şifreyi programa yazar. Programın yapacağı iş ise sadece şudur:
HDD numarasının herhangi bir algoritma ile şifrelenmiş hali ile, kullanıcının senden aldığı şifrenin çözülmüş hali aynı mı?
Bilgisayardaki HDD numarasını program ile biz mi alıcaz ? Biraz daha açıklarmısınız, güzel bi uygulamaya benziyor.
Evet HDD numarasını alma kodu internette mevcut. Direk bu numarayı kullanman çok net anlaşılır o yüzden basitçe şifrele bunu ve kullanıcıya öyle ver.
Bir internet siten olur, veya e-posta yolu ile kullanıcıyla haberleşirsin. Kullanıcı sana HDD numarasının şifrelenmiş halini verir. Sen de bu şifrelenmiş numaradan yeni bir şifre oluşturursun. Bu yeni şifre oluşturma algoritması geri dönüşümlü olmak zorunda çünkü bir sonraki aşamada şifreyi çözmemiz gerekecek.
Kullanıcı senden şifresini aldı. Bu şifreyi programa yazar. Şu an programda iki şifre var.
Birincisi HDD numarasının şifrelenmiş hali. İkincisi senden aldığı şifre.
Bu iki şifreyi birbirine bağlayan şey senin yazdığın geri dönüşümlü algoritma. Yani :
- geridonusumlualgoritmailesifrele(basitbirsifreilesifrele(HDD No)) = Kullanıcının senden aldığı şifre.
Şu an kullanıcının sahip olduğu bu ikinci şifrenin doğruluğunu kontrol etmen gerekiyor:
Eğer geridonusumlualgoritmailesifrecoz(Kullanicininsendenaldigisifre) = basitbirsifreilesifrele(HDD no) ise tamam doğru şifre.
Sadece biraz karmaşıklaştırmak için böyle düşünmüşüm zamanında, ben de bir 15dk baktım ne anlatmak istemişim diye :)
Aklında bulunsun böyle bir şifreyi kırmak assembly ile bir jump eklemek kadar basit. Sadece aklında bir fikir olması için yazdım. :)
@qamyoncu
Tam emin değilim ama GVZ Ses okuyucu, yani bilgisayara sesimizle kontrol edebiliyorduk örneğin bi mynet.com veya google.com istediğimiz playlisti veya bi programı vs. açabiliyorduk ki gayette güzel çalışıyordu..Bunu cracklemek için HDD no mu ne öyle birşeyler vardı nedense smdi aklıma geldi paylaşmak istedim
vermiş olduğunuz kodu denedi ama hiç bi değişiklik olmadı hocam...başka yolu var mı acaba...
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme