*** WARNING ***
Tulisan ini digunakan untuk tujuan pendidikan, jika anda sudah mengetahui bagaimana menginjeksi registry dari VB, mohon jangan dimanfaatkan untuk menginjeksi registry dengan tujuan lainnya, sebagaimana yang program virus biasa lakukan.
Jika anda tidak pernah belajar atau tahu tentang registry sebelumnya, mohon jangan mencoba trik berikut, karena saya tidak bertanggung jawab atas kesalahan pengetikan/pengcopyan yang anda lakukan ataupun apa yang terjadi pada komputer anda.
*** WARNING ***

Pernahkah kita berpikir bagaimana sebuah program yang beredar di internet mempunyai serial number yang harus kita isi sebelum kita dapat menjalankan program tersebut? Penggunaan Serial Number untuk proteksi program masih menjadi trend dari kebanyakan program yang baru direlease. Walaupun kemudian ternyata metode tersebut sudah tidak dapat 100% melindungi pemakaian program ilegal dengan banyaknya crack ataupun keygen untuk mengenerate serial number tersebut. Sebenarnya bagaimanakah Serial Number itu bisa dibuat?
Saya berpikiran, jika seandainya program aplikasi yang kita buat selalu dilindungi serial number, tentunya walaupun customer kita mempunyai master ataupun installer programnya, selama dia tidak tahu serial numbernya, dia tidak akan dapat menginstall program di komputer yang berbeda.
Berikutnya saya mencoba untuk membuat sebuah program yang saya integrasikan dengan program yang sudah saya buat, sehingga customer harus memasukkan serial number sebelum dia dapat menggunakan program. Karena alasan keamanan, serial number ini saya masukkan ke dalam badan program, jadi tidak saya simpan di database. Jadi user biasa akan kesulitan mengintip serial number ini.
Berikut adalah penggalan kodenya:

Private Sub Command1_Click()
RegKunci(1) = “ZEZEX-JKLMN-QPORC-SOSOP-ABABC”
ExpRegKunci(1) = “15/08/2009”

cocok = False
fTanggal = Now
For i = 1 To 1
If Text1.text = RegKunci(i) Then
If fTanggal < ExpRegKunci(i) Then
cocok = True
Exit For
End If
End If
Next

If cocok Then
‘inject registry
sKeyVal = String$(1024, 0)
sKeyValSize = 1024
sKeyVal = Format(Date + 180, “dd/mm/yyyy”)

‘create key
rc = RegCreateKey(HKEY_CURRENT_USER, KeyName, hKey)
‘then create key value

rc = RegSetValueEx(hKey, SubKeyName, 0, REG_SZ, ByVal sKeyVal, sKeyValSize)
rc = RegCloseKey(hKey)

MsgBox “Program berhasil diregistrasi ke sistem anda”, vbInformation, PesanMessageBox

Unload Me
Else
MsgBox “Maaf Serial Number Anda salah / invalid” & vbCrLf & vbCrLf & “Silakan hubungi:” & vbCrLf & vbCrLf & “Candra Wahyu Kurniawan ph. 081330995038”, vbCritical, PesanMessageBox
End
End If

End Sub

Saat program diinisialisasi pertama kali, dia akan meminta user untuk memasukkan serial number. Serial Number apabila salah dimasukkan maka program akan langsung berhenti. Jadi hal ini cukup bermanfaat, karena orang yang bermaksud mengcopy program ini tidak akan bisa menjalankan programnya jika dia tidak mengetahui serial numbernya.

Mungkin tidak secanggih proteksi Serial Number yang ada di pasaran. Mungkin bahkan mereka menggunakan teknik-teknik yang jauh lebih rumit daripada teknik sederhana yang saya paparkan di atas. Namun setidaknya kita mencoba untuk memproteksi hasil karya kita dari pengcopyan ilegal. Semoga tulisan saya ini bermanfaat buat rekan2 programmer semua. Viva Programmer Indonesia!!!