AccessTr.neT

Tam Versiyon: acces lisans korumadaki bu kod ne diyor
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
merhabalar 
elimde lisanslama uygulaması mevcut. aşağıdaki kodun mantığı nedir bilgi verirmisiniz

birinci private ile başlayan kod sanırım uygulamayı kullanılacak bilgisayarın
ikinci private ile başlayan kodda müşteriye verilecek kod .
uygulamanın olduğu dizine  .txt kaydedip ne yapacaz. kod sorduğunda kod yerine ne yazacağız 
burada lisansta istenilen nedir ...
birde uygulamanın bulunduğu ana dizinde 
539787628.txt dosya var içerisinde 
e14ee86548afb20247ac182296f029e3

kodu var Vba kodlarındada bu var 





Kod:
Private Sub Form_Load()
Dim wrkDefault As Workspace
Dim nesne, disk, k
Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
Me.disk = k

End Sub

Private Sub Komut0_Click()
Dim wrkDefault As Workspace
Dim nesne, disk, k
r = Mid(MD5String(Me.disk), 1, 8)
If asif = r Then
Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
Me.disk = disk.SerialNumber
klasor = CurrentProject.Path & "/" & disk.SerialNumber & ".txt"
Open CurrentProject.Path & "/" & disk.SerialNumber & ".txt" For Output As #1
Print #1, MD5String(disk.SerialNumber)
Close #1
DoCmd.OpenForm "başlangıç"
Else
10 MsgBox "HATALI ŞİFRE YENİNİDEN DENE"
End If

End Sub
Tüm örneği incelemek lazım ancak buradaki kodlara bakacak olursak bu lisanslama sisteminde mantık/uygulama hatası var.
password adında bir form var formun Vba sında bunlar var onayla vazgeç var .
uygulamayı açtığımda program yapımcısına verilecek kod gelmiyor ekranıma Access 2003 kullanıyorum . programı windows 7 olan bilgisayardan aldım d sürücüsünün numarasının verilmemesi normal mi ?
kodun içerisinde ne demek istemiş
r = Mid(MD5String(Me.disk), 1, 8)

formun tüm kodları alttadır . lisans kodu veriyor 10 karakterli ve altınada uygulamayı yapan kişi aktivasyon giriyor .




Kod:
Private Sub Form_Load()
Dim wrkDefault As Workspace
Dim nesne, disk, k
Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
Me.disk = k

End Sub

Private Sub Komut0_Click()
Dim wrkDefault As Workspace
Dim nesne, disk, k
r = Mid(MD5String(Me.disk), 1, 8)
If asif = r Then
Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
Me.disk = disk.SerialNumber
klasor = CurrentProject.path & "/" & disk.SerialNumber & ".txt"
Open CurrentProject.path & "/" & disk.SerialNumber & ".txt" For Output As #1
Print #1, MD5String(disk.SerialNumber)
Close #1
DoCmd.OpenForm "başlangıç"
Else
10 MsgBox "HATALI ŞİFRE YENİNİDEN DENE"
End If

End Sub
Private Sub Komut8_Click()
On Error GoTo Err_Komut8_Click


    DoCmd.Quit

Exit_Komut8_Click:
    Exit Sub

Err_Komut8_Click:
    MsgBox Err.Description
    Resume Exit_Komut8_Click
    
End Sub
buda başlangıç formundaki kod

Kod:
Private Sub Form_Load()

On Error GoTo 10
Dim nesne, disk, k

Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
  r = MD5String(disk.SerialNumber)

  Open CurrentProject.Path & "/" & disk.SerialNumber & ".txt" For Input As 1
Do While Not EOF(1)
      Line Input #1, kayit1
      If kayit1 <> Empty Then
        M = kayit1
        satir = satir + 1
        End If
    Loop
     Close #1

If M = r Then
Else
10 DoCmd.OpenForm "şifree"
End If
End Sub
Kod:
Private Sub Form_Load()
Dim wrkDefault As Workspace
Dim nesne, disk, k
Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
Me.disk = k

End Sub

 Bu kod d sürücüsünün seri numarasını  formun yüklendiğinde disk isimli metin kutusuna yazdırıyor. 

Benim diskin seri numarası "-1409129247"

Private Sub Komut0_Click()

Dim wrkDefault As Workspace
Dim nesne, disk, k
r = Mid(MD5String(Me.disk), 1, 8)
If asif = r Then
Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
Me.disk = disk.SerialNumber
klasor = CurrentProject.path & "/" & disk.SerialNumber & ".txt"
Open CurrentProject.path & "/" & disk.SerialNumber & ".txt" For Output As #1
Print #1, MD5String(disk.SerialNumber)
Close #1
DoCmd.OpenForm "başlangıç"
Else
10 MsgBox "HATALI ŞİFRE YENİNİDEN DENE"
End If

End Sub
Bu kodda daha önceden tanımlaması yapılmamış "asif" diye bir mevzu var.
r = Mid(MD5String(Me.disk), 1, 8) 

disk metin kutusundaki sürücü seri numarasının md5 şifrelemesinin ilk 8 hanesi ile "asif" değerinin eşit olup olmadığı kontrol ediliyor,

disk seri numarası: -1409129247
md5 şifrelenmiş hali: 5bc85b63bab2893a461f5b05a4b26bc

asif değeri ile "5bc85b63" eşit ise, uygulama ile aynı dizine disk seri numarası ile aynı isimli txt dosyası oluşturup içerisine disk seri numarasının md5 şifrelenmiş halini bu txt dosyasına kaydediyor.
Kodda Alpeki'nin bahsettiği gibi mantık hataları var, fazlalıklar var.  Ayrıca md5 şifreleme için modül olması gerekiyor.
sonraki mesajınızdaki
Private Sub Form_Load()

On Error GoTo 10
Dim nesne, disk, k

Set nesne = CreateObject("Scripting.FileSystemObject")
Set disk = nesne.GetDrive(nesne.GetDriveName(nesne.GetAbsolutePathName("d:\")))
k = disk.SerialNumber
  r = CalculateMD5(disk.SerialNumber)
 
  Open CurrentProject.Path & "/" & disk.SerialNumber & ".txt" For Input As 1
Do While Not EOF(1)
      Line Input #1, kayit1
      If kayit1 <> Empty Then
        M = kayit1
        satir = satir + 1
        End If
    Loop
     Close #1

If M = r Then
Else
10 DoCmd.OpenForm "şifree"
End If
End Sub
şeklindeki kod ise tahminimce dağıtımı yapılan uygulamaya ait. Üstteki kod ile, Form açıldığında uygulama ile aynı dizinde bulunan txt uzantılı dosya okunuyor ve 1 satırdaki veri ile yani md5 şifrelenmiş seri numarası ile uygulamanın bulunduğu sürücünün md5 şifrelenmiş seri numarasının aynı olup olmadığı denetleniyor.

Muhtemelen siz sürücü seri numarasının md5 şifrelenmiş değerinin kaydedildiği txt uzantılı dosyayı uygulamayı kullanacak şahsa vereceksiniz, o uygulama ile aynı dizine kopyalayıp uygulamayı kullanacak.

Eğer txt dosyasının ismi veya içerisindeki verilerde uyumsuzluk varsa "şifre" isimli form açılacak. şifre isimli form açıldığında muhtemelen 2 metin kutusu olacak,
1. metin kutusunda sürücü seri numarası olacak, sizden alacağı md5 şifrelenmiş halini 2. metin kutusuna yazacak, butona tıkladığında uygunluk kontrol edilip uygulama ile aynı dizine 1. metin kutusundaki verinin isminde ve içerisinde 2. metin kutusundaki verinin yazılı olduğu txt uzantılı dosya kaydedecek. Uygulamadaki formları rahatça açabilecek.
Bu ayrıntılı açıklamanız için çok teşekkür ederim.
bir arkadaşımda daha var ilk kutucuğa dediğiniz gibi seri numarası bildiriyor.
ama ilk kutucukta bana serial numarası göstermiyor sebebi nedir normalde dediğiniz gibi seri numarası çıkıyor...
Sayfalar: 1 2