6/08/2010

Bagaimana Software Aplikasi Agar Tidak Di Krack

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).
----------------------------------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