Forum

c# da geliştirdiğim...
 
Bildirimler
Hepsini Temizle

c# da geliştirdiğim uygulamayı lisanslama

22 Yazılar
6 Üyeler
0 Reactions
9,084 Görüntüleme
(@MehmetCiLiNGiR)
Gönderiler: 15
Active Member
Konu başlatıcı
 

merhaba,

 

c# da geliştirmiş olduğum uygulamayı lisanslamak istiyorum.

İşlemci, HDD veya MAC nasıl yaparım.

 

 
Gönderildi : 14/10/2015 01:45

(@ilhancakmak)
Gönderiler: 71
Trusted Member
 

MAC adresi sağlıklı olmaz.

 

harddisk ve cpu seri no / tip bilgilerini birleştirip md5 ile şifreleyin ve licence.lic gibi bir dosyası oluşturun. programınız açılırken disk & cpu seri nolarını md5'le şifreleyip licence.lic dosyasındaki text ile kıyaslasın. veriler eşleşmediği zaman program lisans ekranını çağırsın.

bu aşamada ekranda bir key oluşsun, o size verildiğinde sisteminizin kabul edeceği karşı keyi telefonla veya internet üzerinden verin. sistem sizin ürettiğiniz algoritmaya uygun keyi anladığında licence.lic dosyasını yeni disk & cpu seri nolarına göre yeniden oluştursun.

 
Gönderildi : 14/10/2015 03:05

(@MehmetCiLiNGiR)
Gönderiler: 15
Active Member
Konu başlatıcı
 

İlginiz için teşekkür ederim bu konuda bir örnekle yardımcı olabilirsiniz.

 
Gönderildi : 14/10/2015 11:19

(@ilhancakmak)
Gönderiler: 71
Trusted Member
 

tabi, öğlen gibi örnek class gönderebilirim.

 
Gönderildi : 14/10/2015 13:45

(@ilhancakmak)
Gönderiler: 71
Trusted Member
 

İlginiz için teşekkür ederim bu konuda bir örnekle yardımcı olabilirsiniz.

http://we.tl/PLMJHQfEr0

 

Ekteki uygulamada lisans dosyası yapmayı ve lisans dosyası kontrol etmeyi, ayrıca cd key girerek doğrulama ve lisans yenilemeyi simüle ettim.

takıldığınız yer olursa sorarsınız.

 

form load'da lisans sorgulatırsınız, eğer lisans dosyası ve veriler uyuşmuyorsa cd key ekranını getirirsiniz.

bu hızlı olması açısından basit bir örnek, istediğiniz gibi geliştirebilirsiniz.

 
Gönderildi : 14/10/2015 17:01

(@MehmetCiLiNGiR)
Gönderiler: 15
Active Member
Konu başlatıcı
 

Teşekkür Ederim.

İNdirdim şuandan itibaren ilgileniyorum, inşallah çözebilirim.

 
Gönderildi : 15/10/2015 00:39

(@ilhancakmak)
Gönderiler: 71
Trusted Member
 

Teşekkür Ederim.

İNdirdim şuandan itibaren ilgileniyorum, inşallah çözebilirim.

Aklınıza takılan birşey olursa buradayım. 

 
Gönderildi : 15/10/2015 01:25

(@MehmetCiLiNGiR)
Gönderiler: 15
Active Member
Konu başlatıcı
 

tekrar merhaba,

Sistemin Müşteriye Verdiği Rastgele Rakamlar kısmını her makina için sabit değilde işlemci hdd ye göre oluşturabilirmiyiz.

yani her makinada veya donanım değiştiğinde değişsin.

 

 
Gönderildi : 15/10/2015 01:38

(@ilhancakmak)
Gönderiler: 71
Trusted Member
 

o şekilde yaparsanız bu sefer karşı tarafa ne vereceğinizi bilemezsiniz.

c#'ta random sayı üretmeyi biliyorsunuzdur.

lisans ekranı her açıldığında 5 haneli 4 rakam oluşturup kutulara dağıttığını düşünün.

kullanıcı her kapatıp açtığında değişsin rakam. siz de oluşturduğunuz mantığa göre cevabını verebilin.

hatta bir dil geliştirin, 1,2,3,4,5,6,7,8,9,0, A,E,M,C,X,Y,O,D,L,Z gibi 10 rakam 10 harf kullanın. lisans ekranı her açıldığında bunlardan karma bir key çıkarsın. 

ayrıca olayı aşağıdaki şekilde daha zorlaştırın;

örnek, 1. grup kutucuklarda müşteri ekranındaki 1 rakamının sizdeki karşılığı 3 olsun, 2 rakamının karşılığı Z olsun.

2. grup kutucuklarda 1 rakamının karşılığı M, 2 rakamının karşılığı O

3. grup kutucuklarda 1 rakamının karşılığı 6, 2 rakamının karşılığı A

4. grup kutucuklarda 1 rakamının karşılığı C 2 rakamının karşılığı E, A harfinin karşılığı X L harfinin karşılığı 3 olsun gibi bunu istediğiniz kadar uzatıp zorlaştırabilirsiniz...

_________

burada amaç programı sattığınızda ben size telefonda bendeki rakamları vereceğim siz de karşılığını vereceksiniz ve licence.lic dosyası oluşacak.

daha sonra donanım değişikliği olduğunda sistem bunu anlayacak ve tekrar sizden key istemek zorunda kalacağım. lisans ekranı her açıldığında da karşıma çıkan key değişecek.

yada kendinize bir lisans sunucusu yaparsınız, programınız lisans talebini internet üzerinden yapar, panelinizden onay vermeniz halinde licence.lic dosyasını oluşturur.

 
Gönderildi : 15/10/2015 03:19

(@ilhancakmak)
Gönderiler: 71
Trusted Member
 

her bilgisayarda aynı key mantığımı kullanmayayım, her bilgisayarda farklı birşey olsun diyorsanız, dediğim gibi kendinize bir lisans sunucusu yapın.

program açıldığında online lisans talebi yapsın, müşteri ve yazılım bilgileri sizin tarafınızda bir db'de tutulsun, onay tuşuna basın ve karşı tarafa lisans dosyası yada dosya oluşturma komutu gitsin.

ama keyin kırılacağı düşüncesi gözünüzü korkutmasın. yaptığımız özel programlar word, excel, photoshop gibi yaygın olmayacağından çok fazla hack riski taşımıyor.

 
Gönderildi : 15/10/2015 03:24

(@MehmetCiLiNGiR)
Gönderiler: 15
Active Member
Konu başlatıcı
 

Hocam Merhaba,

Çok Teşekkür ederim yardımlarınız için,

son bir sorum bana oluşturacak olduğum key üreticiye yapıp gönderme şansınız var mı

 

ben textboxlara 5 haneli rastgele sayı ürettim.

ama lisans verme ekranını halledemedim.

yani karşıdan verilen keyi girince verecek olduğum Lisans keyini  oluşturamadım. tek haneli sayıyı cevirebidim ama 5 haneliyi yapamadım

 

 
Gönderildi : 16/10/2015 11:43

(@ilhancakmak)
Gönderiler: 71
Trusted Member
 

Hocam Merhaba,

Çok Teşekkür ederim yardımlarınız için,

son bir sorum bana oluşturacak olduğum key üreticiye yapıp gönderme şansınız var mı

 

ben textboxlara 5 haneli rastgele sayı ürettim.

ama lisans verme ekranını halledemedim.

yani karşıdan verilen keyi girince verecek olduğum Lisans keyini  oluşturamadım. tek haneli sayıyı cevirebidim ama 5 haneliyi yapamadım

 

 

private string BenimSallamaAlgoritmam(string p)
{
switch (p)
{
case "1": return "5";
case "2": return "4";
case "3": return "7";
case "4": return "8";
case "5": return "9";
case "6": return "2";
case "7": return "6";
case "8": return "0";
case "9": return "1";
case "0": return "3";
}
return null;
}

burada müşterinin sizden aldığı keyi kendine göre kıyaslıyor. ve doğruysa lisans işlemine onay veriyor.

siz kendi ekranınızda bunun tersini çalıştıracaksınız. yani müşteriden aldığınız 52875 - 87584 - 12485 - 63589 kodunu gireceksiniz. sistem şunu geri döndürecek;

 

private string MusteriyeVerilecekSifre(string p)
{
switch (p)
{

case "1": return "9";
case "2": return "6";
case "3": return "0";
case "4": return "2";
case "5": return "1";
case "6": return "7";
case "7": return "3";
case "8": return "4";
case "9": return "5";
case "0": return "8";

}
return null;
}

 

52875 - 87584 - 12485 - 63589 karşılığında

16431 - 43242 - 96241 - 70145 keyi vereceksiniz. müşteri de bu keyi girdiğinde sistem onu eşleyerek kabul edecek

 
Gönderildi : 16/10/2015 14:09

(@MehmetCiLiNGiR)
Gönderiler: 15
Active Member
Konu başlatıcı
 

hocam burası tamam zaten. sorun buttona yazacağım kod yukarıyoı ben müşteriden telefonla alıp manuel giriyorum.

lisans oluştur deyince bu olgaritmaya göre alttaki text boxlara uygun değerleri yazacak burayı halledemedim.

 
Gönderildi : 16/10/2015 14:53

(@ilhancakmak)
Gönderiler: 71
Trusted Member
 

kodu yukarıda yazdım zaten. doğrulamanın tam tersi.

 

 
Gönderildi : 16/10/2015 15:10

(@MehmetCiLiNGiR)
Gönderiler: 15
Active Member
Konu başlatıcı
 

hocam özelden numaranızı alma şansım var mı

 
Gönderildi : 16/10/2015 15:14

(@ilhancakmak)
Gönderiler: 71
Trusted Member
 

public void MusteridenGeleniTextlerebol(string key)
{
string musteridenGelenKeyinKarsiligi = KeyOlustur(key);
txtGrup1.Text = musteridenGelenKeyinKarsiligi.Substring(0, 5);
txtGrup2.Text = musteridenGelenKeyinKarsiligi.Substring(5, 5);
txtGrup3.Text = musteridenGelenKeyinKarsiligi.Substring(10, 5);
txtGrup4.Text = musteridenGelenKeyinKarsiligi.Substring(15, 5);
}

private string KeyOlustur(string key)
{
string[] arrKey = key.Select(c => c.ToString()).ToArray();
string[] olmasiGereken = new string[arrKey.Length];
for (int i = 0; i < arrKey.Length; i++)
{
olmasiGereken[i] = BenimSallamaAlgoritmam(arrKey[i]);
}

return string.Join("", olmasiGereken);
}

private string BenimSallamaAlgoritmam(string p)
{
switch (p)
{
case "1": return "9";
case "2": return "6";
case "3": return "0";
case "4": return "2";
case "5": return "1";
case "6": return "7";
case "7": return "3";
case "8": return "4";
case "9": return "5";
case "0": return "8";
}
return null;
}

 

bunu müşteriye parola vermek için yaptığınız forma koyun

butona da MusteridenGeleniTextlerebol(txt1.text+txt2.text+txt3.text+txt4.text); diye giriş yapın

 
Gönderildi : 16/10/2015 15:15

(@MehmetCiLiNGiR)
Gönderiler: 15
Active Member
Konu başlatıcı
 

tamam hocam sağol

deniyorum hemen

 
Gönderildi : 16/10/2015 15:22

(@MehmetCiLiNGiR)
Gönderiler: 15
Active Member
Konu başlatıcı
 

tamam hocam çok sağol

 

oldu şimdi artık ben biraz karmaşık hale getireyim.

 

çok teşekkür ederim.

 
Gönderildi : 16/10/2015 15:26

(@birolaydugan)
Gönderiler: 867
Prominent Member
 

GUID yapısına bi bakın ,4 lü bloklar halinde kendinize göre özelleştirerek kullanabilirsiniz .

 
Gönderildi : 23/10/2015 17:15

Sayfa 1 / 2
Paylaş: