Das ist ein relativ guter Kopierschutz. Du musst es nur so im Programm verstecken, dass es nicht so leicht gefunden und gepatcht werden kann
WINDOWS Programmierbeispiel C++DOS Programmierbeispiel in CCode:// DriveInfo_1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include <windows.h> #define INFOBUF_SIZE 256 int main(int argc, char* argv[]) { char drives[INFOBUF_SIZE]; char volumeName[INFOBUF_SIZE], fileSystem[INFOBUF_SIZE]; unsigned long serialNumber; GetLogicalDriveStrings(INFOBUF_SIZE, drives); const char *ptr = drives; while( *ptr != '\0' ) { unsigned int driveType = GetDriveType(ptr); if( driveType != DRIVE_REMOVABLE && driveType != DRIVE_CDROM ) { GetVolumeInformation(ptr, volumeName, INFOBUF_SIZE, &serialNumber, 0, 0,fileSystem, INFOBUF_SIZE); printf("drive = %s, ", ptr); printf("volumneName = %s, ", volumeName); printf("fileSystem = %s", fileSystem); printf("Serial = %X\n", serialNumber); } ptr = strchr(ptr, '\0'); ptr += 1; } return 0; }Quelle: http://www.cpe.mut.ac.th/Question.asp?GID=1120Code:#include <dos.h> #include <stdio.h> void main(void) { typedef struct { unsigned short info_level; unsigned long disk_serial_number; unsigned char volume_label[11]; unsigned char filesystem[8]; }DISK_INFO; union REGS inregs, outregs; struct SREGS segregs; DISK_INFO disk; inregs.h.ah = 0x69; inregs.h.al = 0x00; inregs.h.bl = 0x03; /* Drive C: */ inregs.x.dx = FP_OFF(&disk); segregs.ds = FP_SEG(&disk); int86x(0x21, &inregs, &outregs, &segregs); printf("Serial Number: %lX\n", disk.disk_serial_number); }
Im DOS-Fenster kannst du auch mit dem Kommando dir /p die Seriennummer der Festplatte abfragen. Das DIR Programm gibt sie gleich ganz oben in der ersten oder zweiten Zeile aus.







Zitieren

Lesezeichen