Sunday, August 11, 2013

CARA MELINDUNGI PROGRAM DENGAN SERIAL NUMBER

Sebagai seorang programmer, tentu kita tidak ingin program yang kita buat bisa dicopy seenaknya oleh orang lain, bagi orang yang ingin menggunakan program buatan kita tentunya harus membayar/membeli kepada kita . Terutama jika kita membuat program yang sifatnya umum, misalnya Program aplikasi akuntasi, Inventory, Point Of Sale atau Program Kasir. Untuk mencegah agar program kita tidak bisa di Copy sembarang, atau disebarkan oleh orang lain, maka kita harus melindungi program kita. Jadi setiap ada orang yang ingin menggunakan Program buatan kita, mereka harus memebelinya dari kita bukan dengan mengcopy dari orang yang pernah membeli sebelumnya. Umumnya ada dua cara melindungi program yaitu Melindungi Program Dengan Serial Number dan Melindungi Program Dengan Dongle ( sebuah alat sebesar FlashDisk ). Namun pada posting kali ini saya hanya akan menbahas tentang Cara Melindungi Program dengan Serial Number Saja. Sedangkan Melindungi Program dengan dongle akan dibahas pada postingan yang lain. Dalam postingan kali ini saya mencoba menjelaskan Cara Melindungi Program Dengan Serial Number dimana untuk komputer yang berbeda diperlukan serial number yang berbeda, jadi meskipun seseorang sudah menegathui satu serial number tetapi serial number tersebut tidak bisa digunakan pada komputer lainnya. Jadi Satu Serial Number hanya berlaku untuk satu komputer saja. 
 
Gambar 1.
Contoh Form Registrasi Menggunakan Serial Nomer (Kode Registrasi ) 
Cara Melindungi Program dengan Serial Number adalah sebagai berikut:
Untuk dapat memberikan serial number yang hanya berlaku pada satu komputer saja maka kita harus mengetahui sesuatu yang sifatnya unik dalam komputer tersebut, misalnya serial number Prosesor, serial number Motherboard atau serial number Hardiskdrivenya. Misalnya kita menggunakan serial number Harddisk. Kalau kita menggunakan Serial Number HarddiskDrive maka kita harus tahu bagaimana  Coding membaca serial number Harddisk dengan Delphi ( Nanti akan sayaberikan dibawah ).
Sekarang kita bahas logikanya dulu, lebih mudah dengan contoh berikut

Misalnya kita dapatkan Serial Number Hardisknya adalah 4239947770 , serial number ini kita simpan dalam variable Float/Real/double agar bisa kita tambahkan/kurangkan dengan bilangan. 

Untuk memberikan Serial Number Kepada Komputer ini , maka angka Serial Number diatas kita tambah/kurangkan  dengan bilangan tertentu yang tetap. Misalnya 898989. Agar lebih rumit bisa ditambahkan dengan cara lain, misalnya angka kedua dan kelima atau lainnya sesuaikan dengan kreatifitas kalian. 
   
 Hasil penambahan itulah yang kita gunakan sebagai serial Number 

Untuk Contoh diatas SN = 4239947770 + 898989 = 4240846759 

 Jadi SN Untuk ini adalah 4240846759 

Nah Saat Registrasi lakukan pemeriksaan serial number yang diinput , kita periksa jumlahnya apakah  sesuai, jika sesuai maka registrasi berhasil, jika tidak , berarti registrasi gagal. 

 Angka 898989 adalah angka khusus yang kita ciptakan sendiri, sesuai dengan kreativitas masing masing. 

Pada Contoh Form registrasi diatas , Kode Installasi adalah Serial Number Hardisk pada komputer dimana kita meregistrasi Program 

 Kode Registrasi adalah tempat Input Serial Numbernya. 

Jadi Kode Intallasi yang muncul akan berbeda beda untuk setiap komputer karena serial Number Hardisknya pasti berbeda beda.  

 Berikut adalah Coding Cara membaca Serial Number

Setelah memahami logika diatas mari kita lanjutkan Cara Melindungi Program dengan Serial Number sesuai langkah langkah berikut:

Langkah 1:
Hal pertama yang harus disiapkan adalah menulis dan membaca Registry Windows, karena Serial Number akan kita simpan dalam registry Windows. Jika belom paham tentang cara Menulis dan Membaca Registry Windows dengan Delphi silahkan baca disini . Disana akan dijelaskan Cara Menulis/Membaca Registry Windows dengan Delphi.  Pada Program yang kita buat, tambahkan satu menu untuk melakukan Registrasi dalam hal ini untuk memasukan Serial Nomer yang sesuai, kemudian kita menyimpannya kedalam Registry Windows. Misalnya seperti pada Gambar 1 diatas. Mengenai Pembuatan Serial Nomor, silahkan baca lagi bagian penjelasan logika diatas. Berikut ini contoh Listing menyimpan hasil registrasi kedalam registry Windows.

 If cSerial.text= inttostr(SerialNum+ 898989)then
       Begin
        try
            Reg.OpenKey('\Software\myStock_Sx\Registrasi',true);
            Reg.WriteString('HD',inttostr(serialnum));
            Reg.WriteString('Serial',cSerial.text);
         finally
            Reg.CloseKey;
          end;
          MessageDlg('Registrasi Berhasil !', mtInformation,[mbOk], 0);
          Close;
       End else
       Begin
          MessageDlg('Registrasi Yang Anda Masukkan Tidak Benar', mtWarning,[mbOk], 0);
          cserial.SetFocus;
       End;

If cSerial.text= inttostr(SerialNum+ 898989)then …   adalah untuk memeriksa apakah serial nomer yang dimasukan sudah sesuai dengan yang kita berikan, untuk lebih jelasnya baca lagi penjelasan logika diatas, angka 898989 adalah angka yang bisa anda buat sendiri sesuai kreativitas masing masing.



Langkah 2
Langkah kedua dalam Cara Melindungi Program Dengan Serial Number  adalah membuat pemeriksaan apakah program sudah di registrasi atau belum, caranya adalah tambahkan script pemeriksaan di Form Utama pada Even on Activate atau onCreate. Maksudnya agar pada saat program pertamakali dijalankan maka program akan memeriksa dulu apakah sudah diregistrasi ( sudah di input serian nomernya atau belum ) Jika Sudah Program bisa dilanjutkan, jika belum maka Program langsung di exit.


Berikut adalah Script Untuk Membaca Registrasi di Registry Windows

  try
    try
      Reg.OpenKey('\Software\myStock_Sx\Registrasi', false);
      cHD:=Reg.ReadString('HD');
      cSerial:=Reg.ReadString('Serial');
      except  on ERegistryException do
           Begin

              messagedlg( ‘Program Belum Teregistrasi, Harap Lakukan Registrasi  ', mtWarning,[mbOK], 0);

              Application.Terminate;  /// Jika Belum terregistrasi maka proses yang ini / Program langsung close

          End;
    end;
   finally
    Reg.CloseKey;
  end;

cHD adalah string untuk menyimpan Serial Nomer Hardisk yang kita simpan saat Registrasi
cSerial adalah string untuk menyimpan Serial Nomer yang kita simpan saat Registrasi

kemudian lakukan pemeriksaan seperti saat Registrasi seperti berikut :

If cSerial= inttostr(strtoint(cHD)+ 898989) then
 Begin
      Exit;   /// Jika Benar Maka proses keluar dari sini > Program Bisa Dilanjutkan
 End
 Else
    messagedlg( ‘Program Belum Teregistrasi, Harap Lakukan Registrasi  ', mtWarning,[mbOK], 0);
    Application.Terminate;  /// Jika Tidak Benar Maka Program langsung Exit
 End;


Kalau ada yang Kurang Jelas Bisa tuliskan pertanyaan di bagian Komentar
Semoga Bermanfaat.

28 comments:

  1. thanks da bisa. tpi untuk statement "DRIVEINFO" tidak bisa digunakan. kenapa yaa?

    ReplyDelete
    Replies
    1. Tambahkan Function berikut ini untuk Driveinfo

      function DriveInfo(const sDrive: string; var SerialNum: DWORD;
      var VolName, FileSysName: string) : BOOL;
      var
      MaxCompLength, FileSysFlag : DWORD;
      aVolName, aSysName : array [0..255] of Char;
      begin
      aVolName := '';
      aSysName := '';
      SerialNum := 0;

      Result := GetVolumeInformation(PChar(sDrive),
      aVolName, 256, @SerialNum, MaxCompLength,
      FileSysFlag, aSysName, 256);

      VolName := string(aVolName);
      FileSysName := string(aSysName);
      end;

      Delete
    2. DriveInfo itu jenisnya apa ya?? button atau apa??

      Delete
  2. bang bisa kasih contoh programnya gk??

    ReplyDelete
  3. kita juga punya nih artikel mengenai 'Delphi', silahkan dikunjungi dan dibaca , berikut linknya
    http://repository.gunadarma.ac.id/bitstream/123456789/2320/1/Sinusoidal%20Scrolling%20OpenGL%20project%20in%20Delphi.pdf
    trimakasih
    semoga bermanfaat

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. ambil aja kode kode yang ada di postingan diatas,

    trus ikuti pentunjuknya , pasti bisa

    ReplyDelete
  6. Sore om saya pengen tahu lebih detail tentang Dongle dari Flashdisk, dan om bisa membuat tools untuk membuat dongle dari FlashDisk untuk memproteksi File .exe yang sudah jadi om? saya Siap Donasi OM :) , saya tunggu kabarnya di email ane om => satriasudira@gmail.com

    ReplyDelete
  7. masih bingung mas, ada source code.xa gk biar lebih mudah di pahami

    ReplyDelete
  8. menarik sekali artikel nya mas.tp masih blm paham bener..
    oiya mas lalu untuk meng'Genrate id hardware nya gimana?
    sedangkan client (si customer kita) sudah memberikan ID hardware nya pada kita,
    mohon pencerahan nya mas thnks berat..

    vhicxs356@gmail.com

    ReplyDelete
  9. cara membaca serial hardisnya gmana?

    ReplyDelete
  10. wah memberikan ilmunya setengah hati nich nggak iklas kayaknya masih ada yang di gantung nich

    ReplyDelete
  11. udah dijelasin semua tuh, klo belum jelas brarti belum dibaca semuanya.

    Tengkiu berat om @Agus

    ReplyDelete
    Replies
    1. menyesatkan......... gak lengkap ini. :}

      Delete
  12. 4156915674

    SETTINGAN DI VB NYA BACA NUMBER PROCESSOR + mAINBOARD ...

    ReplyDelete
  13. klo untuk vb.net 2010 ada gak bang

    ReplyDelete
  14. inbox nya di email salam.devil8@gmail.com

    ReplyDelete
  15. kalau aplikasi kita di didalam flashdisk bagaimana kita beri proteksi?

    ReplyDelete
  16. alhamdulilah terimakasih gan,,,saya berhasil membuattnya

    ReplyDelete
    Replies
    1. gan bisa berbagi saya cara deteksi serial number hard disknya gimana saya coba masukan serial number hardisk aja masih tidak bisa, apanya yang salah gan

      Delete
  17. Gimana caranya disable button lewat Registry

    ReplyDelete
  18. gimana cara mendapatkan serial number dengan waktu aktivenya

    ReplyDelete
  19. sama semua kodenya nulisnya dimana bang gak ada petunjuk script ini di tulis dmn

    ReplyDelete
  20. Cara Melindungi Program Dengan Serial Number - Aku Cinta Delphi >>>>> Download Now

    >>>>> Download Full

    Cara Melindungi Program Dengan Serial Number - Aku Cinta Delphi >>>>> Download LINK

    >>>>> Download Now

    Cara Melindungi Program Dengan Serial Number - Aku Cinta Delphi >>>>> Download Full

    >>>>> Download LINK 27

    ReplyDelete