volumeseriennummer des datenträgers ändern

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

volumeseriennummer des datenträgers ändern

Beitrag von bingo »

hier mal ein muster , um unter XP die "Volumeseriennummer" des laufwerkes a zu ändern.

Code: Alles auswählen

dwStart=0 ;=bootsektor
dwCount=512 ;immer 512
*MemoryID = AllocateMemory(512) 

hDevice = CreateFile_("\\.\A:",#GENERIC_READ|#GENERIC_WRITE , #FILE_SHARE_READ | #FILE_SHARE_WRITE, 0, #OPEN_EXISTING, 0, 0); 
SetFilePointer_(hDevice, dwStart, 0, #FILE_BEGIN)
ReadFile_(hDevice,*MemoryID,dwCount,@dwBytes,0);
Debug dwbytes ;gelesen

seriennummer_offset = $27 ;FAT

;Volumeseriennummer: FF00-0001

PokeB(*MemoryID+seriennummer_offset+3,255)
PokeB(*MemoryID+seriennummer_offset+2,0)
PokeB(*MemoryID+seriennummer_offset+1,0)
PokeB(*MemoryID+seriennummer_offset,1)

SetFilePointer_(hDevice, dwStart, 0, #FILE_BEGIN)
WriteFile_(hDevice,*MemoryID,dwCount,@dwBytes,0);
Debug dwbytes ;geschrieben

CloseHandle_(hDevice) 

FreeMemory(*MemoryID)
die seriennummer wird bei jedem neuformat des datenträgers neu generiert - ist aber nicht direkt änderbar . auf diese weise kann man einiges mehr mit anstellen !?
1:0>1
gonimaus
Beiträge: 27
Registriert: 26.09.2004 14:21
Wohnort: Günzburg

Beitrag von gonimaus »

Hallo Rings,
mit diesem Beispiel bin ich nach einer Stunde "Studium" weitergekommen. Dadurch, daß das ungeänderte Beispiel bei mir nicht lief, kam ich komplett ins Schleudern. Danke für die Anpassung auf 3.91.

Hallo Bingo,
das Auslesen der Seriennummer scheint nicht in jedem Fall zu funktionieren. Ich habe mal versucht, die Seriennummer mit S.M.A.R.T. auszulesen und da kommt die Richtige. Mit Deinem Beispiel kommt es irgendwie darauf an, mit welchem Tool die Platte partitioniert wurde (Ist im Momen nur ein Verdacht)

Danke Euch für die Bemühungen

Gruß Gonimaus
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

Beitrag von bingo »

wichtig ist hier der seriennummer_offset ! ... der ist abhängig von der partition (fat,ntfs ...)

http://www.codeproject.com/system/change_drive_sn.asp
1:0>1
Antworten