Arsip: Tanya: Menggunakan USB dongle untuk security software
When used as a software protection device, dongles mostly appear as two-interface security tokens with transient data flow that does not interfere with other dongle functions and a pull communication that reads security data from the dongle. Without the dongle, the software may run only in a restricted mode, or not at all. Removing Sentinel SuperPro dongle from Applications. Cloning A Usb Dongle (security Key) Started by Cret. I have some software that is a legit copy and have it installed on a few machines at home for convenience. 15 February 2017 11:09 Beranda Others Cara Membuat Undongle Key. Pencarian cara membuat undongle key tidak ditemukan. Copy Dongle Usb Look at most relevant Cara copy security dongle usb websites out of 2.14 Million at MetricsKey. Cara copy security dongle usb found at softwaretopic. For example, a dongle attached to a TV may receive an encoded video stream, decode it in the dongle, and then present this audio and video information to the TV. A software protection dongle is a device that allows you to protect content from accessing and copying. A hardware key has a product key or other protection mechanism. By attaching it to a computer or another electronic appliance a user can unlock software functionality or decode content or access a hardware device. Nov 16, 2009 I have some software that is a legit copy and have it installed on a few machines at home for convenience. It needs the supplied dongle to be installed before the software will run and this is a pain in the hole having to make sure I have the dongle with me as I need to swap around between machines etc.
more 16 years agoDonVall
ZeAL
DonVall
ZeAL
What is Volume's Serial Number?In short, the serial number of a (logical) drive is generated every time a drive is formatted. When Windows formats a drive, a drive's serial number gets calculated using the current date and time and is stored in the drive's boot sector. (The odds of two disks getting the same number are virtually nil on the same machine.)Here's a simple Delphi routine that gets the serial number of a disk (not the hard-coded manufacturer's hard drive serial number):~~~~~~~~~~~~~~~~~~~~~~~~~function FindVolumeSerial(const Drive : PChar) : string;var VolumeSerialNumber : DWORD; MaximumComponentLength : DWORD; FileSystemFlags : DWORD; SerialNumber : string;begin Result:='; GetVolumeInformation( Drive, nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, nil, 0) ; SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + ' - ' + IntToHex(LoWord(VolumeSerialNumber), 4) ; Result := SerialNumber;end; (FindVolumeSerial )~~~~~~~~~~~~~~~~~~~~~~~~~Usage is simple:~~~~~~~~~~~~~~~~~~~~~~~~~var C_DriveSerNumber : string;...C_DriveSerNumber := FindVolumeSerial('c:') ;~~~~~~~~~~~~~~~~~~~~~~~~~Note: the GetVolumeInformation API function is declared in the Windows unit, hence there's no need to add any additional units in the uses list.Why would I need this number in my applications?You could use the volume serial number to enforce a weak form of application protection - create your application so that it refuses to run if the current disk (from where the application is executed) has a volume serial number that was different from the number of the hard disk on which it was first installed. Note, however, that users who upgrade their systems, or who restore from backups after a disk crash will have their volumes with different numbers.
DonVall
ZeAL
Getting the BIOS serial numberCopyright © 2000 Ernesto De SpiritoSMImport - Native VCL components for importing dataFor a simple copy-protection scheme we need to know whether the machine that is executing our application is the one where it was installed. We can save the machine data in the Windows Registry when the application is installed or executed for the first time, and then every time the application gets executed we compare the machine data with the one we saved to see if they are the same or not.But, what machine data should we use and how do we get it? In a past issue we showed how to get the volume serial number of a logical disk drive, but normally this is not satisfying for a software developer since this number can be changed.A better solution could be using the BIOS serial number. BIOS stands for Basic Input/Output System and basically is a chip on the motherboard of the PC that contains the initialization program of the PC (everything until the load of the boot sector of the hard disk or other boot device) and some basic device-access routines. Unfortunately, different BIOS manufacturers have placed the serial numbers and other BIOS information in different memory locations, so the code you can usually find in the net to get this information might work with some machines but not with others. However, most (if not all) BIOS manufacturers have placed the information somewhere in the last 8 Kb of the first Mb of memory, i.e. in the address space from $000FE000 to $000FFFFF. Assuming that 's' is a string variable, the following code would store these 8 Kb in it: SetString(s, PChar(Ptr($FE000)), $2000); // $2000 = 8196We can take the last 64 Kb to be sure we are not missing anything: SetString(s, PChar(Ptr($F0000)), $10000); // $10000 = 65536The problem is that it's ill-advised to store 'large volumes' of data in the Windows Registry. It would be better if we could restrict to 256 bytes or less using some hashing/checksum technique. For example we can use the SHA1 unit (and optionally the Base64 unit) introduced in the Pascal Newsletter#17.The code could look like the following:uses SHA1, Base64;function GetHashedBiosInfo: string;var SHA1Context: TSHA1Context; SHA1Digest: TSHA1Digest;begin // Get the BIOS data SetString(Result, PChar(Ptr($F0000)), $10000); // Hash the string SHA1Init(SHA1Context); SHA1Update(SHA1Context, PChar(Result), Length(Result)); SHA1Final(SHA1Context, SHA1Digest); SetString(Result, PChar(@SHA1Digest), sizeof(SHA1Digest)); // Return the hash string encoded in printable characters Result := B64Encode(Result);end;This way we get a short string that we can save in the Windows Registry without any problems. You can take it as a sort of 'BIOS serial number'.As an alternative to using SHA1 and Base64, you can use any checksum algorithm and binary-to-string conversion function of your liking. In the example below we use a simple algorithm that gets a 64-bit checksum and finally we convert it to a 16-chars string of hexadecimal digits:function GetBiosCheckSum: string;var s: int64; i: longword; p: PChar;begin i := 0; s := 0; p := PChar($F0000); repeat inc(s, Int64(Ord(p^)) shl i); if i < 64 then inc(i) else i := 0; inc(p); until p > PChar($FFFFF); Result := IntToHex(s,16);end;Displaying the BIOS informationIf we wanted to display the BIOS information we should parse the bytes to extract all null-terminated strings with ASCII printable characters at least 8-characters length, as it is done in the following function:function GetBiosInfoAsText: string;var p, q: pchar;begin q := nil; p := PChar(Ptr($FE000)); repeat if q <> nil then begin if not (p^ in [#10,#13,#32..#126,#169,#184]) then begin if (p^ =#0)and (p - q >= 8) then begin Result := Result + TrimRight(String(q)) +#13#10; end; q := nil; end; end else if p^ in then q := p; inc(p); until p > PChar(Ptr($FFFFF)); Result := TrimRight(Result);end;Then we can use the return value for example to display it in a memo:procedure TForm1.FormCreate(Sender: TObject);begin Memo1.Lines.Text := GetBiosInfoAsText;end;WARNING: The code presented in this article won't work on Windows NT/2000, although some information about the BIOS and the system hardware can be found in the Windows Registry under the key HKEY_LOCAL_MACHINEHardwareDescriptionSystem, but not enough to identify a machine as far as I know...truss... setelah googling beberapa menit, sayangnya (walau belum dicoba langsung), serial number drive BISA dirubah...Mungkin bisa dikombinasikan dengan computer name, BIOS serial number dan sebagainya...
deLogic
Cara Copy Dongle Software Security Center
Apakekdah
taruna
Cara Copy Dongle Software Security Protection
more 14 years ago_aa_
Cara Copy Dongle Software Security Software
- Lazarus 2.2.0 Release Candidate 1
- FPC version 3.2.2 has been released!
- Lazarus Release 2.0.12
- Project Group dalam Lazarus
- FastPlaz Database Explorer
- Release: FastPlaz Super Mom v0.12.22
- PascalClass #3: Web Development with Free Pascal
- Makna Pascal di Pascal Indonesia
- Kulgram : Instalasi Lazarus di Perangkat Berbasis ARM
- PascalClass #1: Analisa Database dan Machine Learning
Cara Copy Dongle Software Security Code
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 10 months ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 10 months ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 11 months ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 11 months ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 11 months ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 11 months ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 1 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 9 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 9 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 9 years ago
When used as a software protection device, dongles mostly appear as two-interface security tokens with transient data flow that does not interfere with other dongle functions and a pull communication that reads security data from the dongle. Without the dongle, the software may run only in a restricted mode, or not at all. Removing Sentinel SuperPro dongle from Applications. Cloning A Usb Dongle (security Key) Started by Cret. I have some software that is a legit copy and have it installed on a few machines at home for convenience. 15 February 2017 11:09 Beranda Others Cara Membuat Undongle Key. Pencarian cara membuat undongle key tidak ditemukan. Copy Dongle Usb Look at most relevant Cara copy security dongle usb websites out of 2.14 Million at MetricsKey. Cara copy security dongle usb found at softwaretopic. For example, a dongle attached to a TV may receive an encoded video stream, decode it in the dongle, and then present this audio and video information to the TV. A software protection dongle is a device that allows you to protect content from accessing and copying. A hardware key has a product key or other protection mechanism. By attaching it to a computer or another electronic appliance a user can unlock software functionality or decode content or access a hardware device. Nov 16, 2009 I have some software that is a legit copy and have it installed on a few machines at home for convenience. It needs the supplied dongle to be installed before the software will run and this is a pain in the hole having to make sure I have the dongle with me as I need to swap around between machines etc.
more 16 years agoDonVall
ZeAL
DonVall
ZeAL
What is Volume's Serial Number?In short, the serial number of a (logical) drive is generated every time a drive is formatted. When Windows formats a drive, a drive's serial number gets calculated using the current date and time and is stored in the drive's boot sector. (The odds of two disks getting the same number are virtually nil on the same machine.)Here's a simple Delphi routine that gets the serial number of a disk (not the hard-coded manufacturer's hard drive serial number):~~~~~~~~~~~~~~~~~~~~~~~~~function FindVolumeSerial(const Drive : PChar) : string;var VolumeSerialNumber : DWORD; MaximumComponentLength : DWORD; FileSystemFlags : DWORD; SerialNumber : string;begin Result:='; GetVolumeInformation( Drive, nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, nil, 0) ; SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + ' - ' + IntToHex(LoWord(VolumeSerialNumber), 4) ; Result := SerialNumber;end; (FindVolumeSerial )~~~~~~~~~~~~~~~~~~~~~~~~~Usage is simple:~~~~~~~~~~~~~~~~~~~~~~~~~var C_DriveSerNumber : string;...C_DriveSerNumber := FindVolumeSerial('c:') ;~~~~~~~~~~~~~~~~~~~~~~~~~Note: the GetVolumeInformation API function is declared in the Windows unit, hence there's no need to add any additional units in the uses list.Why would I need this number in my applications?You could use the volume serial number to enforce a weak form of application protection - create your application so that it refuses to run if the current disk (from where the application is executed) has a volume serial number that was different from the number of the hard disk on which it was first installed. Note, however, that users who upgrade their systems, or who restore from backups after a disk crash will have their volumes with different numbers.
DonVall
ZeAL
Getting the BIOS serial numberCopyright © 2000 Ernesto De SpiritoSMImport - Native VCL components for importing dataFor a simple copy-protection scheme we need to know whether the machine that is executing our application is the one where it was installed. We can save the machine data in the Windows Registry when the application is installed or executed for the first time, and then every time the application gets executed we compare the machine data with the one we saved to see if they are the same or not.But, what machine data should we use and how do we get it? In a past issue we showed how to get the volume serial number of a logical disk drive, but normally this is not satisfying for a software developer since this number can be changed.A better solution could be using the BIOS serial number. BIOS stands for Basic Input/Output System and basically is a chip on the motherboard of the PC that contains the initialization program of the PC (everything until the load of the boot sector of the hard disk or other boot device) and some basic device-access routines. Unfortunately, different BIOS manufacturers have placed the serial numbers and other BIOS information in different memory locations, so the code you can usually find in the net to get this information might work with some machines but not with others. However, most (if not all) BIOS manufacturers have placed the information somewhere in the last 8 Kb of the first Mb of memory, i.e. in the address space from $000FE000 to $000FFFFF. Assuming that 's' is a string variable, the following code would store these 8 Kb in it: SetString(s, PChar(Ptr($FE000)), $2000); // $2000 = 8196We can take the last 64 Kb to be sure we are not missing anything: SetString(s, PChar(Ptr($F0000)), $10000); // $10000 = 65536The problem is that it's ill-advised to store 'large volumes' of data in the Windows Registry. It would be better if we could restrict to 256 bytes or less using some hashing/checksum technique. For example we can use the SHA1 unit (and optionally the Base64 unit) introduced in the Pascal Newsletter#17.The code could look like the following:uses SHA1, Base64;function GetHashedBiosInfo: string;var SHA1Context: TSHA1Context; SHA1Digest: TSHA1Digest;begin // Get the BIOS data SetString(Result, PChar(Ptr($F0000)), $10000); // Hash the string SHA1Init(SHA1Context); SHA1Update(SHA1Context, PChar(Result), Length(Result)); SHA1Final(SHA1Context, SHA1Digest); SetString(Result, PChar(@SHA1Digest), sizeof(SHA1Digest)); // Return the hash string encoded in printable characters Result := B64Encode(Result);end;This way we get a short string that we can save in the Windows Registry without any problems. You can take it as a sort of 'BIOS serial number'.As an alternative to using SHA1 and Base64, you can use any checksum algorithm and binary-to-string conversion function of your liking. In the example below we use a simple algorithm that gets a 64-bit checksum and finally we convert it to a 16-chars string of hexadecimal digits:function GetBiosCheckSum: string;var s: int64; i: longword; p: PChar;begin i := 0; s := 0; p := PChar($F0000); repeat inc(s, Int64(Ord(p^)) shl i); if i < 64 then inc(i) else i := 0; inc(p); until p > PChar($FFFFF); Result := IntToHex(s,16);end;Displaying the BIOS informationIf we wanted to display the BIOS information we should parse the bytes to extract all null-terminated strings with ASCII printable characters at least 8-characters length, as it is done in the following function:function GetBiosInfoAsText: string;var p, q: pchar;begin q := nil; p := PChar(Ptr($FE000)); repeat if q <> nil then begin if not (p^ in [#10,#13,#32..#126,#169,#184]) then begin if (p^ =#0)and (p - q >= 8) then begin Result := Result + TrimRight(String(q)) +#13#10; end; q := nil; end; end else if p^ in then q := p; inc(p); until p > PChar(Ptr($FFFFF)); Result := TrimRight(Result);end;Then we can use the return value for example to display it in a memo:procedure TForm1.FormCreate(Sender: TObject);begin Memo1.Lines.Text := GetBiosInfoAsText;end;WARNING: The code presented in this article won't work on Windows NT/2000, although some information about the BIOS and the system hardware can be found in the Windows Registry under the key HKEY_LOCAL_MACHINEHardwareDescriptionSystem, but not enough to identify a machine as far as I know...truss... setelah googling beberapa menit, sayangnya (walau belum dicoba langsung), serial number drive BISA dirubah...Mungkin bisa dikombinasikan dengan computer name, BIOS serial number dan sebagainya...
deLogic
Cara Copy Dongle Software Security Center
Apakekdah
taruna
Cara Copy Dongle Software Security Protection
more 14 years ago_aa_
Cara Copy Dongle Software Security Software
- Lazarus 2.2.0 Release Candidate 1
- FPC version 3.2.2 has been released!
- Lazarus Release 2.0.12
- Project Group dalam Lazarus
- FastPlaz Database Explorer
- Release: FastPlaz Super Mom v0.12.22
- PascalClass #3: Web Development with Free Pascal
- Makna Pascal di Pascal Indonesia
- Kulgram : Instalasi Lazarus di Perangkat Berbasis ARM
- PascalClass #1: Analisa Database dan Machine Learning
Cara Copy Dongle Software Security Code
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 10 months ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 10 months ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 11 months ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 11 months ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 11 months ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 11 months ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 1 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 9 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 9 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 9 years ago
Cara Copy Dongle Software Security Camera
- Remote Button.Click Client-Server
by adit4it in Hal umum tentang Pascal Indonesia more 14 years ago - Skin pada Alpha Control
by aciang_007 in Form Enhancement & Graphical Controls more 13 years ago - if pada memo
by nurez in Tip n Trik Pemrograman more 14 years ago - Judul Form Berjalan
by yadi in Hal umum tentang Pascal Indonesia more 13 years ago - mengabungkan coding 2 modul ke 1 function di file .DLL
by CAHYADI_ONG in Tip n Trik Pemrograman more 13 years ago - interface port paralel
by anthadi in Tip n Trik Pemrograman more 13 years ago - Buat komponen sendiri
by bad2001 in Tip n Trik Pemrograman more 14 years ago - mapping dengan delphi (GPS)
by skh_cay in Hal umum tentang Pascal Indonesia more 13 years ago - delphi dicombine PHP???
by claser99 in Tip n Trik Pemrograman more 13 years ago - Firebird 2.0 Released!
by simba in FireBird more 14 years ago