- Aktiflik
- K.Tarihi
- 29 Kas 2010
- Mesajlar
- 276
- Puanı
- 106
Bir kaç arkadaş sordu demo program yapmak istiyoruz.
Programımız sadece bir bilgisayarda çalışsın, başka bilgisaylarda çalışmasını istemiyoruz.
Programa serial koymak istiyorum nasıl yaparım fln dediler.
Bunun üzerine video çektim.
Mantık Şöyle işliyor :
Şimdi her bilgisayarda değişken olan bir string bir ifade = İşlemcinin Seri Numarası
bunun başına ve sonuna bir şeyler ekleyip MD5’ini alıyoruz.
İşte o MD5 Kullanıcının Programının Seri Numarası oluyor.
Ve bu MD5’i programda serial kayıt diye oluşturulan bir bölümde bir yere yazıyor butona tıklıyor.
Sonra buton’la birlikte eğer adamın girdiği MD5 işlemcinin seri numarasının başına ve sonuna eklediğimiz karakterlerle birlikte MD5’ine eşitse o MD5’i bir ini dosyasına kaydediyor.
Sonra form açılırken ini dosyasından okuma yapıyor.
Eğer ini dosyasından gelen değer işlemcinin seri numarasının başına ve sonuna eklediğimiz karakterlerle birlikte MD5’ine eşitse programa giriş yapıyor.
Eşit değilse lisansınız geçersiz diye uyarı veriyor.
bunların her biri için hazır fonksiyonlar kullandım.
ini dosyası - cpu id - md5 almak için üç farklı fonksiyon kullandım.
Fonksiyonların Download Adresleri
[video=vimeo;12777205]http://vimeo.com/12777205[/video]
Artık siz uyarıdan sonra programdan çık mı derseniz, yoksa butonların enabled özelliğini "false" ’mi yaparsınız size kalmış.
Video Direk Adresi
[vimeo=12777205]
CPU ID Fonksiyonu
MD5 Dönüştürme Fonksiyonu
Tüm Kodlar 1.Proje. Kullanıcıdaki
Sizdeki Program
Programımız sadece bir bilgisayarda çalışsın, başka bilgisaylarda çalışmasını istemiyoruz.
Programa serial koymak istiyorum nasıl yaparım fln dediler.
Bunun üzerine video çektim.
Mantık Şöyle işliyor :
Şimdi her bilgisayarda değişken olan bir string bir ifade = İşlemcinin Seri Numarası
bunun başına ve sonuna bir şeyler ekleyip MD5’ini alıyoruz.
İşte o MD5 Kullanıcının Programının Seri Numarası oluyor.
Ve bu MD5’i programda serial kayıt diye oluşturulan bir bölümde bir yere yazıyor butona tıklıyor.
Sonra buton’la birlikte eğer adamın girdiği MD5 işlemcinin seri numarasının başına ve sonuna eklediğimiz karakterlerle birlikte MD5’ine eşitse o MD5’i bir ini dosyasına kaydediyor.
Sonra form açılırken ini dosyasından okuma yapıyor.
Eğer ini dosyasından gelen değer işlemcinin seri numarasının başına ve sonuna eklediğimiz karakterlerle birlikte MD5’ine eşitse programa giriş yapıyor.
Eşit değilse lisansınız geçersiz diye uyarı veriyor.
bunların her biri için hazır fonksiyonlar kullandım.
ini dosyası - cpu id - md5 almak için üç farklı fonksiyon kullandım.
Fonksiyonların Download Adresleri
[video=vimeo;12777205]http://vimeo.com/12777205[/video]
Artık siz uyarıdan sonra programdan çık mı derseniz, yoksa butonların enabled özelliğini "false" ’mi yaparsınız size kalmış.
Video Direk Adresi
[vimeo=12777205]
CPU ID Fonksiyonu
Private Function CpuId() As String
Dim computer as string = "."
Dim wmi as object = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & _
computer & "\root\cimv2")
dim processors as object = wmi.execQuery("Select * from Win32_Processors")
dim cpu_ids as string = ""
For each cpu as object in processors
cpu_ids = cpu_ids & ", " & cpu.proccessorId
next cpu
if cpu_ids.Length > 0 then cpu_ids = cpu_ids.subString(2)
Return cpu_ids
End function
MD5 Dönüştürme Fonksiyonu
Function MD5_Donustur(ByVal strToHash as string) as string
dim md5 as new security.Cryptography.MD5CryptoServiceProvider
Dim md5hash() as byte = system.text.encoding.ascii.GetBytes(strtohash)
md5hash = md5.computehash(md5hash)
dim strResult as string = ""
For each b as byte in md5hash
strResult += b.tostring("x2")
Next
Return strResult
End Function
Tüm Kodlar 1.Proje. Kullanıcıdaki
Kod:
Private Function CpuId() As String
Dim computer As String = "."
Dim wmi As Object = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & computer & "\root\cimv2")
Dim processors As Object = wmi.ExecQuery("Select * from " & "Win32_Processor")
Dim cpu_ids As String = ""
For Each cpu As Object In processors
cpu_ids = cpu_ids & ", " & cpu.ProcessorId
Next cpu
If cpu_ids.Length > 0 Then cpu_ids = cpu_ids.Substring(2)
Return cpu_ids
End Function
Function MD5_Donustur(ByVal strToHash As String) As String
Dim md5 As New security.Cryptography.MD5CryptoServiceProvider
Dim md5hash() As Byte = system.text.encoding.ascii.GetBytes(strtohash)
md5hash = md5.computehash(md5hash)
Dim strResult As String = ""
For Each b As Byte In md5hash
strResult += b.tostring("x2")
Next
Return strResult
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Argekumandan As IniFiles = New IniFiles("C:\Deneme.ini")
TextBox1.Text = CpuId()
Dim serial As String = Argekumandan.Getir("Program", "Serial", "")
If serial = MD5_Donustur("¶⅜☻♫" & TextBox2.Text & "¶⅜☻♫") Then
Label1.Text = "Program Lİsanslı"
Else
MsgBox("Program Lisanssız", vbCritical)
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Argekumandan As IniFiles = New IniFiles("C:\Deneme.ini")
If TextBox2.Text = MD5_Donustur("¶⅜☻♫" & CpuId() & "¶⅜☻♫") Then
MsgBox("Lisans Geçerli")
Argekumandan.Yaz("Program", "Serial", TextBox2.Text)
Else
MsgBox("Lisans Geçersiz")
End If
End Sub
End Class
Public Class IniFiles
Private Declare Ansi Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As System.Text.StringBuilder, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Private Declare Ansi Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Integer
Private Declare Ansi Function GetPrivateProfileInt Lib "kernel32.dll" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Integer, ByVal lpFileName As String) As Integer
Private Declare Ansi Function FlushPrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As Integer, ByVal lpKeyName As Integer, ByVal lpString As Integer, ByVal lpFileName As String) As Integer
Dim strFilename As String
Public Sub New(ByVal Filename As String)
strFilename = Filename
End Sub
Public Property Filename(ByVal strFilename As String) As String
Get
Return strFilename
End Get
Set(ByVal value As String)
strFilename = value
End Set
End Property
Public Function Getir(ByVal Section As String, ByVal Key As String, ByVal [Default] As String) As String
Dim Sonuc As String = ""
Dim intCharCount As Integer
Dim objResult As New System.Text.StringBuilder(1024)
intCharCount = GetPrivateProfileString(Section, Key, [Default], objResult, objResult.Capacity, strFilename)
If intCharCount > 0 Then Sonuc = Left(objResult.ToString, intCharCount)
Getir = Sonuc
End Function
Public Function Getirsayi(ByVal Section As String, ByVal Key As String, ByVal [Default] As Integer) As Integer
Return GetPrivateProfileInt(Section, Key, [Default], strFilename)
End Function
Public Sub Yaz(ByVal Section As String, ByVal Key As String, ByVal Value As String)
WritePrivateProfileString(Section, Key, Value, strFilename)
Flush()
End Sub
Public Sub YazSayi(ByVal Section As String, ByVal Key As String, ByVal Value As Integer)
Yaz(Section, Key, CStr(Value))
Flush()
End Sub
Private Sub Flush()
FlushPrivateProfileString(0, 0, 0, strFilename)
End Sub
Sizdeki Program
Kod:
Function MD5_Donustur(ByVal strToHash As String) As String
Dim md5 As New Security.Cryptography.MD5CryptoServiceProvider
Dim md5hash() As Byte = System.Text.Encoding.ASCII.GetBytes(strToHash)
md5hash = md5.ComputeHash(md5hash)
Dim strResult As String = ""
For Each b As Byte In md5hash
strResult += b.ToString("x2")
Next
Return strResult
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox2.Text = MD5_Donustur("¶⅜☻♫" & TextBox1.Text & "¶⅜☻♫")
End Sub
Moderatörün son düzenlenenleri: