-         

Ergebnis 1 bis 3 von 3

Thema: Festplattenseriennummer auslesen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    22.01.2005
    Beiträge
    6

    Festplattenseriennummer auslesen

    Anzeige

    Also zunächsteinmal möchte ich sagen das egal was man auch macht um ein Programm kopiersicher zu machen, im endeffekt immer gecrackt werden kann.

    Darum erwarte ich keine Wunder aber ich möchte zumindest einen kleinen Ansatz haben wie ich mein C++ - Porgramm so absichern kann das es aktiviert werden muss und dann nur auf einem Rechner läuft.

    Dazu habe ich mir überlegt die seriennummer der Festplatte auszulesen.

    Nur finde ich dazu in Google fast nichts. Nur eine englische seite, dessen codes nich in Dev-C++ oder dem Borland C++ Builder funzen.

    Also wenn einer ne Idee hat dann her damit.

    P.S. Das ganze bitte für C++.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.07.2004
    Ort
    Zwingenberg (Bergstraße)
    Alter
    28
    Beiträge
    136
    geht das nicht über das bios? das bios kann man auslesen, vielleicht steht da auch die nummer drin

    mfg mcs

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    09.06.2004
    Ort
    Rhein-Neckar-Raum
    Beiträge
    504
    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++
    Code:
    // 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;
    }
    DOS Programmierbeispiel in C
    Code:
    #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);
    }
    Quelle: http://www.cpe.mut.ac.th/Question.asp?GID=1120

    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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •