| Autor |
Beitrag |
Frankieboy
      
Beiträge: 65
|
Verfasst: Fr 20.03.09 15:34
Hallo,
ein kleines Programm von mir soll Zugriff auf den Masterbootrecord bzw. dem Bootcode darin bieten. Frage ist: wie kann ich direkt auf alle Festplatten im System zugreifen?
Grüße,
Frank
PS:
Ist mir gerade eingefallen: wie kann ich alle an das System angeschlossenen Platten ermitteln und deren Größe (gehört zum Programm oben)?
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Fr 20.03.09 15:37
Warum benötigst du Zugriff adrauf?
_________________ Markus Kinzler.
|
|
Frankieboy 
      
Beiträge: 65
|
Verfasst: Fr 20.03.09 15:48
Weil es ein Programm sein soll, mit dem man den MBR verändern kann.
Es soll unter anderem der Bootcode ausgelesen oder gelöscht werden.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 20.03.09 17:04
Beide Fragen sind mittels der Forensuche ganz einfach auffindbar. Die Suchbegriffe beißen ja fast schon, so offensichtlich sind die.
Ich schließ mich aber meinen Vorrednern mal insoweit an, dass man wissen sollte, was man tut. Und in dem Fall weiß man das Vorgehen bzgl. beider Fragestellungen eigentlich 
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Frankieboy 
      
Beiträge: 65
|
Verfasst: Fr 20.03.09 20:40
Ich finde mit Hilfe der Forensuche nichts, bei beiden "Themen". Ich denke, ich weiß die Vorgehensweise, aber um zu programmieren bräuchte ich zumindest einen Ansatz.
Entschuldigung, dass ich gefragt habe.
Ich finde es sowieso seltsam, dass als erster Post erst einmal eine Gegenfrage kommt, "warum" ich das gefragte bräuchte. Wahrscheinlich weiß ich das, sonst hätte ich nicht gefragt.
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Fr 20.03.09 20:56
Frankieboy hat folgendes geschrieben : | | Ich finde es sowieso seltsam, dass als erster Post erst einmal eine Gegenfrage kommt, "warum" ich das gefragte bräuchte. |
Weil man mit der Änderung des MBR verdammt viel fieses anstellen kann
www.delphi-forum.de/...;highlight=boot+code Hier gibt's ne Menge Info und Links zu dem Thema, vielleicht hilft dir ja das weiter 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 20.03.09 22:34
www.michael-puff.de/...er/Delphi/Programme/ ->DiskImageNT1_2.zip
Erstellt Images von Disketten. Kann man aber auch für Festplatten nehmen. Es wird gezeigt wie man direkt auf die Festplatte zugreift. Es braucht aber administartive Rechte.
|
|
Frankieboy 
      
Beiträge: 65
|
Verfasst: So 22.03.09 11:57
Danke Michael, für deine Antwort!
ich hab den Code vorerst fertig:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var Devices: PChar; DiskHandle: THandle; LengthInformation: GET_LENGTH_INFORMATION; begin DiskHandle := CreateFile('\\.\PhysicalDrive0', GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
DeviceIoControl(DiskHandle, IOCTL_DISK_GET_LENGTH_INFO, nil, 0, LengthInformation, sizeof(LengthInformation), nil,nil); end; |
Hier habe ich allerdings das Problem, dass Delphi GET_LENGTH_INFORMATION und IOCTL_DISK_GET_LENGTH_INFO nicht nimmt (rot unterschlängelt). Auch wenn ich ShellAPI zu uses hinzufüge, bleibt das so. Was kann ich machen?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 22.03.09 13:39
Die musst du wohl selber deklarieren. Guck mal in meinem Source, ob ich sie benötigt habe. Ansonsten musst du in den zugehörigen C-Headerdateien von Microsoft gucken. Die werden mit dem Windows SDK mitgeliefert.
|
|