Selamat Datang Di Blog Kami

إِنَّ اللهَ لاَ يَنْظُرُ إِلَى صُوَرِكُمْ وَ أَعْمَالِكُمْ وَ إِنَّمَا يَنْظُرُ إِلَى قُلُوْبِكُمْ وَ نِيَّاتِكُمْ

“Sesungguhnya Allah tidak melihat kepada rupa dan amal-amal kalian, tetapi Dia melihat kepada hati dan niat kalian.” (shahih Muslim dan lainnya)

Selasa, 19 Januari 2010

Menjadikan flashdisk sebagai dongle aplikasi

Banyak cara untuk membuat aplikasi menjadi lebih aman baik pada pendistribusian maupun penggunaannya. Berikut adalah cara sederhana membuat dongle aplikasi dengan memanfaatkan flash disk. Hal ini dilakukan dengan membaca serial number dari flash disk yang akan di setting menjadi dongle, mengingat serial number yang tertera pada flash disk merupakan kumpulan angka spesifik yang selalu berbeda setiap flash disk tersebut di format.
Pada listing program berikut, setiap aplikasi dijalankan akan selalu membaca drive flash disk. Apabila terdapat drive flash disk dengan serial number yang sudah disetting maka aplikasi yang sebenarnya akan ditampilkan.

//---------------------------------------------------------------------------
'#include 
'#pragma hdrstop
'#include "uflash.h"
'#include "stdlib.h"
//---------------------------------------------------------------------------
'#pragma package(smart_init)
'#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
        String drive;
        String VOLUME;
        DWORD SerialNumber;
        VOLUME.SetLength(255);
        drive = "D:\";
        String DRIVE = drive;
        GetVolumeInformation(DRIVE.c_str(), VOLUME.c_str(), VOLUME.Length(), &SerialNumber,
                NULL, NULL, NULL, NULL);
        Label5->Caption = DRIVE;
        Label6->Caption = VOLUME;
        char TEKS[30];
        itoa (SerialNumber, TEKS, 15);
        Label7->Caption = SerialNumber;
        Edit2->Text = SerialNumber;
        if (SerialNumber == 761563863) //ganti SerialNumber sesuai dengan flashdisk yang anda gunakan
        {
            Label8->Caption = "Flash disk cocok";
                        //Disini ditulis perintah untuk meload aplikasi yang sesungguhnya
        }
        else
        {
            Label8->Caption = "Flash disk tidak terpasang / tidak cocok";
        }
        Timer1->Enabled = false;
        HANDLE serialnumber;
        char buffer[10];
        DWORD byte_yang_ditulis;
        serialnumber = CreateFile(Edit1->Text.c_str(), GENERIC_WRITE, 0,
                NULL, OPEN_ALWAYS, FILE_FLAG_RANDOM_ACCESS, 0);
        strcpy(buffer, Edit2->Text.c_str());
        WriteFile(serialnumber, buffer, sizeof(buffer), &byte_yang_ditulis, NULL);
        CloseHandle(serialnumber);

        Close();

Pada contoh listing diatas, flashdisk sudah diset sebagai drive D, sehingga aplikasi akan menemukan kesalahan jika:
  • Partisi hardisk komputer berubah.
  • Partisi flashdisk berubah / flashdisk di format ulang.
  • Flashdisk dikenali bukan sebagai drive D (jika terdapat USB storage lain sebelum flashdisk dongle dipasang).
from. shaffan.net

0 komentar:

Template by : kendhin x-template.blogspot.com