İşlemci & Mac Adresi & Anakart ve Harddisk Fiziksel seri noya göre Lisans Key üretme

1 2 3 4 5 6 7 8 9 10
06/07/2020, 12:11

feraz

(06/07/2020, 11:55)accessman yazdı: Sizler aktivasyon key nasıl hallediyorsunuz
Daha activasyon key olayına girmedim.
18/07/2020, 04:17

mehmetdemiral

Valla o kadar zaman geçmiş ki aradan, yazdıklarıma bile yabancılaşmışım artık. Ama tüm yazılanlar bir yere gelip takılıyor. "Access'te ne kadar saklayabiliriz ki bir şeyi?" Şahsen ben, Access ile yapılmış herhangi bir çalışmayı en fazla 5 dakika içinde çözerim sanırım. Bu da bu siteye gönderilen örneklere çözerken kazanılan bir alışkanlık sanırım Şimdi soruya gelelim: Ben programlarımı nasıl koruyorum? Bir kere artık yukardaki anlattığım hiç bir yolu kullanmıyorum. Çünkü geçen zaman ve değişen hardware yapıları nedeniyle olaylar sürekli farklılıklar göstermeye başladı. Bu nedenle daha mantıklı bir yol aramaya başladım. Tabii bu yaptıklarım Access bilenler için değil, bilmeyenlerin yiyeceği şeyler. Access bilen birisi 10 saniyede kodları bulup olayı çözer. 

Her şeyden önce, yeni kullandığım yöntem bir aldatma temelinden yola çıkıyor. Kurulumu da sadece ben yapıyorum. Gelelim araçlarımıza
1- Access ile yazılmış programımız -olmazsa olmaz-
2- Veri tabanı dosyalarımız -Genelde ben veritabanı ile programı ayrı tutarım-
3- Dikkat çekmeyecek bir klasöre yerleştirilecek bir dummy -sahte- dosya. Genelde ocx, dll falan olabilir. Sadece olması önemli. İçeriği falan önemsiz. Herjangi bir dosyayı adını değiştirerek kullanabilirsiniz.
4- 3. maddede anlattım dosyayı iki ayrı isimle kullanacağız. Bunlar aynı dosya da olabilir, farklı da olabilir. Ne dosyası oldukları önemsiz. Sadece bir tanesi demo için, biri de lisanslama için gerekli. Örneğimizde demo için -sallıyorum- progdm.dll; lisans içinde progls.dll adlarını verelim. 
5- Bir install programı gerekli. Kurulumu paketleyeceğiz. WinRar da kullanılabilir sanırım ama silent -sessiz- modda olursa iyi olur, yoksa dummy dosyamızı kaptırırız kurulum sırasında 6- 5. maddede bahsedilen kurulum programı olarak ben Smart Install Maker kullanırım genelde. 
7- Kurulum paketlemesi sırasında program klasörü, içine atılacak program dosyası, masaüstü kısayolu, atılacak sahte dosya falan program aracılığı ile halledilir. YTabi kurulum demo için olduğundan, sahte dosya demoda kullanılan sahte dosyadır. 
8- Veritabanı kurulumu ayrıca yapılırsa daha profesyonel olur. Güncellemelerde falan datalara ellenmez böylece. 
9- Olayın temeli, program açılışındaki kodlardır. if kullanarak açılışta belirlenen klasör -mesela system- içinde önce progls.dll dosyasını aratıyoruz. O yoksa zaten var olan -çünkü kurulum paketi onu atacak- progdm.dll dosyasını kontrol edelim. Böylece programın demo olarak çalışacağı anlaşılır. Register üzerinden demo olduğunda yapılacak işlemi ilk mesajlarda anlatmıştım. Setting anahtarına kurulum tarihi atılıyor ve böylece demo süresi saydırılıyor. Tabi kullanıcı  bunları bilmiyor. Demo kullanım sınırlamaları registerden halledilebilir. 
10- BU durumda 3 tane kurulum hazırlanıyor. 1. kurulum veritabanını oluşturuyor. 2. Kurulum program klasörünü açıyor, içine program için yazdığımız Access dosyasını yerleştiriyor. Bunun yanında masaüstü kısayolu ve demo sahta dosyamızı da çaktırmadan malum yerine kopyalıyor. 3. kurulum dosyası ise lisans için gerekli sahte dosyayı yine malum klasöre kopyalıyor. Bu lisans dosyasını şifreli yapıyoruz. Yani kurulum çalıştığında bizden uzuuun bir şifre istemeli. Bunu sadece biz biliyoruz ve müşteri tüm kurulumu yapsa bile bu kurulumu yapmak için bizim uzak destek vermemiz ya da kurulumu yapmamız gerekiyor. Çünkü bu dosyayı ona versek bile şifreyi bilmeden hiç bir şey yapamayacaktır. Uzaktan bağlanıp yaparken CTRL+C ile hafızaya aşıp uzak terminale yapıştırırsanız daha sonra belleğe başka bir şey kopyalayın. siz bağlantıyı kestiğinizde kurnaz müşteri bir text dosyasına CTRL+V yaparsa gizli şifreniz eline geçer. Artık kurulumları bu arkadaşa yaptırıp para olarak da gazoz kapağı tahsil edebiliriz.


Dosya kontrolü için oluşturduğum kodlar şöyle:

Kod:
Private Sub Form_Open(Cancel As Integer)


Dim DOSYA, DOSYA2, durum As String 
Dim dbs As Object
Set dbs = CurrentDb

Me.Etiket15.Caption = dbs.Properties!AppTitle
   
        DOSYA = "c:\windows" & "\progls.dll"
        DOSYA2 = "c:\windows" & "\progdm.dll"
           
           
        durum = Dir(DOSYA)
        If (durum = "progls.dll") Then
       
   
        Exit Sub
        Else
       
        durum = Dir(DOSYA2)
        If (durum = "progls.dll") Then
        If Me.demosay < 100 Then MsgBox "Demo olarak sadece 20 müşteri kaydedilebilir. Şu anda " & (20 - Me.demosay) & " kayıt hakkınız kalmıştır.", vbInformation, "DEMO!!!!"
        If Me.demosay > 100 Then
        MsgBox "Demo kullanım süreniz dolmuştur. Lütfen programı kullanmak istiyorsanız Program Lisansı için MehmetDemiral'ın telefonunu arayınız", vbCritical, "DEMO KULLANIM SÜRESİ BİTTİ."
        DoCmd.Quit
        End If
        Else
       
       
      MsgBox "PROGRAM LİSANSLI DEĞİL. MEHMET DEMİRAL'I ARAYARAK LİSANS İŞLEMLERİNİ GERÇEKLEŞTİRMELİSİNİZ. TEL: XXXX XXX XXXX", vbCritical, "LİSANS YOK"
      DoCmd.Quit
     
        End If
        End If
End Sub
 Bu arada bu kodlar olmazsa olmaz bir ana formun açılış yordamında olacaktır. Kodlarda geçen demosay isimli alan bir metin kutusudur ve bir  global değişken değerdir. Böylece programın hem 100 kez açılmasını sağlar hem de 20 müşteriden fazla kaydedilmesini kontrol eder.
18/07/2020, 07:38

accessman

Harika anlatım için teşekkürler. Accde ve sqlite veri tabanı ile olsada program kod sayfası ele geçirilebilir mi

Register de işlem yapmak antivirüse takılabiliyor bunu nasıl aşıyorsunuz
18/07/2020, 07:45

accessman

Ocx Dll dosyasını System32 adresine koyacağız değilmi bunun için yönetici yetkisi isteyebiliyor bunu nasıl aşıyorsunuz
18/07/2020, 08:18

accessman

22. satırda 
If (durum = "progls.dll") Then
hata var mı
18/07/2020, 10:32

mehmetdemiral

(18/07/2020, 07:45)accessman yazdı: Ocx Dll dosyasını System32 adresine koyacağız değilmi bunun için yönetici yetkisi isteyebiliyor bunu nasıl aşıyorsunuz
Mesela Windows klasörüne gönderin. Ayrıca kurulum programı ile yapıldığında bir sorun oluşmadı bu zamana kadar.

(18/07/2020, 08:18)accessman yazdı: 22. satırda 
If (durum = "progls.dll") Then
hata var mı
Valla hatasız çalışıyor şu anda. Değişkene atadığımız dosya ismi progls.dll ise hiç bir şey yapmadan programın çalışması sağlanıyor.
1 2 3 4 5 6 7 8 9 10