Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Festplatte physisch lesen und schreiben (https://www.delphipraxis.net/92781-festplatte-physisch-lesen-und-schreiben.html)

Zacherl 25. Mai 2007 22:28


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

bitsetter 25. Mai 2007 22:34

Re: Festplatte physisch lesen und schreiben
 
Hi,

so müsste es gehen:
Delphi-Quellcode:
  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 );
EDIT: Lesen kannst du dann mit windows.ReadFile() und schreiben mit WriteFile(), ist ja logisch.

Zacherl 25. Mai 2007 22:54

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

Luckie 25. Mai 2007 23:00

Re: Festplatte physisch lesen und schreiben
 
Du kannst dir mal mein DiskImageNT http://www.michael-puff.de/dirindex....phi/Programme/ angucken.

Zacherl 25. Mai 2007 23:06

Re: Festplatte physisch lesen und schreiben
 
Ah Danke .. ich denke das hilft mir!

WS1976 26. Mai 2007 06:57

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

bitsetter 26. Mai 2007 07:20

Re: Festplatte physisch lesen und schreiben
 
Zitat:

Zitat von WS1976
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!

Hi,

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.

himitsu 26. Mai 2007 17:11

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

Luckie 27. Mai 2007 14:32

Re: Festplatte physisch lesen und schreiben
 
MSDN-Library durchsuchenCreateFile ist die Eier legende Wollmilchsau in der Windpws-API. Damit kannst du wahrscheinlich sogar Kaffee kochen, wenn es dir gelingt die Kaffeemaschine anzusprechen. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz