![]() |
Festplatte physisch lesen und schreiben
Hey,
würde mich mal interessieren, wie man ein Device physisch lesen und beschreiben kann, wie es z.B. der HxD Hexeditor kann .. Gruß Florian |
Re: Festplatte physisch lesen und schreiben
Hi,
so müsste es gehen:
Delphi-Quellcode:
EDIT: Lesen kannst du dann mit windows.ReadFile() und schreiben mit WriteFile(), ist ja logisch.
if SysUtils.Win32Platform=VER_PLATFORM_WIN32_NT then // Windows NT, Windows 2000
begin // warning! change name for other drives: ex.: second drive '\\.\PhysicalDrive1\' hDevice := CreateFile( '\\.\PhysicalDrive0', GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0 ); end else // Version Windows 95 OSR2, Windows 98 hDevice := CreateFile( '\\.\SMARTVSD', 0, 0, nil, CREATE_NEW, 0, 0 ); |
Re: Festplatte physisch lesen und schreiben
Ah hatte ich das doch richtig in Erinnerung mit der ReadFile und WriteFile API. Wenn jetzt noch jemand was zum Auflisten aller Devices hat, wäre ich glücklich :D
|
Re: Festplatte physisch lesen und schreiben
Du kannst dir mal mein DiskImageNT
![]() |
Re: Festplatte physisch lesen und schreiben
Ah Danke .. ich denke das hilft mir!
|
Re: Festplatte physisch lesen und schreiben
Hallo,
unter "physisch" versteh ich Sektor für Sektor unabhängig von Files. createfile öffnet doch nur eine Datei zum lesen oder schreiben. Was aht das mit "physisch" schreiben oder lesen zu tun! Grüsse |
Re: Festplatte physisch lesen und schreiben
Zitat:
probiere es doch einfach aus, dann wirst du sehen, dass du zum Beispiel von einer Festplatte die einzelnen Sektoren auslesen kannst, wenn du die Lese- und Schreibrechte besitzt. Createfile kann eben noch mehr als nur Dateien öffnen. Mit windows.SetFilePointer kannst du übrigens auf die einzelnen Sektoren zugreifen. |
Re: Festplatte physisch lesen und schreiben
CreateFile ist garnicht nötig ... genausogut könnte man 'nen FileStream, die "alten" Delphi-Funktionen (AssignFile, Reset, Read, BlockRead ...), oder Anders verwenden.
Man muß halt nur als Dateinamen den "virtuellen" Namen des Laufwerks verwenden. z.B.: '\\.\PhysicalDrive0' '\\.\{} '\\.\SMARTVSD' '\\.\C:\' ... welches für eine bestimmte Partition steht '\\?\Volume{497331d2-a842-11d8-a875-9628b7a43d75}' ... ebenfalls eine Partition, halt nur mit dem systeminternem Namen |
Re: Festplatte physisch lesen und schreiben
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz