Dalam artikel sederhana ini, saya akan menunjukkan bagaimana Anda dapat melindungi perangkat lunak Anda dari penyalinan yang tidak sah dengan menciptakan sebuah nomor seri / aktivasi sepasang kunci berdasarkan alamat fisik (MAC) dari adapter jaringan pada komputer klien.
Mendapatkan Alamat MAC dan Pembangkit Nomor Seri
Langkah pertama adalah untuk mendapatkan alamat MAC dari mesin klien. Hal ini dapat dicapai dengan menggunakan kelas ManagementClass terletak di perakitan System.Management. Kita harus menambahkan referensi ke perakitan untuk proyek kami, dan impor ke SecurityManager.vb, yang akan menjadi kelas di mana kita tempat GetSerial () dan CheckKey () fungsi. Kedua fungsi akan bertanggung jawab untuk menghasilkan nomor seri dari alamat MAC dan memeriksa apakah kunci yang dimasukkan oleh pengguna adalah valid. Sebagai langkah pertama, kita mendefinisikan fungsi () GetSerial sebagai berikut:
-----------------------------Source code-------------------------------------------------------------------
Public Function GetSerial() As Long
Dim mc As New ManagementClass("Win32_NetworkAdapterConfiguration")
Dim mac As String = ""
Dim moc As ManagementObjectCollection = mc.GetInstances
For Each mo As ManagementObject In moc
If mo.Item("IPEnabled") Then
mac = mo.Item("MacAddress").ToString
Exit For
End If
Next
mc.Dispose()
Dim sum As Long = 0
Dim index As Integer = 1
For Each ch As Char In mac
If Char.IsDigit(ch) Then
sum += sum + Integer.Parse(ch) * (index * 2)
ElseIf Char.IsLetter(ch) Then
Select Case ch.ToString.ToUpper
Case "A"
sum += sum + 10 * (index * 2)
Case "B"
sum += sum + 11 * (index * 2)
Case "C"
sum += sum + 12 * (index * 2)
Case "D"
sum += sum + 13 * (index * 2)
Case "E"
sum += sum + 14 * (index * 2)
Case "F"
sum += sum + 15 * (index * 2)
End Select
End If
index += 1
Next
Return sum
End Function
-------------------------------------------------------------------------------------------------------------- Fungsi ini akan memberikan kami nomor serial unik setiap alamat MAC (tidak benar-benar unik, tapi mirip dengan fungsi hash keunikan).
Membangkitkan kunci aktivasi dari Serial Number
Langkah kedua adalah untuk menciptakan generator kunci yang akan menghasilkan kunci aktivasi dari nomor seri yang diberikan. generator ini akan ditempatkan dalam kelas yang disebut KeyGenerator. Kelas ini akan berisi fungsi yang akan menerapkan fungsi matematika sederhana pada nomor seri untuk mendapatkan kunci aktivasi. Dalam hal ini, saya akan menggunakan fungsi f (x) = x2 + 53 / x + 113 * (x / 4).
Langkah kedua adalah untuk menciptakan generator kunci yang akan menghasilkan kunci aktivasi dari nomor seri yang diberikan. generator ini akan ditempatkan dalam kelas yang disebut KeyGenerator. Kelas ini akan berisi fungsi yang akan menerapkan fungsi matematika sederhana pada nomor seri untuk mendapatkan kunci aktivasi. Dalam hal ini, saya akan menggunakan fungsi f (x) = x2 + 53 / x + 113 * (x / 4).
----------------------------------Source Code--------------------------------------------------------------
Public Class KeyGenerator
Public Function GenerateKey(ByVal serial As Long) As Long
Dim x As Long = serial
Return x * x + 53 / x + 113 * (x / 4)
End Function
End Class
----------------------------------------------------------------------------------
Kembali ke SecurityManager.vb, kita perlu menambahkan satu fungsi lebih, yang CheckKey (). Fungsi ini akan mengambil kunci aktivasi sebagai parameter, menerapkan fungsi tombol-menghasilkan pada alamat MAC saat ini, kemudian membandingkan dua kunci untuk melihat apakah mereka cocok atau tidak.-------------------------------------------Source Code-----------------------------------------------------
Public Function CheckKey(ByVal key As Long) As Boolean
Dim x As Long = GetSerial()
Dim y As Long = x * x + 53 / x + 113 * (x / 4)
Return y = key
End Function
-------------------------------------------------------------------------------------------------------------- Satu catatan penting tersisa: tidak menempatkan semua kelas-kelas dalam larutan klien Anda! Ingat bahwa class yang menghasilkan kunci hanya dimiliki oleh Anda.Sekarang Anda dapat menggunakan kelas-kelas untuk melindungi perangkat lunak Anda. Anda juga dapat menggunakan fungsi yang lebih rumit untuk memastikan keamanan lebih.
Selamat mencoba...
0 comments:
Post a Comment