• Forum vBulletin altyapısından Xenforo altyapısına geçirildi, bu sebeple eski şifreleriniz ile foruma giriş yapamayacaksınız, parolamı unuttum adımından mailiniz ile şifre sıfırlayarak giriş yapabilirsiniz.

    Üyeliklerinde geçerli bir mail adresi olmadığı için sıfırlama yapamayacak kullanıcılar forum kullanıcı adlarını ve yeni şifrelerini yazarak info@maxigame.org adresine şifre sıfırlamak istediklerine dair bir mail göndersinler şifrelerini sıfırlayıp mail adreslerini güncelleyeceğiz. Şifreniz sıfırlandıktan sonra foruma giriş yapıp tekrar istediğiniz gibi değiştirebilirsiniz.

Visual Basic .NET 2010 Lisans İşlemleri

  • Konuyu başlatan Konuyu başlatan MaxiGame
  • Başlangıç tarihi Başlangıç tarihi

MaxiGame

I Robot
Aileden
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

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:
Konuyu açan arkadaşa özel mesajda attım. Kodları yayınlıyabilirmi acaba
 
Sordum malesef kodlar silinmis mevcut degilmis


Sent from my iPhone 5 using Tapatalk
 
Video'da geçen fonksiyonları, google'a yazarsanır çıkar.
Önemli olan fonksiyonları ekledim konuya. Diğerlerinide siz yaparsınız. :)
 
Son düzenleme:
Saol ama telefon yada pc ni kapatirsan en azindan bir gunluk biyolojide daha yararli olacagini dusunuyorum benimle ayni hataya dusme :(


Sent from my iPhone 5 using Tapatalk
 
Saol ama telefon yada pc ni kapatirsan en azindan bir gunluk biyolojide daha yararli olacagini dusunuyorum benimle ayni hataya dusme :(


Sent from my iPhone 5 using Tapatalk

Siz fonksiyonları yaparsınız. Textbox1 = fonksiyon_ismi
 
Son düzenleme:
Kodlara ihtiyacı olan için yazıyım dedim...

Mantık şu: 1. proje kullanıcıdaki programınız yani lisans isteyecek program
2 adet textbox
1 button
1 label


Tüm kodları:
Kod:
Public Class Form1
    'işlemci no göster
    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
End Class

2. proje kullanıcıya verilecek yani sizdeki program
2 adet textbox
1 button


Kod:
Public Class Form1
    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
 
Teşekkürler,kesinlikle sorunsuz çalışıyor.Bakalım işi otomatiğe bağlayabilecekmiyim :p
 
Kullanırken, çıkan seriali birde HDD seriali ile karıştır, hiç çözülmesin. (;
 
Tekrar işim düştü bu kodlara,zamanında tamamen otomatikleştirmiştim,tavsiye ederim program yapacaklara

Program 2 kere mail atıyordu,kullanıcının ip adresi,pc adı,cpu id vs

İlkini kullanıcıya seriali gönderiyor,ikinci mail ise bana geliyordu.Hey gidi ne güzel kodlamışım :D

----------

Hadi bu kodda benden

md5'i azaltıp 5 er 5 er bölüyor

Kod:
        kod.Text = MD5_Donustur(çevirilecek veri)
        kod.Text = kod.Text.ToUpper
        kod.Text = kod.Text.Remove(0, 7)
        Dim kod1, kod2, kod3, kod4, kod5 As New Label
        kod1.Text = kod.Text.Substring(0, kod.Text.Length - 20)
        kod2.Text = kod.Text.Remove(0, 5)
        kod3.Text = kod.Text.Remove(0, 10)
        kod4.Text = kod.Text.Remove(0, 15)
        kod5.Text = kod.Text.Remove(0, 20)
        kod2.Text = kod2.Text.Substring(0, kod2.Text.Length - 15)
        kod3.Text = kod3.Text.Substring(0, kod3.Text.Length - 10)
        kod4.Text = kod4.Text.Substring(0, kod4.Text.Length - 5)
        kod.Text = kod1.Text & "-" & kod2.Text & "-" & kod3.Text & "-" & kod4.Text & "-" & kod5.Text
 
Tekrar işim düştü bu kodlara,zamanında tamamen otomatikleştirmiştim,tavsiye ederim program yapacaklara

Program 2 kere mail atıyordu,kullanıcının ip adresi,pc adı,cpu id vs

İlkini kullanıcıya seriali gönderiyor,ikinci mail ise bana geliyordu.Hey gidi ne güzel kodlamışım :D

----------

Hadi bu kodda benden

md5'i azaltıp 5 er 5 er bölüyor

Kod:
        kod.Text = MD5_Donustur(çevirilecek veri)
        kod.Text = kod.Text.ToUpper
        kod.Text = kod.Text.Remove(0, 7)
        Dim kod1, kod2, kod3, kod4, kod5 As New Label
        kod1.Text = kod.Text.Substring(0, kod.Text.Length - 20)
        kod2.Text = kod.Text.Remove(0, 5)
        kod3.Text = kod.Text.Remove(0, 10)
        kod4.Text = kod.Text.Remove(0, 15)
        kod5.Text = kod.Text.Remove(0, 20)
        kod2.Text = kod2.Text.Substring(0, kod2.Text.Length - 15)
        kod3.Text = kod3.Text.Substring(0, kod3.Text.Length - 10)
        kod4.Text = kod4.Text.Substring(0, kod4.Text.Length - 5)
        kod.Text = kod1.Text & "-" & kod2.Text & "-" & kod3.Text & "-" & kod4.Text & "-" & kod5.Text

Güzel mantık.
Biraz uzamış sanki. :D
 
Geri
Üst