06/07/2020, 12:11
İşlemci & Mac Adresi & Anakart ve Harddisk Fiziksel seri noya göre Lisans Key üretme
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:
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.
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
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
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
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şıyorsunuzMesela 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ırdaValla 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.
hata var mıIf (durum = "progls.dll") Then